/* ===== Reset & Cursor ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;cursor:none!important}

/* ===== Header & Navigation ===== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:103;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;background:rgba(245,244,240,0.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(10,10,10,0.06)}
.site-logo{font-family:'Noto Serif JP',serif;font-weight:700;font-size:1rem;color:rgba(10,10,10,0.9);letter-spacing:0.1em;text-decoration:none;z-index:102}
.hamburger{width:28px;height:20px;position:relative;cursor:pointer;z-index:102;background:none;border:none;padding:0}
.hamburger span{display:block;width:100%;height:1.5px;background:rgba(10,10,10,0.7);position:absolute;left:0;transition:all 0.4s cubic-bezier(0.22,1,0.36,1)}
.hamburger span:nth-child(1){top:0}
.hamburger span:nth-child(2){top:9px}
.hamburger span:nth-child(3){top:18px}
.hamburger.open span:nth-child(1){top:9px;transform:rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){top:9px;transform:rotate(-45deg)}
.nav-overlay{position:fixed;inset:0;z-index:101;background:rgba(245,244,240,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.5s cubic-bezier(0.22,1,0.36,1)}
.nav-overlay.open{opacity:1;pointer-events:auto}
.nav-menu{list-style:none;text-align:center}
.nav-menu li{margin:1.5rem 0;opacity:0;transform:translateY(20px);transition:opacity 0.5s,transform 0.5s}
.nav-overlay.open .nav-menu li{opacity:1;transform:translateY(0)}
.nav-overlay.open .nav-menu li:nth-child(1){transition-delay:0.1s}
.nav-overlay.open .nav-menu li:nth-child(2){transition-delay:0.15s}
.nav-overlay.open .nav-menu li:nth-child(3){transition-delay:0.2s}
.nav-overlay.open .nav-menu li:nth-child(4){transition-delay:0.25s}
.nav-overlay.open .nav-menu li:nth-child(5){transition-delay:0.3s}
.nav-overlay.open .nav-menu li:nth-child(6){transition-delay:0.35s}
.nav-overlay.open .nav-menu li:nth-child(7){transition-delay:0.4s}
.nav-menu a{font-family:'Noto Serif JP',serif;font-weight:300;font-size:clamp(1.2rem,2.5vw,1.8rem);color:rgba(10,10,10,0.8);text-decoration:none;letter-spacing:0.15em;transition:color 0.3s}
.nav-menu a:hover{color:rgba(212,85,42,0.9)}
.nav-menu .nav-label{display:block;font-family:'Noto Sans JP',sans-serif;font-weight:300;font-size:0.65rem;letter-spacing:0.2em;color:rgba(10,10,10,0.35);margin-top:0.3rem;text-transform:uppercase}

/* ===== Footer ===== */
footer{border-top:1px solid rgba(10,10,10,0.06);padding:60px 0 40px;text-align:center;background:#f5f4f0}
.footer-inner{max-width:1200px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:start}
.footer-logo{font-family:'Noto Serif JP',serif;font-weight:700;font-size:0.9rem;color:rgba(10,10,10,0.5);letter-spacing:0.1em;text-decoration:none}
.footer-nav{display:flex;gap:2rem;list-style:none;flex-wrap:wrap}
.footer-nav a{font-family:'Noto Sans JP',sans-serif;font-weight:300;font-size:0.75rem;color:rgba(10,10,10,0.35);letter-spacing:0.08em;text-decoration:none;transition:color 0.3s}
.footer-nav a:hover{color:rgba(10,10,10,0.8)}
.footer-copy{font-family:'Noto Sans JP',sans-serif;font-weight:300;font-size:0.7rem;color:rgba(10,10,10,0.25);letter-spacing:0.1em;margin-top:2rem;grid-column:1/-1;text-align:center}

/* ===== Scroll animations ===== */
.fade-up{opacity:0;transform:translateY(30px);transition:opacity 1.8s cubic-bezier(0.22,1,0.36,1),transform 1.8s cubic-bezier(0.22,1,0.36,1)}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* ===== Responsive ===== */
@media(max-width:768px){
  .site-header{padding:16px 20px}
  .footer-inner{grid-template-columns:1fr;text-align:center}
  .footer-nav{justify-content:center}
}
