*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-weight:300;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:1px solid var(--accent)!important;outline-offset:4px;}
:where(.work-card,.project-card,.art-card,.gallery-item):focus-visible{outline:1px solid var(--accent)!important;outline-offset:4px;}

#cur,#cur-ring{display:none;position:fixed;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);}
.noise{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:var(--noise-opacity,0.03);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px;}
#ambient-particles{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:var(--particles-opacity-desktop,0.86);mix-blend-mode:screen;}
@media(max-width:767px){#ambient-particles{opacity:var(--particles-opacity-mobile,0.42);}}

@media (hover:hover) and (pointer:fine){
  body{cursor:none;}
  #cur,#cur-ring{display:block;}
}

@media (hover:none), (pointer:coarse){
  body,
  a,
  button,
  input,
  textarea,
  select,
  [tabindex],
  .work-card,
  .project-card,
  .art-card,
  .gallery-item{cursor:auto!important;}
  #cur,#cur-ring{display:none!important;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:0.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:0.001ms!important;
    scroll-behavior:auto!important;
  }
  .reveal{opacity:1!important;transform:none!important;}
  #ambient-particles{display:none!important;}
  body,a,button,input,textarea,select,[tabindex],
  .work-card,.project-card,.art-card,.gallery-item,
  .hamburger,.btn-primary,.btn-secondary,.modal-close,
  .external-video-load,.filter-btn,.series-thumb,
  .gallery-preview-close{cursor:auto!important;}
  #cur,#cur-ring{display:none!important;}
}

.site-header{position:fixed;top:0;left:0;width:100%;z-index:200;padding:28px var(--space-page);background:var(--header-bg,transparent);backdrop-filter:var(--header-blur,none);border-bottom:var(--header-border,0);transition:background 0.5s,backdrop-filter 0.5s;}
.site-header::before{content:'';position:absolute;top:0;left:0;width:100%;height:120%;z-index:0;pointer-events:none;opacity:0;background:linear-gradient(to bottom,rgba(10,10,10,0.82) 0%,rgba(10,10,10,0.72) 35%,rgba(10,10,10,0.38) 70%,rgba(10,10,10,0) 100%);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 48%,rgba(0,0,0,0.58) 78%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 48%,rgba(0,0,0,0.58) 78%,transparent 100%);transition:opacity 0.5s;}
.site-header.scrolled{background:transparent;backdrop-filter:none;border-bottom:0;}
.site-header.scrolled::before{opacity:1;}
.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:0 auto;position:relative;z-index:1;}
.header-inner::before{content:'';display:block;width:42px;height:42px;flex:0 0 auto;}
.brand-mark{position:fixed;top:28px;left:28px;display:inline-flex;width:42px;height:42px;flex:0 0 auto;opacity:0.9;text-decoration:none;transition:opacity 0.3s;}


.brand-mark img{display:block;width:100%;height:100%;}
.brand-mark:hover{opacity:1;}
.main-nav{display:flex;gap:clamp(20px,2.5vw,40px);list-style:none;}
.main-nav a{font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--nav-color,var(--muted));text-decoration:none;position:relative;transition:color var(--nav-color-speed,0.3s);}
.main-nav a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:0.5px;background:var(--nav-line,var(--accent));transition:width var(--nav-line-speed,0.35s) cubic-bezier(0.16,1,0.3,1);}
.main-nav a:hover,.main-nav a.active{color:var(--nav-hover,var(--text));}
.main-nav a:hover::after,.main-nav a.active::after{width:100%;}

.site-footer{padding:28px var(--space-page);border-top:0.5px solid var(--border);position:relative;z-index:10;}
.footer-inner{max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;}
.footer-inner p{font-size:12px;color:var(--footer-muted,#7D7D7D);}
.footer-nav{display:flex;gap:2rem;list-style:none;}
.footer-nav a{font-size:12px;color:var(--footer-muted,#7D7D7D);text-decoration:none;transition:color 0.3s;}
.footer-nav a:hover{color:var(--accent);}
.noscript-note{font-size:14px;line-height:1.7;color:var(--muted);border:0.5px solid var(--border);padding:18px 20px;margin:24px 0;background:var(--surface);}

.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:none;padding:4px;z-index:300;position:relative;}
.hamburger span{display:block;width:24px;height:1.5px;background:var(--text);transition:transform .4s cubic-bezier(0.16,1,0.3,1),opacity .3s;}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-nav{position:fixed;inset:0;z-index:250;background:rgba(10,10,10,0.97);backdrop-filter:blur(20px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;opacity:0;pointer-events:none;transition:opacity .5s cubic-bezier(0.16,1,0.3,1);}
.mobile-nav.open{opacity:1;pointer-events:all;}
.mobile-nav a{font-size:clamp(32px,8vw,56px);font-weight:700;letter-spacing:-0.03em;color:rgba(243,243,243,0.5);text-decoration:none;transition:color .3s;line-height:1.2;}
.mobile-nav a:hover,.mobile-nav a.active{color:var(--text);}
.mobile-nav-accent{width:40px;height:2px;background:var(--accent);margin-bottom:16px;border-radius:1px;}
@media(max-width:767px){
  .site-header{padding-top:24px;padding-bottom:24px;}
  .header-inner::before{width:34px;height:34px;}
  .brand-mark{top:24px;left:24px;width:34px;height:34px;}
  .main-nav{display:none;}
  .hamburger{display:flex;}
}
