/* ===================================================
   SINDO - Game Publisher Website
   ===================================================*/

:root {
  --bg-primary:   #0a0e1a;
  --bg-secondary: #0d1424;
  --bg-card:      #111827;
  --bg-card-h:    #1a2540;
  --gold:         #d4a017;
  --gold-light:   #f0c040;
  --purple:       #6b21a8;
  --purple-l:     #9333ea;
  --text-1:       #f0f0f0;
  --text-2:       #9ca3af;
  --text-3:       #6b7280;
  --border-g:     rgba(212,160,23,.3);
  --border-s:     rgba(255,255,255,.08);
  --shadow-g:     0 0 20px rgba(212,160,23,.3);
  --shadow-c:     0 4px 24px rgba(0,0,0,.5);
  --r:            12px;
  --ease:         all .3s ease;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Yu Gothic','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
  background:var(--bg-primary);
  color:var(--text-1);
  line-height:1.6;
  overflow-x:hidden;
}
a  { text-decoration:none; color:inherit; }
img{ max-width:100%; height:auto; display:block; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }

.container { max-width:1200px; margin:0 auto; padding:0 24px; }

/* Header */
#header {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:16px 0; transition:var(--ease);
}
#header.scrolled {
  background:rgba(10,14,26,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border-g);
  padding:10px 0;
}
#header nav {
  display:flex; align-items:center; justify-content:space-between;
  max-width:1200px; margin:0 auto; padding:0 24px;
}
.logo-text {
  font-family:'Orbitron','Arial Black',sans-serif;
  font-size:1.6rem; font-weight:900;
  color:var(--gold); letter-spacing:4px;
  text-shadow:0 0 20px rgba(212,160,23,.5);
}
.nav-center { display:flex; gap:32px; }
.nav-link {
  color:var(--text-2); font-size:.95rem; font-weight:500;
  transition:var(--ease); position:relative;
}
.nav-link:hover { color:var(--gold); }
.nav-link::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:0; height:1px; background:var(--gold); transition:width .3s;
}
.nav-link:hover::after { width:100%; }
.lang-switcher { display:flex; gap:4px; }
.lang-btn {
  padding:5px 11px; border-radius:4px; font-size:.78rem; font-weight:700;
  color:var(--text-2); background:rgba(255,255,255,.05);
  border:1px solid transparent; transition:var(--ease);
}
.lang-btn:hover,.lang-btn.active {
  color:var(--gold); border-color:var(--border-g);
  background:rgba(212,160,23,.1);
}

/* Hero */
.hero {
  position:relative; min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%, #0d1a38 0%, var(--bg-primary) 70%);
}
#particles-canvas {
  position:absolute; inset:0; width:100%; height:100%; pointer-events:none;
}
.hero-content { position:relative; z-index:2; text-align:center; padding:0 24px; }
.hero-logo-text {
  font-family:'Orbitron','Arial Black',sans-serif;
  font-size:clamp(4rem,12vw,9rem); font-weight:900;
  color:var(--gold); letter-spacing:14px; display:block; line-height:1;
  text-shadow:0 0 40px rgba(212,160,23,.55), 0 0 90px rgba(212,160,23,.2);
}
.hero-subtitle {
  font-size:.85rem; color:var(--text-3); letter-spacing:5px;
  text-transform:uppercase; margin:10px 0 20px;
}
.hero-tagline {
  font-size:clamp(1.3rem,2.8vw,2rem); font-weight:700;
  color:var(--text-1); margin-bottom:14px; line-height:1.5;
}
.hero-desc {
  font-size:.97rem; color:var(--text-2);
  max-width:580px; margin:0 auto 40px;
}
.hero-cta {
  display:inline-block; padding:14px 38px;
  background:linear-gradient(135deg,var(--gold),#b8870e);
  color:#0a0e1a; font-weight:700; font-size:1rem;
  border-radius:8px; letter-spacing:1px; transition:var(--ease);
  box-shadow:0 4px 22px rgba(212,160,23,.4);
}
.hero-cta:hover { transform:translateY(-3px); box-shadow:0 8px 32px rgba(212,160,23,.6); }
.scroll-hint {
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:6px;
}
.scroll-hint span { font-size:.7rem; color:var(--text-3); letter-spacing:2px; }
.scroll-dot {
  width:6px; height:6px; background:var(--gold); border-radius:50%;
  animation:bounce 2s ease-in-out infinite;
}
@keyframes bounce { 0%,100%{transform:translateY(0);opacity:1} 50%{transform:translateY(10px);opacity:.4} }

/* Section Header */
.section-header { text-align:center; margin-bottom:64px; }
.section-header h2 {
  font-family:'Orbitron','Arial Black',sans-serif;
  font-size:clamp(1.6rem,3vw,2.2rem); font-weight:900;
  color:var(--text-1); letter-spacing:4px;
}
.section-line {
  width:56px; height:3px; margin:14px auto 0;
  background:linear-gradient(90deg,var(--gold),var(--purple-l));
  border-radius:2px;
}

/* Games Section */
.games-section { padding:100px 0; background:var(--bg-secondary); }
.games-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:28px; align-items:start;
}

.game-card {
  background:var(--bg-card); border-radius:var(--r);
  overflow:hidden; border:1px solid var(--border-s);
  transition:var(--ease); position:relative;
}
.game-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-c); }
.game-card.featured {
  border-color:var(--border-g);
  box-shadow:0 0 30px rgba(212,160,23,.15);
  transform:scale(1.03);
}
.game-card.featured:hover { transform:scale(1.03) translateY(-8px); }

.card-badge {
  position:absolute; top:12px; right:12px; z-index:10;
  padding:4px 12px; border-radius:20px;
  font-size:.72rem; font-weight:700; letter-spacing:1px;
}
.past-badge   { background:rgba(75,85,99,.85); color:#e5e7eb; }
.current-badge{
  background:rgba(212,160,23,.9); color:#0a0e1a;
  display:flex; align-items:center; gap:6px;
}
.future-badge { background:rgba(107,33,168,.8); color:#e9d5ff; }
.pulse-dot {
  width:7px; height:7px; background:#0a0e1a;
  border-radius:50%; animation:pdot 1.6s infinite;
}
@keyframes pdot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }

.card-image { position:relative; height:220px; overflow:hidden; }
.card-image img {
  width:100%; height:100%;
  object-fit:cover; object-position:center top;
  transition:transform .5s ease;
}
.game-card:hover .card-image img { transform:scale(1.06); }
.card-overlay { position:absolute; inset:0; background:rgba(0,0,0,.28); }
.maintenance-overlay {
  position:absolute; inset:0; background:rgba(0,0,0,.62);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
}
.maintenance-icon { font-size:2.4rem; }
.maintenance-overlay span { color:var(--gold); font-weight:700; font-size:.85rem; letter-spacing:2px; }

.future-placeholder {
  height:220px;
  background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);
  display:flex; align-items:center; justify-content:center;
}
.future-icons { display:flex; gap:32px; }
.future-icon {
  display:flex; flex-direction:column; align-items:center;
  gap:10px; color:var(--text-2); font-size:.82rem;
}
.future-icon-emoji { font-size:2.8rem; }

.card-content { padding:20px; }
.card-genre { font-size:.72rem; color:var(--text-3); letter-spacing:1px; text-transform:uppercase; margin-bottom:8px; }
.card-title { font-size:1.15rem; font-weight:700; color:var(--text-1); margin-bottom:6px; }
.card-phase {
  display:inline-block; padding:2px 10px; border-radius:4px;
  font-size:.72rem; font-weight:600;
  background:rgba(212,160,23,.12); color:var(--gold);
  border:1px solid var(--border-g); margin-bottom:8px;
}
.card-period { font-size:.78rem; color:var(--text-3); margin-bottom:12px; }
.card-desc { font-size:.86rem; color:var(--text-2); line-height:1.65; margin-bottom:20px; }
.card-btn {
  display:block; text-align:center;
  padding:10px 0; border-radius:6px;
  font-size:.875rem; font-weight:600; transition:var(--ease);
}
.past-btn { background:rgba(107,114,128,.12); color:var(--text-2); border:1px solid rgba(107,114,128,.3); }
.past-btn:hover { background:rgba(107,114,128,.22); color:var(--text-1); }
.current-btn { background:linear-gradient(135deg,var(--gold),#b8870e); color:#0a0e1a; }
.current-btn:hover { transform:translateY(-1px); box-shadow:0 4px 16px rgba(212,160,23,.4); }
.future-btn { background:rgba(107,33,168,.12); color:var(--text-3); border:1px solid rgba(107,33,168,.3); cursor:default; }

/* Roadmap */
.roadmap-section { padding:100px 0; background:var(--bg-primary); }
.timeline { display:flex; align-items:flex-start; justify-content:center; position:relative; padding:40px 0; }
.timeline::before {
  content:''; position:absolute; top:53px; left:8%; right:8%; height:2px;
  background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 40%,var(--purple-l) 70%,rgba(107,33,168,.25) 100%);
}
.timeline-item { flex:1; display:flex; flex-direction:column; align-items:center; gap:16px; position:relative; padding:0 12px; }
.timeline-dot { width:22px; height:22px; border-radius:50%; z-index:2; flex-shrink:0; }
.t-done { background:var(--gold); box-shadow:0 0 14px rgba(212,160,23,.6); }
.t-now  { background:var(--gold); box-shadow:0 0 22px rgba(212,160,23,.9); animation:glow 2s ease-in-out infinite; }
@keyframes glow { 0%,100%{box-shadow:0 0 10px rgba(212,160,23,.6)} 50%{box-shadow:0 0 32px rgba(212,160,23,1)} }
.t-next { background:rgba(107,33,168,.8); border:2px solid var(--purple-l); }
.t-future { background:transparent; border:2px dashed var(--text-3); }
.timeline-content { text-align:center; }
.timeline-year { font-family:'Orbitron','Arial Black',sans-serif; font-size:.95rem; font-weight:700; color:var(--gold); margin-bottom:8px; }
.timeline-content p { font-size:.83rem; color:var(--text-2); line-height:1.55; }

/* About */
.about-section { padding:100px 0; background:var(--bg-secondary); }
.about-content { display:grid; grid-template-columns:1fr 2fr; gap:64px; align-items:start; }
.about-text p { color:var(--text-2); line-height:1.85; margin-bottom:18px; font-size:1rem; }
.about-features { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.feature-card {
  background:var(--bg-card); border:1px solid var(--border-s);
  border-radius:var(--r); padding:28px 20px; text-align:center; transition:var(--ease);
}
.feature-card:hover { border-color:var(--border-g); background:var(--bg-card-h); }
.feature-icon { font-size:2.2rem; margin-bottom:14px; }
.feature-card h3 { font-size:1rem; font-weight:700; color:var(--text-1); margin-bottom:10px; }
.feature-card p { font-size:.83rem; color:var(--text-3); line-height:1.55; }

/* Contact */
.contact-section { padding:100px 0; background:var(--bg-primary); text-align:center; }
.contact-desc { color:var(--text-2); font-size:1rem; margin-bottom:36px; }
.contact-email {
  display:inline-flex; align-items:center; gap:14px;
  padding:16px 44px; background:rgba(212,160,23,.08); border:1px solid var(--border-g);
  border-radius:10px; color:var(--gold); font-size:1.1rem; font-weight:600; transition:var(--ease);
}
.contact-email:hover { background:rgba(212,160,23,.18); box-shadow:var(--shadow-g); }

/* Footer */
footer { background:var(--bg-card); border-top:1px solid var(--border-s); padding:44px 0 20px; }
.footer-content { display:flex; justify-content:space-between; align-items:center; margin-bottom:32px; }
.footer-logo { display:flex; flex-direction:column; gap:4px; }
.footer-company { font-size:.72rem; color:var(--text-3); letter-spacing:2px; }
.footer-links { display:flex; gap:28px; }
.footer-links a { font-size:.85rem; color:var(--text-3); transition:var(--ease); }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid var(--border-s); padding-top:18px; text-align:center; }
.footer-bottom p { font-size:.78rem; color:var(--text-3); }
.footer-meta { display:flex; flex-direction:column; align-items:center; gap:5px; margin-top:10px; }
.footer-meta p { font-size:.74rem; color:var(--text-3); }
.footer-meta a { color:rgba(212,160,23,.7); transition:var(--ease); }
.footer-meta a:hover { color:var(--gold); text-decoration:underline; }

/* =============================================
   GAME PAGE
   ============================================= */
.game-hero {
  position:relative; min-height:100vh;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.game-hero-bg { position:absolute; inset:0; z-index:0; background:#0a0e1a; }
.game-hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center top; opacity:.4; filter:blur(3px); }
.game-hero-bg::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(10,14,26,.3) 0%, rgba(10,14,26,.65) 55%, var(--bg-primary) 100%);
}
.game-hero-content { position:relative; z-index:2; text-align:center; padding:120px 24px 80px; }
.game-icon {
  width:96px; height:96px; border-radius:20px; overflow:hidden;
  margin:0 auto 24px; border:2px solid var(--border-g);
  box-shadow:0 0 24px rgba(212,160,23,.3);
}
.game-icon img { width:100%; height:100%; object-fit:cover; }
.game-title {
  font-family:'Orbitron','Arial Black',sans-serif;
  font-size:clamp(1.8rem,5vw,3.2rem); font-weight:900;
  color:var(--gold); letter-spacing:4px; margin-bottom:12px;
  text-shadow:0 0 30px rgba(212,160,23,.5);
}
.game-genre-tag {
  display:inline-flex; align-items:center; gap:8px;
  padding:5px 18px; border-radius:20px;
  background:rgba(212,160,23,.1); border:1px solid var(--border-g);
  color:var(--text-2); font-size:.82rem; margin-bottom:28px;
}
.game-desc-hero { font-size:1rem; color:var(--text-2); max-width:620px; margin:0 auto 40px; line-height:1.75; }
.play-btn {
  display:inline-flex; align-items:center; gap:10px; padding:16px 48px;
  background:linear-gradient(135deg,var(--gold),#b8870e);
  color:#0a0e1a; font-weight:700; font-size:1.05rem;
  border-radius:10px; transition:var(--ease);
  box-shadow:0 4px 24px rgba(212,160,23,.45);
  cursor:pointer; border:none; font-family:inherit;
}
.play-btn:hover { transform:translateY(-3px); box-shadow:0 8px 36px rgba(212,160,23,.65); }
.maint-badge {
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 16px; border-radius:20px;
  background:rgba(212,160,23,.1); border:1px solid var(--border-g);
  color:var(--gold); font-size:.78rem; font-weight:600;
  letter-spacing:1px; margin-top:16px;
}
.maint-pulse { animation:mpulse 1.5s ease-in-out infinite; }
@keyframes mpulse { 0%,100%{opacity:1} 50%{opacity:.4} }

.game-features { padding:80px 0; background:var(--bg-secondary); }
.features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.feat-card {
  background:var(--bg-card); border:1px solid var(--border-s);
  border-radius:var(--r); padding:32px 24px; text-align:center; transition:var(--ease);
}
.feat-card:hover { border-color:var(--border-g); transform:translateY(-4px); }
.feat-icon { font-size:2.8rem; margin-bottom:16px; }
.feat-card h3 { font-size:1.1rem; font-weight:700; color:var(--text-1); margin-bottom:10px; }
.feat-card p  { font-size:.87rem; color:var(--text-2); line-height:1.6; }

.screenshots-section { padding:80px 0; background:var(--bg-primary); }
.screenshots-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.shot-item {
  border-radius:var(--r); overflow:hidden;
  border:1px solid var(--border-s); cursor:pointer;
  transition:var(--ease); aspect-ratio:9/16;
}
.shot-item img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .5s; }
.shot-item:hover img { transform:scale(1.04); }
.shot-item:hover { border-color:var(--border-g); box-shadow:var(--shadow-g); }

.maint-notice { padding:70px 0; background:var(--bg-secondary); }
.maint-card {
  max-width:680px; margin:0 auto; text-align:center;
  background:var(--bg-card); border:1px solid var(--border-g);
  border-radius:var(--r); padding:44px 40px;
  box-shadow:0 0 40px rgba(212,160,23,.1);
}
.maint-card .big-icon { font-size:3.5rem; margin-bottom:16px; }
.maint-card h2 { font-size:1.4rem; font-weight:700; color:var(--gold); margin-bottom:12px; }
.maint-card > p { color:var(--text-2); font-size:.95rem; margin-bottom:28px; line-height:1.7; }
.update-list { text-align:left; list-style:none; }
.update-list li {
  padding:8px 0; color:var(--text-2); font-size:.9rem;
  border-bottom:1px solid var(--border-s); display:flex; align-items:center; gap:10px;
}
.update-list li::before { content:'✦'; color:var(--gold); font-size:.65rem; flex-shrink:0; }
.update-list li:last-child { border-bottom:none; }

.back-link {
  flex:1; text-align:center;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  color:var(--text-2); font-size:.88rem; font-weight:500;
  transition:var(--ease);
}
.back-link:hover { color:var(--gold); }

/* Lightbox */
.lightbox {
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,0,0,.92);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .3s;
}
.lightbox.open { opacity:1; pointer-events:all; }
.lightbox img { max-height:90vh; max-width:90vw; object-fit:contain; border-radius:8px; }
.lightbox-close {
  position:absolute; top:20px; right:28px;
  font-size:2rem; color:var(--text-2); cursor:pointer; transition:var(--ease);
}
.lightbox-close:hover { color:var(--gold); }

/* Modal */
.modal-overlay {
  position:fixed; inset:0; z-index:8000;
  background:rgba(0,0,0,.85);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .3s;
}
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal {
  background:var(--bg-card); border:1px solid var(--border-g);
  border-radius:var(--r); padding:44px 40px; max-width:480px; width:100%;
  text-align:center; position:relative;
  transform:scale(.9); transition:transform .3s;
  box-shadow:0 0 60px rgba(212,160,23,.2);
}
.modal-overlay.open .modal { transform:scale(1); }
.modal .big-icon { font-size:3.5rem; margin-bottom:16px; }
.modal h2 { font-size:1.5rem; font-weight:700; color:var(--gold); margin-bottom:12px; }
.modal > p { color:var(--text-2); font-size:.93rem; margin-bottom:24px; line-height:1.7; }
.modal-list { text-align:left; list-style:none; margin-bottom:32px; }
.modal-list li {
  padding:8px 0; color:var(--text-2); font-size:.88rem;
  border-bottom:1px solid var(--border-s); display:flex; align-items:center; gap:10px;
}
.modal-list li::before { content:'✦'; color:var(--gold); font-size:.6rem; flex-shrink:0; }
.modal-list li:last-child { border-bottom:none; }
.modal-close {
  display:inline-block; padding:12px 36px;
  background:linear-gradient(135deg,var(--gold),#b8870e);
  color:#0a0e1a; font-weight:700; font-size:.95rem;
  border-radius:8px; transition:var(--ease); border:none; cursor:pointer; font-family:inherit;
}
.modal-close:hover { transform:translateY(-2px); box-shadow:0 4px 16px rgba(212,160,23,.4); }
.modal-x { position:absolute; top:14px; right:18px; font-size:1.4rem; color:var(--text-3); cursor:pointer; transition:var(--ease); }
.modal-x:hover { color:var(--gold); }

/* Responsive */
@media (max-width:1024px) {
  .games-grid { grid-template-columns:1fr; max-width:460px; margin:0 auto; }
  .game-card.featured { transform:none; }
  .about-content { grid-template-columns:1fr; gap:40px; }
  .timeline { flex-direction:column; align-items:flex-start; padding-left:30px; }
  .timeline::before { top:0; bottom:0; left:41px; right:auto; width:2px; height:auto; background:linear-gradient(180deg,var(--gold),var(--purple-l)); }
  .timeline-item { flex-direction:row; width:100%; }
  .timeline-content { text-align:left; }
  .features-grid { grid-template-columns:1fr; max-width:440px; margin:0 auto; }
  .screenshots-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  .nav-center { display:none; }
  .about-features { grid-template-columns:1fr; }
  .footer-content { flex-direction:column; gap:24px; text-align:center; }
  .footer-links { flex-wrap:wrap; justify-content:center; gap:16px; }
  .modal { padding:32px 24px; }
  .maint-card { padding:32px 24px; }
  .screenshots-grid { grid-template-columns:repeat(2,1fr); }
}
