:root{
  --bg: #0b0b10;
  --fg: #f4f2ff;
  --muted: rgba(244,242,255,.72);
  --glass: rgba(255,255,255,.06);
  --stroke: rgba(255,255,255,.14);
  --accent: #c7ff6b;
  --accent2: #a78bfa;
  --accent3: #ffb86b;
  --shadow: 0 20px 70px rgba(0,0,0,.55);
  --radius: 18px;
}

[data-theme="light"]{
  --bg:#f8f7ff;
  --fg:#101018;
  --muted: rgba(16,16,24,.70);
  --glass: rgba(0,0,0,.05);
  --stroke: rgba(0,0,0,.12);
  --shadow: 0 18px 60px rgba(0,0,0,.18);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: var(--bg);
  color: var(--fg);
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.wrap{width:min(1120px, 92vw); margin:0 auto}

/* Background */
.bg{position:fixed; inset:0; z-index:-2; overflow:hidden}
#flow{position:absolute; inset:0; width:100%; height:100%; opacity:.38}
.blob{
  position:absolute; width:56vmax; height:56vmax; filter: blur(60px);
  opacity:.36; border-radius: 999px;
  transform: translate3d(0,0,0);
}
.b1{left:-16vmax; top:-10vmax; background: radial-gradient(circle at 30% 30%, var(--accent2), transparent 55%);}
.b2{right:-18vmax; bottom:-14vmax; background: radial-gradient(circle at 40% 40%, var(--accent3), transparent 58%);}
.grain{
  position:absolute; inset:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity:.45;
}

/* Topbar */
.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(14px);
  background: color-mix(in srgb, var(--bg) 65%, transparent);
  border-bottom: 1px solid var(--stroke);
}
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 4vw;
}
.brand{display:flex; gap:10px; align-items:center}
.mark{
  width:38px; height:38px; display:grid; place-items:center;
  border:1px solid var(--stroke); border-radius: 12px;
  background: var(--glass);
  font-weight:800; letter-spacing:.02em;
}
.word{font-weight:700; letter-spacing:.02em}
.nav{display:flex; gap:18px; align-items:center}
.nav a{opacity:.82}
.nav a:hover{opacity:1}
.cta{display:flex; gap:10px; align-items:center}

/* Buttons */
.btn{
  border:1px solid var(--stroke);
  background: linear-gradient(180deg, color-mix(in srgb, var(--glass) 92%, transparent), transparent);
  color: var(--fg);
  padding:10px 12px;
  border-radius: 12px;
  cursor:pointer;
  transition: transform .18s ease, border-color .18s ease, opacity .18s ease;
}
.btn:hover{transform: translateY(-1px); border-color: color-mix(in srgb, var(--accent2) 50%, var(--stroke));}
.btn.ghost{background:transparent}

/* Hero */
.hero{padding: 46px 0 18px}
.hero-grid{
  display:grid; gap:26px; align-items:center;
  grid-template-columns: 1.2fr .8fr;
}
.kicker{opacity:.8; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem}
.title{margin:.4rem 0 0; font-size: clamp(2.1rem, 4.2vw, 3.4rem); line-height:1.05}
.subtitle{display:block; margin-top:10px; font-size: clamp(1rem, 1.8vw, 1.2rem); opacity:.78; font-weight:500}
.lead{margin: 18px 0 0; font-size:1.05rem; line-height:1.7; color:var(--muted)}
.muted{opacity:.78}

.stats{display:flex; gap:18px; margin-top:18px; flex-wrap:wrap}
.stat{
  background: var(--glass);
  border:1px solid var(--stroke);
  padding:12px 14px;
  border-radius: 14px;
  box-shadow: var(--shadow);
}
.stat-num{font-weight:800; font-size:1.15rem}
.stat-label{display:block; margin-top:4px; font-size:.86rem; color:var(--muted)}

.hero-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px}
.pill{
  border:1px solid var(--stroke);
  background: var(--glass);
  padding:10px 12px;
  border-radius: 999px;
  transition: transform .18s ease, border-color .18s ease, opacity .18s ease;
}
.pill:hover{transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 55%, var(--stroke))}
.pill.small{padding:8px 10px; font-size:.92rem}

.note{display:flex; gap:10px; align-items:center; margin-top:14px; color:var(--muted); font-size:.92rem}
.dot{width:10px; height:10px; border-radius:999px; background: var(--accent); box-shadow: 0 0 20px color-mix(in srgb, var(--accent) 60%, transparent)}

/* Hero art */
.hero-art{position:relative}
.frame{
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid var(--stroke);
  background: var(--glass);
  box-shadow: var(--shadow);
}
.frame img{width:100%; height:420px; object-fit:cover; filter: contrast(1.05) saturate(1.1)}
.tilt{transform: perspective(1000px) rotateY(-10deg) rotateX(4deg)}
.floating{position:absolute; left:-14px; bottom:-18px; display:flex; gap:10px; flex-wrap:wrap; width:calc(100% + 20px)}
.chip{
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  border:1px solid var(--stroke);
  padding:8px 10px;
  border-radius: 999px;
  font-size:.9rem;
  backdrop-filter: blur(10px);
}

/* Sections */
.section{padding: 56px 0}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:18px}
.h2{margin:0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); letter-spacing:.01em}
.copy{color:var(--muted); line-height:1.75; font-size:1.03rem}

.two-col{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 22px;
  align-items:start;
}

.panel{
  border:1px solid var(--stroke);
  background: var(--glass);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.panel img{width:100%; height:360px; object-fit:cover}
.panel-foot{padding:14px 14px 16px}
.label{font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:.8rem}
.small{font-size:.92rem; color:var(--muted); line-height:1.55}

/* Callout */
.callout{
  margin-top:18px;
  border:1px solid var(--stroke);
  background: linear-gradient(180deg, color-mix(in srgb, var(--glass) 92%, transparent), transparent);
  border-radius: var(--radius);
  padding:14px;
}
.callout h3{margin:0 0 10px; font-size:1.05rem}
.tags{display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:0; list-style:none}
.tags li{
  border:1px solid var(--stroke);
  background: color-mix(in srgb, var(--bg) 45%, transparent);
  padding:8px 10px;
  border-radius: 999px;
  font-size:.92rem;
}

/* Cards */
.grid{display:grid; gap:16px}
.cards{grid-template-columns: repeat(4, minmax(0, 1fr))}
.card{
  border:1px solid var(--stroke);
  background: var(--glass);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
  transform: translateY(0);
  transition: transform .2s ease, border-color .2s ease;
}
.card:hover{transform: translateY(-4px); border-color: color-mix(in srgb, var(--accent2) 40%, var(--stroke))}
.cover{position:relative; aspect-ratio: 1 / 1; overflow:hidden}
.cover img{width:100%; height:100%; object-fit:cover}
.shine{
  position:absolute; inset:-40%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.30), transparent 45%);
  transform: translateX(-18%) translateY(-10%);
  mix-blend-mode: overlay;
  pointer-events:none;
}
.card-body{padding:14px}
.card-body h3{margin:0 0 6px}
.row{display:flex; gap:10px; align-items:center; margin-top:12px; flex-wrap:wrap}
.mini{
  display:inline-flex;
  border:1px solid var(--stroke);
  background: color-mix(in srgb, var(--bg) 35%, transparent);
  padding:8px 10px;
  border-radius: 12px;
}
.mini.ghost{background:transparent}

/* Masonry gallery */
.masonry{
  columns: 3;
  column-gap: 14px;
}
.tile{
  break-inside: avoid;
  margin-bottom: 14px;
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid var(--stroke);
  background: var(--glass);
  box-shadow: var(--shadow);
}
.tile img{width:100%; height:auto}

/* Form */
.form{
  margin-top:14px;
  border:1px solid var(--stroke);
  background: var(--glass);
  border-radius: var(--radius);
  padding:14px;
  box-shadow: var(--shadow);
}
.field{display:grid; gap:8px; margin-bottom:12px}
label{font-size:.92rem; color:var(--muted)}
input, textarea{
  width:100%;
  border:1px solid var(--stroke);
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  color: var(--fg);
  padding:12px 12px;
  border-radius: 14px;
  outline:none;
}
input:focus, textarea:focus{
  border-color: color-mix(in srgb, var(--accent) 50%, var(--stroke));
}

/* Booking aside */
.aside{padding:16px}
.aside-top h3{margin:0 0 10px}
.aside-links{display:flex; gap:10px; flex-wrap:wrap}
.email{font-weight:800; letter-spacing:.02em; margin:.3rem 0 0}
.aside-foot{margin-top:16px; border-top:1px solid var(--stroke); padding-top:12px}

/* Footer */
.footer{
  border-top:1px solid var(--stroke);
  padding: 22px 0;
  background: color-mix(in srgb, var(--bg) 70%, transparent);
}
.footer-inner{display:flex; justify-content:space-between; align-items:center; gap:14px}

/* Reveal animation */
.reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.on{
  opacity:1;
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 980px){
  .hero-grid, .two-col{grid-template-columns:1fr}
  .cards{grid-template-columns: repeat(2, minmax(0, 1fr))}
  .masonry{columns:2}
  .tilt{transform:none}
}
@media (max-width: 560px){
  .nav{display:none}
  .cards{grid-template-columns:1fr}
  .masonry{columns:1}
  .frame img{height:420px}
}

/* =========================
   SHADOW LABEL SECTION
========================= */

.shadow-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:22px;
  align-items:stretch;
}

.shadow-card{
  border:1px solid var(--stroke);
  background: var(--glass);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
  transition: transform .25s ease, border-color .25s ease;
  position:relative;
}

.shadow-card:hover{
  transform: translateY(-6px);
  border-color: color-mix(in srgb, var(--accent2) 45%, var(--stroke));
}

.shadow-media img{
  width:100%;
  height:380px;
  object-fit:cover;
  filter: contrast(1.05) saturate(1.1);
}

.shadow-body{
  padding:18px;
}

.shadow-body h3{
  margin:0 0 8px;
}

.shadow-highlight{
  border:1px solid var(--stroke);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--glass) 92%, transparent),
    transparent
  );
  border-radius: var(--radius);
  padding:20px;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}

.shadow-highlight h3{
  margin:0 0 14px;
}

.shadow-highlight ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:12px;
  font-size:.95rem;
  color:var(--muted);
}

.shadow-highlight li{
  border:1px solid var(--stroke);
  padding:10px 12px;
  border-radius:12px;
  background: color-mix(in srgb, var(--bg) 40%, transparent);
}

/* Glow ring on hover */
.shadow-card::before,
.shadow-highlight::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: inherit;
  background: radial-gradient(circle at 30% 20%,
    color-mix(in srgb, var(--accent2) 45%, transparent),
    transparent 55%
  );
  opacity:0;
  transition: opacity .25s ease;
  pointer-events:none;
  filter: blur(14px);
}

.shadow-card:hover::before,
.shadow-highlight:hover::before{
  opacity:.9;
}

/* LIVE DROP badge */
.drop-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid var(--stroke);
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.78rem;
}

.drop-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background: var(--accent);
  box-shadow: 0 0 22px color-mix(in srgb, var(--accent) 65%, transparent);
  animation: pulse 1.2s ease-in-out infinite;
}

@keyframes pulse{
  0%,100%{ transform: scale(1); opacity:1; }
  50%{ transform: scale(1.6); opacity:.55; }
}

/* Shadow Label product cards */
.shadow-products{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
}

.shadow-product{
  border:1px solid var(--stroke);
  background: var(--glass);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
  transition: transform .2s ease, border-color .2s ease;
}

.shadow-product:hover{
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--accent) 45%, var(--stroke));
}

.shadow-product .pimg{
  position:relative;
  aspect-ratio: 1 / 1;
  overflow:hidden;
}

.shadow-product .pimg img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter: contrast(1.05) saturate(1.08);
}

.shadow-product .pimg::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.22), transparent 50%);
  mix-blend-mode: overlay;
  pointer-events:none;
}

.shadow-product .pbody{
  padding:12px 12px 14px;
}

.shadow-product .ptitle{
  margin:0 0 6px;
  font-weight:800;
}

.shadow-product .pmeta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  color: var(--muted);
  font-size:.92rem;
}

.price{
  font-weight:900;
  color: var(--fg);
  letter-spacing:.02em;
}

.tag{
  border:1px solid var(--stroke);
  background: color-mix(in srgb, var(--bg) 40%, transparent);
  padding:6px 10px;
  border-radius:999px;
  font-size:.82rem;
}

.pactions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}

/* Responsive for Shadow Label */
@media (max-width: 980px){
  .shadow-grid{ grid-template-columns:1fr; }
  .shadow-products{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px){
  .shadow-products{ grid-template-columns: 1fr; }
}}
