:root{
  --bg:#0b0f14;
  --text:#e8edf2;
  --muted:#b5c1cc;
  --primary:#c21c37;
  --accent:#2ec4b6;
  --glass:rgba(255,255,255,.08);
  --card:rgba(255,255,255,.06);
  --shadow:0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Noto Sans", "Noto Sans CJK SC", sans-serif;
  color:var(--text);
  background:
    radial-gradient(1000px 600px at 10% -20%, rgba(194,28,55,.25), transparent 60%),
    radial-gradient(800px 500px at 110% 10%, rgba(46,196,182,.18), transparent 60%),
    linear-gradient(180deg, #0b0f14, #0e141b 60%, #0b0f14);
  background-attachment: fixed;
}

.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:16px;top:16px;width:auto;height:auto;background:var(--primary);color:#fff;padding:8px 12px;border-radius:8px;z-index:9999}

.hero{
  position:relative;
  min-height:72vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:80px 20px 40px;
  overflow:hidden;
}
.hero-overlay{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 40% at 50% 30%, rgba(0,0,0,.2), transparent 60%);
  z-index:1;
}
.hero-content{position:relative;z-index:2;max-width:980px}
.hero h1{font-family:"Noto Serif SC", serif;font-size:44px;letter-spacing:.5px;margin:0 0 12px}
.hero p{color:var(--muted);margin:0 0 22px}

.cta-group{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.cta{
  position:relative;
  appearance:none;
  border:none;
  padding:12px 18px;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(135deg, var(--primary), #eb445e);
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease;
  overflow:hidden;
}
.cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cta::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(200px 200px at var(--x,50%) var(--y,50%), rgba(255,255,255,.25), transparent 40%);
  opacity:0;transition:opacity .25s ease;
}
.cta:hover{transform:translateY(-2px)}
.cta:hover::after{opacity:1}

.kenburns{
  position:absolute;inset:-10%;z-index:0;opacity:.35;filter:saturate(1.1) contrast(1.05);
  background-size:cover;background-position:center;
  animation:kenburns 24s ease-in-out infinite;
}
@keyframes kenburns{
  0%{background-image:url('https://images.unsplash.com/photo-1471193945509-9ad0617afabf?q=80&w=2000&auto=format&fit=crop');transform:scale(1) translate3d(0,0,0)}
  25%{transform:scale(1.08) translate3d(2%, -2%,0)}
  26%{background-image:url('https://images.unsplash.com/photo-1501004318641-b39e6451bec6?q=80&w=2000&auto=format&fit=crop');transform:scale(1) translate3d(0,0,0)}
  50%{transform:scale(1.1) translate3d(-2%, 1%,0)}
  51%{background-image:url('https://images.unsplash.com/photo-1469536526925-9b5547cd9081?q=80&w=2000&auto=format&fit=crop');transform:scale(1) translate3d(0,0,0)}
  75%{transform:scale(1.08) translate3d(1%, 2%,0)}
  76%{background-image:url('https://images.unsplash.com/photo-1470225620780-dba8ba36b745?q=80&w=2000&auto=format&fit=crop');transform:scale(1) translate3d(0,0,0)}
  100%{transform:scale(1.12) translate3d(-1%, -1%,0)}
}

.container{max-width:1100px;margin:0 auto;padding:40px 20px}

/* Sticky / Side nav */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(11,15,20,.6);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06)}
.site-nav.side{position:fixed;top:50%;left:24px;transform:translateY(-50%);background:transparent;border:none;backdrop-filter:none;z-index:60}
.nav-container{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:center;padding:12px 20px}
.site-nav.side .nav-container{padding:0}
.nav-list{position:relative;display:flex;gap:6px;list-style:none;margin:0;padding:6px;border-radius:14px;background:rgba(255,255,255,.06);backdrop-filter:blur(10px)}
.nav-list[data-orientation="vertical"]{flex-direction:column}
.nav-link{position:relative;z-index:1;display:inline-block;text-decoration:none;padding:10px 14px;border-radius:12px;transition:opacity .2s ease;
  background-image:linear-gradient(135deg, #ffd2d9, #ffffff 45%, #d1fff8);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.nav-button{background-image:none;color:#fff;background:linear-gradient(135deg, var(--primary), #eb445e);padding:10px 16px;border-radius:12px;box-shadow:var(--shadow)}
.nav-button:hover{opacity:1;filter:brightness(1.05)}
.nav-link:hover{opacity:.95}
.nav-link.active{background-image:linear-gradient(135deg, #ff9fb0, #ffffff 40%, #9cf2e7)}
.nav-indicator{position:absolute;top:6px;left:6px;height:calc(100% - 12px);width:0;border-radius:12px;background:linear-gradient(135deg, var(--primary), #eb445e);box-shadow:var(--shadow);transition:transform .25s ease, width .25s ease, height .25s ease;z-index:0;pointer-events:none}

.modules{display:none}
.module-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px}
.module-card{
  --bg1:rgba(255,255,255,.08);--bg2:rgba(255,255,255,.02);
  position:relative;border:none;border-radius:16px;cursor:pointer;isolation:isolate;
  padding:22px 14px;color:#fff;text-align:center;background:linear-gradient(180deg,var(--bg1),var(--bg2));
  backdrop-filter: blur(8px); box-shadow: var(--shadow);
  transition: transform .2s ease, box-shadow .2s ease;
}
.module-card span{font-weight:600}
.module-card::before{
  content:"";position:absolute;inset:-1px;border-radius:18px;z-index:-1;
  background:conic-gradient(from 0deg at 50% 50%, rgba(194,28,55,.6), rgba(46,196,182,.6), rgba(255,255,255,.2), rgba(194,28,55,.6));
  filter:blur(14px);opacity:.35;transition:opacity .3s ease;
}
.module-card:hover{transform:translateY(-4px)}
.module-card:hover::before{opacity:.7}
.module-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.content-section{margin:60px 0;padding:28px;border-radius:18px;background:var(--card);box-shadow:var(--shadow)}
.content-section h2{font-family:"Noto Serif SC", serif;margin:0 0 10px}
.content-section p{margin:0;color:var(--muted);line-height:1.8}

/* Core section slider */
.core-slider{position:relative;margin-top:16px}
.core-track{display:flex;gap:14px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.core-track::-webkit-scrollbar{height:8px}
.core-track::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:999px}
.core-slide{flex:0 0 78%;max-width:78%;scroll-snap-align:center}
.core-card{position:relative;border-radius:16px;overflow:hidden;background:#000}
.core-card .card-media{position:relative;isolation:isolate}
.core-card img{width:100%;height:260px;object-fit:cover;display:block;filter:grayscale(.25);transition:transform .8s ease, filter .8s ease}
.core-card figcaption{position:absolute;left:12px;bottom:10px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);color:#fff;font-size:14px}
.core-card.hovered img,.core-card:hover img{transform:scale(1.06);filter:grayscale(0) saturate(1.08) contrast(1.05)}
.core-dots{display:flex;gap:8px;justify-content:center;margin-top:10px}
.core-dots .dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.35);cursor:pointer;transition:transform .2s ease, background .2s ease}
.core-dots .dot[aria-selected="true"]{background:#fff;transform:scale(1.2)}

/* Shine sweep */
.shine::before{content:"";position:absolute;inset:-40%;background:linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.25) 48%, rgba(255,255,255,0) 66%);transform:translateX(-120%) rotate(10deg);transition:transform .8s ease;pointer-events:none}
.shine:hover::before{transform:translateX(80%) rotate(10deg)}

/* Hover zoom container preserves shine */
.hover-zoom{overflow:hidden}
.hover-zoom img{will-change:transform}

/* Float (parallax-like subtle translate on scroll) */
.float{transition:transform .4s ease}

@media (prefers-reduced-motion: reduce){
  /* Stop large ambient animations */
  .kenburns{animation:none}
  .tilt,.float,.hover-zoom img{transition:none}
}

@media (max-width: 1024px){
  .core-slide{flex-basis:86%;max-width:86%}
}
@media (max-width: 640px){
  .core-slide{flex-basis:92%;max-width:92%}
}

.gallery h3{margin:0 0 16px;font-weight:700}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery-item{position:relative;border-radius:16px;overflow:hidden;background:#000}
.gallery-item img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .8s ease, filter .8s ease}
.gallery-item figcaption{position:absolute;left:12px;bottom:10px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);color:#fff;font-size:14px}
.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent, rgba(0,0,0,.35));opacity:.6;transition:opacity .4s ease}
.gallery-item:hover img{transform:scale(1.06);filter:contrast(1.05) saturate(1.1)}
.gallery-item:hover::after{opacity:.35}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease}
.reveal.visible{opacity:1;transform:none}

/* Responsive */
@media (max-width: 1024px){
  .module-grid{grid-template-columns:repeat(3,1fr)}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 640px){
  .hero h1{font-size:32px}
  .module-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr}
  .site-nav.side{position:sticky;top:0;left:0;transform:none}
  .nav-list[data-orientation="vertical"]{flex-direction:row}
}


