/* REPTILE WORLD - Shared Styles v2 */
:root{
  --bg:#0a0f0a;--bg2:#111811;--bg3:#162016;--surface:#1c261c;
  --accent:#4caf50;--accent2:#81c784;--accent3:#a5d6a7;--gold:#c8a84b;--red:#e57373;
  --text:#e8f5e9;--text2:#a5d6a7;--text3:#66bb6a;
  --border:rgba(76,175,80,0.2);--border2:rgba(76,175,80,0.4);
  --nav-h:60px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;background:rgba(10,15,10,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:.1em;color:var(--accent);text-decoration:none;white-space:nowrap;}
.nav-logo span{color:var(--text3);}
.nav-links{display:flex;gap:1.8rem;list-style:none;align-items:center;}
.nav-links a{color:var(--text2);text-decoration:none;font-size:.7rem;letter-spacing:.08em;font-family:'Space Mono',monospace;transition:color .2s;padding:.3rem 0;border-bottom:2px solid transparent;white-space:nowrap;}
.nav-links a:hover,.nav-links a.active{color:var(--accent);border-bottom-color:var(--accent);}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:.4rem;z-index:101;}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--accent);transition:all .3s;}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-drawer{display:none;position:fixed;inset:0;background:rgba(10,15,10,.98);z-index:99;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;padding:5rem 2rem 2rem;overflow-y:auto;}
.nav-drawer.open{display:flex;}
.nav-drawer a{color:var(--text2);text-decoration:none;font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:.08em;transition:color .2s;}
.nav-drawer a:hover,.nav-drawer a.active{color:var(--accent);}

/* PAGE HERO */
.page-hero{padding:calc(var(--nav-h) + 4rem) 1.5rem 4rem;background:linear-gradient(180deg,#0d2010 0%,var(--bg) 100%);border-bottom:1px solid var(--border);text-align:center;}
.page-hero-label{font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:.3em;color:var(--accent3);margin-bottom:.7rem;opacity:.85;}
.page-hero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,8vw,6.5rem);line-height:.92;letter-spacing:.02em;color:var(--text);margin-bottom:.6rem;}
.page-hero-title span{color:var(--accent);}
.page-hero-desc{font-size:.92rem;color:var(--text2);font-weight:300;max-width:520px;margin:0 auto;}

/* LAYOUT */
.container{max-width:1100px;margin:0 auto;padding:0 1.5rem;}
.section{padding:5rem 1.5rem;max-width:1100px;margin:0 auto;}
.section-alt{padding:5rem 0;background:var(--bg2);border-top:1px solid var(--border);}
.section-alt .container{max-width:1100px;margin:0 auto;padding:0 1.5rem;}
.sec-label{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.28em;color:var(--accent3);margin-bottom:.6rem;opacity:.85;}
.sec-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,5vw,3.8rem);line-height:1;letter-spacing:.02em;color:var(--text);margin-bottom:.5rem;}
.sec-desc{color:var(--text2);font-size:.88rem;max-width:540px;margin-bottom:2rem;font-weight:300;}
.divider{height:1px;background:var(--border);}

/* BUTTONS */
.btn-primary{display:inline-block;padding:.8rem 2rem;background:var(--accent);color:#0a1a0a;font-family:'Space Mono',monospace;font-size:.76rem;letter-spacing:.1em;text-decoration:none;font-weight:700;transition:all .2s;}
.btn-primary:hover{background:var(--accent2);transform:translateY(-2px);}
.btn-outline{display:inline-block;padding:.8rem 2rem;border:1px solid var(--border2);color:var(--text2);font-family:'Space Mono',monospace;font-size:.76rem;letter-spacing:.1em;text-decoration:none;transition:all .2s;}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);}

/* TAG */
.tag{font-family:'Space Mono',monospace;font-size:.54rem;letter-spacing:.03em;padding:.18rem .45rem;border:1px solid var(--border);color:var(--text3);}
.tag.beginner{border-color:rgba(76,175,80,.4);color:var(--accent2);}
.tag.intermediate{border-color:rgba(200,168,75,.4);color:var(--gold);}
.tag.advanced{border-color:rgba(229,115,115,.4);color:var(--red);}

/* FOOTER */
footer{background:var(--bg2);border-top:1px solid var(--border);padding:3rem 1.5rem;text-align:center;}
.footer-logo{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;color:var(--accent);letter-spacing:.1em;margin-bottom:.5rem;}
.footer-nav{display:flex;justify-content:center;gap:1.5rem;list-style:none;margin-bottom:1.5rem;flex-wrap:wrap;}
.footer-nav a{font-family:'Space Mono',monospace;font-size:.63rem;letter-spacing:.08em;color:var(--text3);text-decoration:none;transition:color .2s;}
.footer-nav a:hover{color:var(--accent);}
.footer-copy{font-family:'Space Mono',monospace;font-size:.58rem;color:rgba(165,214,167,.25);}

/* FADE IN ANIMATION */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease;}
.fade-in.visible{opacity:1;transform:translateY(0);}

/* SCROLL TO TOP */
.scroll-top{position:fixed;bottom:1.5rem;right:1.5rem;width:44px;height:44px;background:var(--accent);color:#0a1a0a;border:none;cursor:pointer;font-size:1.2rem;display:none;align-items:center;justify-content:center;z-index:50;transition:all .2s;}
.scroll-top.show{display:flex;}
.scroll-top:hover{background:var(--accent2);transform:translateY(-2px);}

/* ━━ MOBILE RESPONSIVE ━━ */
@media(max-width:900px){
  nav{padding:0 1.2rem;}
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}
}
@media(max-width:600px){
  .page-hero{padding:calc(var(--nav-h) + 2.5rem) 1rem 2.5rem;}
  .section{padding:3.5rem 1rem;}
  .section-alt{padding:3.5rem 0;}
  .section-alt .container{padding:0 1rem;}
}
