@tailwind base;@tailwind components;@tailwind utilities;:root{--button-outline: rgba(0,0,0, .1);--badge-outline: rgba(0,0,0, .05);--opaque-button-border-intensity: -8;--elevate-1: rgba(0,0,0, .03);--elevate-2: rgba(0,0,0, .08);--background: 150 15% 97%;--foreground: 160 30% 8%;--border: 150 10% 87%;--card: 150 12% 95%;--card-foreground: 160 30% 8%;--card-border: 150 10% 89%;--sidebar: 150 12% 93%;--sidebar-foreground: 160 30% 8%;--sidebar-border: 150 10% 87%;--sidebar-primary: 152 55% 33%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 150 12% 89%;--sidebar-accent-foreground: 160 30% 8%;--sidebar-ring: 152 55% 33%;--popover: 150 10% 93%;--popover-foreground: 160 30% 8%;--popover-border: 150 10% 85%;--primary: 152 55% 33%;--primary-foreground: 0 0% 98%;--secondary: 150 10% 87%;--secondary-foreground: 160 30% 8%;--muted: 150 8% 89%;--muted-foreground: 160 12% 42%;--accent: 38 70% 50%;--accent-foreground: 160 30% 8%;--destructive: 0 84% 42%;--destructive-foreground: 0 0% 98%;--input: 150 10% 72%;--ring: 152 55% 33%;--chart-1: 152 55% 30%;--chart-2: 200 55% 42%;--chart-3: 38 70% 48%;--chart-4: 170 45% 36%;--chart-5: 220 45% 50%;--font-sans: "Space Grotesk", sans-serif;--font-serif: "Playfair Display", serif;--font-mono: "JetBrains Mono", monospace;--radius: .5rem;--shadow-2xs: 0px 2px 0px 0px hsl(0 0% 0% / 0);--shadow-xs: 0px 2px 0px 0px hsl(0 0% 0% / 0);--shadow-sm: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 1px 2px -1px hsl(0 0% 0% / 0);--shadow: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 1px 2px -1px hsl(0 0% 0% / 0);--shadow-md: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 2px 4px -1px hsl(0 0% 0% / 0);--shadow-lg: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 4px 6px -1px hsl(0 0% 0% / 0);--shadow-xl: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 8px 10px -1px hsl(0 0% 0% / 0);--shadow-2xl: 0px 2px 0px 0px hsl(0 0% 0% / 0);--tracking-normal: 0em;--spacing: .25rem;--sidebar-primary-border: hsl(var(--sidebar-primary));--sidebar-primary-border: hsl(from hsl(var(--sidebar-primary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--sidebar-accent-border: hsl(var(--sidebar-accent));--sidebar-accent-border: hsl(from hsl(var(--sidebar-accent)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--primary-border: hsl(var(--primary));--primary-border: hsl(from hsl(var(--primary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--secondary-border: hsl(var(--secondary));--secondary-border: hsl(from hsl(var(--secondary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--muted-border: hsl(var(--muted));--muted-border: hsl(from hsl(var(--muted)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--accent-border: hsl(var(--accent));--accent-border: hsl(from hsl(var(--accent)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--destructive-border: hsl(var(--destructive));--destructive-border: hsl(from hsl(var(--destructive)) h s calc(l + var(--opaque-button-border-intensity)) / alpha)}.dark{--button-outline: rgba(255,255,255, .1);--badge-outline: rgba(255,255,255, .05);--opaque-button-border-intensity: 9;--elevate-1: rgba(255,255,255, .04);--elevate-2: rgba(255,255,255, .09);--background: 160 25% 5%;--foreground: 150 12% 93%;--border: 160 15% 16%;--card: 160 20% 8%;--card-foreground: 150 12% 93%;--card-border: 160 15% 12%;--sidebar: 160 20% 9%;--sidebar-foreground: 150 12% 93%;--sidebar-border: 160 15% 14%;--sidebar-primary: 152 55% 42%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 160 15% 14%;--sidebar-accent-foreground: 150 12% 93%;--sidebar-ring: 152 55% 42%;--popover: 160 20% 11%;--popover-foreground: 150 12% 93%;--popover-border: 160 15% 16%;--primary: 152 55% 42%;--primary-foreground: 0 0% 98%;--secondary: 160 15% 16%;--secondary-foreground: 150 12% 93%;--muted: 160 12% 14%;--muted-foreground: 150 10% 52%;--accent: 38 65% 48%;--accent-foreground: 160 30% 8%;--destructive: 0 84% 42%;--destructive-foreground: 0 0% 98%;--input: 160 12% 28%;--ring: 152 55% 42%;--chart-1: 152 55% 50%;--chart-2: 200 55% 52%;--chart-3: 38 70% 55%;--chart-4: 170 45% 48%;--chart-5: 220 45% 58%;--shadow-2xs: 0px 2px 0px 0px hsl(0 0% 0% / 0);--shadow-xs: 0px 2px 0px 0px hsl(0 0% 0% / 0);--shadow-sm: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 1px 2px -1px hsl(0 0% 0% / 0);--shadow: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 1px 2px -1px hsl(0 0% 0% / 0);--shadow-md: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 2px 4px -1px hsl(0 0% 0% / 0);--shadow-lg: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 4px 6px -1px hsl(0 0% 0% / 0);--shadow-xl: 0px 2px 0px 0px hsl(0 0% 0% / 0), 0px 8px 10px -1px hsl(0 0% 0% / 0);--shadow-2xl: 0px 2px 0px 0px hsl(0 0% 0% / 0);--sidebar-primary-border: hsl(var(--sidebar-primary));--sidebar-primary-border: hsl(from hsl(var(--sidebar-primary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--sidebar-accent-border: hsl(var(--sidebar-accent));--sidebar-accent-border: hsl(from hsl(var(--sidebar-accent)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--primary-border: hsl(var(--primary));--primary-border: hsl(from hsl(var(--primary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--secondary-border: hsl(var(--secondary));--secondary-border: hsl(from hsl(var(--secondary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--muted-border: hsl(var(--muted));--muted-border: hsl(from hsl(var(--muted)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--accent-border: hsl(var(--accent));--accent-border: hsl(from hsl(var(--accent)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);--destructive-border: hsl(var(--destructive));--destructive-border: hsl(from hsl(var(--destructive)) h s calc(l + var(--opaque-button-border-intensity)) / alpha)}@layer base{*{@apply border-border;}body{@apply font-sans antialiased bg-background text-foreground;}}@keyframes gradient-x{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes gradient-border{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-12px) rotate(1deg)}66%{transform:translateY(6px) rotate(-1deg)}}@keyframes float-slow{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-20px) scale(1.05)}50%{transform:translate(-10px,15px) scale(.95)}75%{transform:translate(20px,10px) scale(1.02)}}@keyframes morph{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}25%{border-radius:30% 60% 70% 40%/50% 60% 30%}50%{border-radius:50% 60% 30%/40% 70% 60% 30%}75%{border-radius:60% 30% 50% 40%/70% 40% 60% 50%}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-glow{0%,to{opacity:.4}50%{opacity:.8}}@keyframes counter-spin{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes typing-cursor{0%,to{opacity:1}50%{opacity:0}}.animate-gradient-x{background-size:200% 200%;animation:gradient-x 4s ease infinite}.animate-gradient-border{background-size:300% 300%;animation:gradient-border 4s ease infinite}.animate-float{animation:float 6s ease-in-out infinite}.animate-float-slow{animation:float-slow 20s ease-in-out infinite}.animate-morph{animation:morph 12s ease-in-out infinite}.animate-shimmer{background-size:200% 100%;animation:shimmer 3s linear infinite}.animate-pulse-glow{animation:pulse-glow 3s ease-in-out infinite}.animate-typing-cursor{animation:typing-cursor 1s step-end infinite}.gradient-text{background:linear-gradient(135deg,#268257,#307fa6,#268257);background-size:200% 200%;animation:gradient-x 4s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-hero{background:linear-gradient(135deg,#fff,#d4e8d0 40%,#a8d5a0 60%,#fff);background-size:200% 200%;animation:gradient-x 5s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:#f1f4f280;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid hsla(150,10%,87%,.3)}.glass-card-glow{position:relative}.glass-card-glow:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,hsla(152,55%,33%,.2),transparent 40%,transparent 60%,hsla(200,55%,42%,.15));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity .4s ease}.glass-card-glow:hover:before{opacity:1}.blob{position:absolute;filter:blur(60px);opacity:.12;pointer-events:none}.dark .blob{opacity:.08}.section-divider{position:relative}.section-divider:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:120px;height:1px;background:linear-gradient(90deg,transparent,hsla(152,55%,33%,.3),transparent)}@layer utilities{input[type=search]::-webkit-search-cancel-button{@apply hidden;}[contenteditable][data-placeholder]:empty:before{content:attr(data-placeholder);color:hsl(var(--muted-foreground));pointer-events:none}.toggle-elevate:before,.toggle-elevate-2:before{content:"";pointer-events:none;position:absolute;inset:0;border-radius:inherit;z-index:-1}.toggle-elevate.toggle-elevated:before{background-color:var(--elevate-2)}.border.toggle-elevate:before{inset:-1px}.hover-elevate:not(.no-default-hover-elevate),.active-elevate:not(.no-default-active-elevate),.hover-elevate-2:not(.no-default-hover-elevate),.active-elevate-2:not(.no-default-active-elevate){position:relative;z-index:0}.hover-elevate:not(.no-default-hover-elevate):after,.active-elevate:not(.no-default-active-elevate):after,.hover-elevate-2:not(.no-default-hover-elevate):after,.active-elevate-2:not(.no-default-active-elevate):after{content:"";pointer-events:none;position:absolute;inset:0;border-radius:inherit;z-index:999}.hover-elevate:hover:not(.no-default-hover-elevate):after,.active-elevate:active:not(.no-default-active-elevate):after{background-color:var(--elevate-1)}.hover-elevate-2:hover:not(.no-default-hover-elevate):after,.active-elevate-2:active:not(.no-default-active-elevate):after{background-color:var(--elevate-2)}.border.hover-elevate:not(.no-hover-interaction-elevate):after,.border.active-elevate:not(.no-active-interaction-elevate):after,.border.hover-elevate-2:not(.no-hover-interaction-elevate):after,.border.active-elevate-2:not(.no-active-interaction-elevate):after{inset:-1px}}
