/* ==========================================================================
   Galaxy Eleven — shared design system
   Extracted from index.html, extended for multi-page store.
   ========================================================================== */
:root{
  --background: 250 30% 6%;
  --foreground: 250 20% 96%;
  --card: 250 28% 9%;
  --primary: 320 90% 60%;
  --primary-foreground: 250 30% 6%;
  --secondary: 250 24% 14%;
  --muted-foreground: 250 12% 62%;
  --accent: 190 95% 55%;
  --accent-foreground: 250 30% 6%;
  --border: 250 20% 18%;
  --success: 145 65% 50%;
  --danger: 0 80% 62%;
  --radius: 0.9rem;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Sora', system-ui, sans-serif;
  background:hsl(var(--background));
  color:hsl(var(--foreground));
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.font-display{font-family:'Space Grotesk', system-ui, sans-serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:90rem; margin:0 auto; padding:0 1.25rem;}
@media(min-width:640px){.wrap{padding:0 2rem;}}
.wrap-narrow{max-width:56rem; margin:0 auto; padding:0 1.25rem;}
@media(min-width:640px){.wrap-narrow{padding:0 2rem;}}

/* Header */
header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  backdrop-filter:blur(20px);
  background:hsla(var(--background)/0.7);
  border-bottom:1px solid hsla(var(--border)/0.6);
}
.header-inner{height:4rem; display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.logo{font-family:'Space Grotesk',sans-serif; font-size:1.25rem; font-weight:700; display:flex; align-items:center; gap:.5rem;}
.logo-mark{display:grid; place-items:center; height:2rem; width:2rem; border-radius:.5rem; background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); font-weight:800;}
nav{display:none; align-items:center; gap:2rem; font-size:.9rem; color:hsl(var(--muted-foreground));}
nav a:hover, nav a.active{color:hsl(var(--foreground));}
@media(min-width:768px){nav{display:flex;}}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  white-space:nowrap; font-size:.9rem; font-weight:600; border:none; cursor:pointer;
  border-radius:999px; padding:.6rem 1.3rem; transition:background .2s, color .2s, border-color .2s;
}
.btn-primary{background:hsl(var(--primary)); color:hsl(var(--primary-foreground));}
.btn-primary:hover{background:hsla(var(--primary)/0.9);}
.btn-outline{background:transparent; border:1px solid hsl(var(--border)); color:hsl(var(--foreground));}
.btn-outline:hover{border-color:hsla(var(--primary)/0.6);}
.btn-block{width:100%;}
.btn-lg{padding:.85rem 1.6rem; font-size:1rem;}
.btn:disabled{opacity:.5; cursor:not-allowed;}
.header-actions{display:flex; align-items:center; gap:.6rem;}
.icon-btn{position:relative; display:grid; place-items:center; height:2.25rem; width:2.25rem; border-radius:999px; background:hsl(var(--secondary)); color:hsl(var(--foreground)); border:none; cursor:pointer;}
.icon-btn:hover{background:hsla(var(--primary)/0.25);}
.cart-count{position:absolute; top:-4px; right:-4px; background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); font-size:.65rem; font-weight:700; height:1.1rem; min-width:1.1rem; border-radius:999px; display:grid; place-items:center; padding:0 .2rem;}
.menu-btn{display:block; background:none; border:none; color:hsl(var(--foreground)); padding:.5rem; cursor:pointer;}
@media(min-width:768px){.menu-btn{display:none;}}
#mobileNav{display:none; flex-direction:column; gap:.25rem; padding:1rem 1.25rem 1.5rem; border-top:1px solid hsla(var(--border)/0.6);}
#mobileNav.open{display:flex;}
#mobileNav a{padding:.6rem 0; color:hsl(var(--muted-foreground));}

/* Page header (non-hero pages) */
.page-header{padding:7.5rem 0 2.5rem; border-bottom:1px solid hsla(var(--border)/0.6);}
.breadcrumb{font-size:.8rem; color:hsl(var(--muted-foreground)); margin-bottom:.75rem; display:flex; gap:.4rem; flex-wrap:wrap;}
.breadcrumb a:hover{color:hsl(var(--foreground));}
.page-header h1{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:2.25rem; letter-spacing:-0.02em;}
@media(min-width:640px){.page-header h1{font-size:2.75rem;}}
.page-header p{color:hsl(var(--muted-foreground)); margin-top:.5rem; max-width:38rem;}

/* Hero */
.hero{position:relative; min-height:100dvh; display:flex; align-items:center; padding:6rem 0 4rem; overflow:hidden;}
.glow{position:absolute; border-radius:50%; filter:blur(120px); z-index:-1;}
.glow-1{top:-10%; left:-5%; height:60vh; width:60vh; background:hsla(var(--primary)/0.25);}
.glow-2{bottom:-15%; right:-5%; height:55vh; width:55vh; background:hsla(var(--accent)/0.2);}
.hero-grid{display:grid; gap:3rem; align-items:center;}
@media(min-width:1024px){.hero-grid{grid-template-columns:1fr 1fr;}}
.badge{
  display:inline-flex; align-items:center; gap:.5rem; border-radius:999px;
  border:1px solid hsl(var(--border)); background:hsla(var(--secondary)/0.6);
  padding:.4rem 1rem; font-size:.75rem; font-weight:500; color:hsl(var(--muted-foreground));
}
.hero h1{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:2.75rem; line-height:1.05; margin:1.25rem 0 1.25rem; letter-spacing:-0.02em;}
@media(min-width:640px){.hero h1{font-size:3.75rem;}}
.hero h1 .accent-word{color:hsl(var(--primary));}
.hero p.lede{color:hsl(var(--muted-foreground)); font-size:1.05rem; max-width:34rem; margin-bottom:2rem;}
.hero-btns{display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.5rem;}
.stat-row{display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; font-size:.85rem; color:hsl(var(--muted-foreground));}
.stat-row .dot{display:flex; gap:.15rem;}
.hero-visual{position:relative;}
.floaty{animation:floaty 5s ease-in-out infinite; border-radius:2rem; overflow:hidden; border:1px solid hsla(var(--border)/0.7); box-shadow:0 30px 60px -20px hsla(var(--primary)/0.3);}
@keyframes floaty{0%,100%{transform:translateY(0);} 50%{transform:translateY(-14px);}}
.hero-visual img{height:62vh; min-height:380px; width:100%; object-fit:cover;}
.visual-overlay{position:absolute; inset:0; background:linear-gradient(to top, hsla(var(--background)/0.7), transparent 55%);}
.price-card{
  position:absolute; bottom:1rem; left:1rem; right:1rem; display:flex; align-items:center; justify-content:space-between;
  border-radius:.75rem; background:hsla(var(--background)/0.7); backdrop-filter:blur(10px);
  padding:.9rem 1.1rem; border:1px solid hsla(var(--border)/0.6);
}
.price-card .name{font-family:'Space Grotesk',sans-serif; font-weight:600;}
.price-card .sub{font-size:.75rem; color:hsl(var(--muted-foreground));}
.price-card .price{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.25rem; color:hsl(var(--primary));}

/* Marquee */
.marquee-wrap{position:relative; border-top:1px solid hsla(var(--border)/0.6); border-bottom:1px solid hsla(var(--border)/0.6); background:hsl(var(--secondary)); overflow:hidden; padding:1rem 0;}
.marquee{display:flex; width:max-content; animation:scroll 28s linear infinite; gap:3rem;}
.marquee span{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:.85rem; letter-spacing:.12em; color:hsl(var(--muted-foreground)); white-space:nowrap;}
@keyframes scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* Section generic */
section{padding:5rem 0;}
.section-tight{padding:3rem 0;}
.section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:2.5rem; flex-wrap:wrap;}
.eyebrow{font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:hsl(var(--primary)); font-weight:600;}
h2{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:2.25rem; margin-top:.5rem; letter-spacing:-0.02em;}
@media(min-width:640px){h2{font-size:2.75rem;}}
h3{font-family:'Space Grotesk',sans-serif; font-weight:600;}
.view-all{font-size:.9rem; color:hsl(var(--muted-foreground)); display:flex; align-items:center; gap:.4rem;}
.view-all:hover{color:hsl(var(--foreground));}

/* Filter bar (shop / collections) */
.filter-bar{display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.5rem; align-items:center; justify-content:space-between;}
.filter-pills{display:flex; flex-wrap:wrap; gap:.5rem;}
.pill{border-radius:999px; border:1px solid hsl(var(--border)); background:hsl(var(--card)); color:hsl(var(--muted-foreground)); font-size:.8rem; font-weight:500; padding:.5rem 1rem; cursor:pointer; transition:all .2s;}
.pill:hover{border-color:hsla(var(--primary)/0.6); color:hsl(var(--foreground));}
.pill.active{background:hsl(var(--primary)); color:hsl(var(--primary-foreground)); border-color:hsl(var(--primary));}
.select{border-radius:.6rem; border:1px solid hsl(var(--border)); background:hsl(var(--card)); color:hsl(var(--foreground)); font-size:.85rem; padding:.55rem .8rem;}
.result-count{font-size:.85rem; color:hsl(var(--muted-foreground));}

/* Product grid */
.grid-products{display:grid; grid-template-columns:1fr; gap:1.5rem;}
@media(min-width:640px){.grid-products{grid-template-columns:1fr 1fr;}}
@media(min-width:1024px){.grid-products{grid-template-columns:1fr 1fr 1fr;}}
.grid-products.dense{gap:1.25rem;}
@media(min-width:1024px){.grid-products.dense{grid-template-columns:1fr 1fr 1fr 1fr;}}
.card{
  border-radius:1rem; border:1px solid hsl(var(--border)); background:hsl(var(--card));
  overflow:hidden; transition:border-color .25s, transform .25s;
}
.card:hover{border-color:hsla(var(--primary)/0.6); transform:translateY(-4px);}
.card-media{position:relative; aspect-ratio:3/4; overflow:hidden; display:block;}
.card-media img{height:100%; width:100%; object-fit:cover; transition:transform .7s;}
.card:hover .card-media img{transform:scale(1.06);}
.tag{position:absolute; top:.75rem; left:.75rem; border-radius:999px; background:hsla(var(--background)/0.8); backdrop-filter:blur(6px); padding:.3rem .8rem; font-size:.7rem; font-weight:500; color:hsl(var(--primary)); border:1px solid hsla(var(--primary)/0.3);}
.card-body{padding:1.25rem;}
.card-body .collection{font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:hsl(var(--muted-foreground));}
.card-body h3{font-size:1.1rem; margin-top:.3rem;}
.card-body h3 a:hover{color:hsl(var(--primary));}
.card-foot{margin-top:1rem; display:flex; align-items:center; justify-content:space-between;}
.card-foot .price{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.25rem;}
.add-btn{border-radius:999px; background:hsl(var(--secondary)); color:hsl(var(--foreground)); font-size:.75rem; font-weight:500; padding:.5rem .9rem; border:none; cursor:pointer; transition:background .2s,color .2s;}
.add-btn:hover{background:hsl(var(--primary)); color:hsl(var(--primary-foreground));}

/* Sacred Icons / feature section */
.icons-section{position:relative; overflow:hidden; border-top:1px solid hsla(var(--border)/0.5);}
.icons-bg{position:absolute; inset:0; z-index:-1;}
.icons-bg img{width:100%; height:100%; object-fit:cover; opacity:.28;}
.icons-bg::after{content:''; position:absolute; inset:0; background:linear-gradient(to top, hsl(var(--background)) 10%, hsla(var(--background)/0.7) 60%, hsla(var(--background)/0.4));}
.icons-inner{max-width:40rem;}
.icons-inner p.lede{color:hsl(var(--muted-foreground)); margin:1.25rem 0 2rem; font-size:1.05rem;}
.feature-list{display:grid; gap:1rem; margin-bottom:2rem;}
@media(min-width:640px){.feature-list{grid-template-columns:1fr 1fr 1fr;}}
.feature-item{display:flex; align-items:center; gap:.6rem; font-size:.9rem;}
.feature-item .ico{display:grid; place-items:center; height:2rem; width:2rem; border-radius:.6rem; background:hsla(var(--accent)/0.15); color:hsl(var(--accent)); flex-shrink:0;}

/* CTA */
.cta{text-align:center;}
.cta h2{font-size:2.25rem;}
@media(min-width:640px){.cta h2{font-size:3rem;}}
.cta p{color:hsl(var(--muted-foreground)); max-width:32rem; margin:1rem auto 2rem;}
.notify-form{display:flex; gap:.75rem; max-width:26rem; margin:0 auto; flex-wrap:wrap; justify-content:center;}
.notify-form input{flex:1; min-width:200px; padding:.75rem 1.1rem; border-radius:999px; border:1px solid hsl(var(--border)); background:hsl(var(--card)); color:hsl(var(--foreground));}
.notify-form input:focus{outline:2px solid hsl(var(--primary)); outline-offset:2px;}

/* ---- Product detail ---- */
.pdp-grid{display:grid; gap:3rem; grid-template-columns:1fr;}
@media(min-width:900px){.pdp-grid{grid-template-columns:1.1fr 1fr;}}
.pdp-gallery-main{border-radius:1.25rem; overflow:hidden; border:1px solid hsl(var(--border)); aspect-ratio:1/1;}
.pdp-gallery-main img{width:100%; height:100%; object-fit:cover;}
.pdp-thumbs{display:flex; gap:.75rem; margin-top:.75rem;}
.pdp-thumb{width:4.5rem; height:4.5rem; border-radius:.6rem; overflow:hidden; border:1px solid hsl(var(--border)); cursor:pointer; opacity:.6;}
.pdp-thumb.active,.pdp-thumb:hover{opacity:1; border-color:hsl(var(--primary));}
.pdp-thumb img{width:100%; height:100%; object-fit:cover;}
.pdp-collection{font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; color:hsl(var(--muted-foreground));}
.pdp-title{font-size:2rem; margin:.4rem 0 .75rem;}
.pdp-rating{display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:hsl(var(--muted-foreground)); margin-bottom:1rem;}
.pdp-price{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:2rem; color:hsl(var(--primary)); margin-bottom:1.25rem;}
.pdp-desc{color:hsl(var(--muted-foreground)); margin-bottom:1.5rem;}
.option-group{margin-bottom:1.5rem;}
.option-label{font-size:.85rem; font-weight:600; margin-bottom:.6rem; display:block;}
.option-pills{display:flex; gap:.6rem; flex-wrap:wrap;}
.qty-stepper{display:inline-flex; align-items:center; border:1px solid hsl(var(--border)); border-radius:999px; overflow:hidden;}
.qty-stepper button{background:hsl(var(--secondary)); border:none; color:hsl(var(--foreground)); width:2.4rem; height:2.4rem; cursor:pointer; font-size:1.1rem;}
.qty-stepper button:hover{background:hsla(var(--primary)/0.25);}
.qty-stepper span{width:2.6rem; text-align:center; font-weight:600;}
.pdp-actions{display:flex; gap:1rem; margin:1.5rem 0; flex-wrap:wrap;}
.pdp-meta{border-top:1px solid hsla(var(--border)/0.6); padding-top:1.25rem; display:grid; gap:.6rem; font-size:.85rem; color:hsl(var(--muted-foreground));}
.pdp-meta div{display:flex; gap:.5rem;}
.pdp-meta strong{color:hsl(var(--foreground)); font-weight:600; min-width:7rem;}

/* ---- Cart ---- */
.cart-layout{display:grid; gap:2.5rem; grid-template-columns:1fr;}
@media(min-width:900px){.cart-layout{grid-template-columns:1fr 22rem;}}
.cart-line{display:grid; grid-template-columns:5.5rem 1fr auto; gap:1rem; align-items:center; padding:1.25rem 0; border-bottom:1px solid hsla(var(--border)/0.6);}
.cart-line img{width:5.5rem; height:5.5rem; object-fit:cover; border-radius:.7rem; border:1px solid hsl(var(--border));}
.cart-line h3{font-size:1rem;}
.cart-line .sub{font-size:.8rem; color:hsl(var(--muted-foreground)); margin-top:.2rem;}
.cart-line-right{display:flex; flex-direction:column; align-items:flex-end; gap:.6rem;}
.remove-link{font-size:.78rem; color:hsl(var(--muted-foreground)); background:none; border:none; cursor:pointer;}
.remove-link:hover{color:hsl(var(--danger));}
.summary-card{border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:1rem; padding:1.5rem; align-self:start; position:sticky; top:5.5rem;}
.summary-row{display:flex; justify-content:space-between; font-size:.9rem; color:hsl(var(--muted-foreground)); margin-bottom:.75rem;}
.summary-row.total{color:hsl(var(--foreground)); font-weight:700; font-size:1.15rem; border-top:1px solid hsla(var(--border)/0.6); padding-top:.9rem; margin-top:.5rem;}
.empty-state{text-align:center; padding:4rem 1rem; color:hsl(var(--muted-foreground));}
.empty-state .ico{font-size:2.5rem; margin-bottom:1rem;}

/* ---- Forms (checkout / login / contact) ---- */
.form-card{border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:1rem; padding:1.75rem;}
.field{margin-bottom:1.1rem;}
.field label{display:block; font-size:.82rem; font-weight:600; margin-bottom:.4rem;}
.field input, .field select, .field textarea{
  width:100%; padding:.7rem .9rem; border-radius:.6rem; border:1px solid hsl(var(--border));
  background:hsl(var(--secondary)); color:hsl(var(--foreground)); font-family:inherit; font-size:.9rem;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid hsl(var(--primary)); outline-offset:1px;}
.field-row{display:grid; gap:1rem; grid-template-columns:1fr;}
@media(min-width:560px){.field-row{grid-template-columns:1fr 1fr;}}
.field-row-3{display:grid; gap:1rem; grid-template-columns:1fr;}
@media(min-width:560px){.field-row-3{grid-template-columns:1fr 1fr 1fr;}}
fieldset{border:none; margin-bottom:1.75rem;}
legend{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1.05rem; margin-bottom:1rem; padding:0;}
.radio-card{display:flex; align-items:center; gap:.75rem; border:1px solid hsl(var(--border)); border-radius:.7rem; padding:.9rem 1rem; margin-bottom:.7rem; cursor:pointer; font-size:.88rem;}
.radio-card:hover{border-color:hsla(var(--primary)/0.6);}
.radio-card input{width:auto;}
.checkout-steps{display:flex; gap:1.5rem; font-size:.8rem; color:hsl(var(--muted-foreground)); margin-bottom:2rem; flex-wrap:wrap;}
.checkout-steps span.on{color:hsl(var(--primary)); font-weight:600;}

/* ---- Status / badges ---- */
.status-badge{display:inline-flex; align-items:center; gap:.4rem; border-radius:999px; padding:.35rem .9rem; font-size:.75rem; font-weight:600;}
.status-badge.pending{background:hsla(38 92% 55% /0.15); color:hsl(38 92% 60%);}
.status-badge.shipped{background:hsla(var(--accent)/0.15); color:hsl(var(--accent));}
.status-badge.delivered{background:hsla(var(--success)/0.15); color:hsl(var(--success));}
.status-badge.cancelled{background:hsla(var(--danger)/0.15); color:hsl(var(--danger));}

/* ---- Tracking timeline ---- */
.timeline{list-style:none; margin-top:2rem;}
.timeline li{display:flex; gap:1rem; padding-bottom:2rem; position:relative;}
.timeline li::before{content:''; position:absolute; left:.55rem; top:1.5rem; bottom:0; width:1px; background:hsl(var(--border));}
.timeline li:last-child::before{display:none;}
.timeline .dot{width:1.2rem; height:1.2rem; border-radius:50%; background:hsl(var(--secondary)); border:2px solid hsl(var(--border)); flex-shrink:0; margin-top:.15rem;}
.timeline li.done .dot{background:hsl(var(--primary)); border-color:hsl(var(--primary));}
.timeline h4{font-size:.92rem; margin-bottom:.2rem;}
.timeline p{font-size:.8rem; color:hsl(var(--muted-foreground));}

/* ---- Account ---- */
.account-layout{display:grid; gap:2.5rem; grid-template-columns:1fr;}
@media(min-width:840px){.account-layout{grid-template-columns:14rem 1fr;}}
.account-nav{display:flex; flex-direction:column; gap:.3rem;}
.account-nav a{padding:.65rem .9rem; border-radius:.6rem; font-size:.88rem; color:hsl(var(--muted-foreground));}
.account-nav a:hover{background:hsl(var(--secondary)); color:hsl(var(--foreground));}
.account-nav a.active{background:hsla(var(--primary)/0.15); color:hsl(var(--primary)); font-weight:600;}
.table-simple{width:100%; border-collapse:collapse; font-size:.88rem;}
.table-simple th{text-align:left; padding:.8rem .5rem; color:hsl(var(--muted-foreground)); font-weight:600; border-bottom:1px solid hsl(var(--border)); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em;}
.table-simple td{padding:.9rem .5rem; border-bottom:1px solid hsla(var(--border)/0.5);}

/* ---- Static content pages (about/shipping/returns) ---- */
.prose{max-width:44rem; color:hsl(var(--muted-foreground)); font-size:.98rem;}
.prose h2{font-size:1.5rem; margin:2rem 0 .75rem;}
.prose p{margin-bottom:1rem;}
.prose ul{margin:0 0 1rem 1.25rem;}
.value-grid{display:grid; gap:1.5rem; grid-template-columns:1fr; margin-top:2rem;}
@media(min-width:640px){.value-grid{grid-template-columns:1fr 1fr 1fr;}}
.value-card{border:1px solid hsl(var(--border)); background:hsl(var(--card)); border-radius:1rem; padding:1.5rem;}
.value-card .ico{font-size:1.5rem; margin-bottom:.75rem;}
.value-card h3{font-size:1rem; margin-bottom:.4rem;}
.value-card p{font-size:.85rem; color:hsl(var(--muted-foreground));}

/* Footer */
footer{border-top:1px solid hsla(var(--border)/0.6); padding:4rem 0 2rem;}
.footer-grid{display:grid; gap:2.5rem; grid-template-columns:1fr; margin-bottom:3rem;}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;}}
.footer-grid h4{font-family:'Space Grotesk',sans-serif; font-weight:600; margin-bottom:1rem; font-size:.9rem;}
.footer-grid ul{list-style:none; display:flex; flex-direction:column; gap:.6rem; font-size:.9rem; color:hsl(var(--muted-foreground));}
.footer-grid ul a:hover{color:hsl(var(--foreground));}
.footer-brand p{color:hsl(var(--muted-foreground)); margin-top:.75rem; max-width:20rem; font-size:.9rem;}
.footer-bottom{border-top:1px solid hsla(var(--border)/0.4); padding-top:1.5rem; font-size:.8rem; color:hsl(var(--muted-foreground)); text-align:center;}

/* Reveal animation */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  .floaty{animation:none;}
  .marquee{animation:none;}
}

/* Toast */
#toast{position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%) translateY(20px); background:hsl(var(--card)); border:1px solid hsla(var(--primary)/0.4); color:hsl(var(--foreground)); padding:.8rem 1.4rem; border-radius:999px; font-size:.85rem; opacity:0; pointer-events:none; transition:opacity .3s, transform .3s; z-index:100; box-shadow:0 10px 30px -10px hsla(var(--primary)/0.4);}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid hsl(var(--primary)); outline-offset:2px;
}
