:root{
  --bg:#0f1114; --bg2:#15181c; --line:#262a30;
  --text:#e8e4dc; --muted:#8d9198; --accent:#9fc3c9; /* glacier */
  --serif:"Cormorant Garamond",Georgia,serif; --sans:"Inter",system-ui,sans-serif;
  --pad:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font:300 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{display:block;max-width:100%}
.muted{color:var(--muted)}

/* Header */
.site-header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px var(--pad);transition:background .3s,padding .3s}
.inner .site-header,.site-header.scrolled{background:rgba(15,17,20,.92);backdrop-filter:blur(10px);padding-block:14px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:400 15px var(--sans);letter-spacing:.32em;text-transform:uppercase}
.brand img{width:46px;height:auto}
.brand.small img{width:34px}
.brand b{font-weight:600;margin-left:.35em}
.brand.small{font-size:13px}
.nav{display:flex;align-items:center;gap:34px}
.nav a{text-decoration:none;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--text);opacity:.8;transition:opacity .2s}
.nav a:hover,.nav a.on{opacity:1}
.nav a.on{box-shadow:0 1px 0 var(--accent)}
.nav .yt svg{width:22px;display:block}
.nav-toggle{display:none;background:none;border:0;width:30px;height:20px;position:relative;cursor:pointer}
.nav-toggle span{position:absolute;left:0;right:0;height:1.5px;background:var(--text);transition:.3s}
.nav-toggle span:first-child{top:4px}.nav-toggle span:last-child{bottom:4px}
@media(max-width:760px){
  .nav-toggle{display:block;z-index:60}
  .nav{position:fixed;inset:0;background:var(--bg);flex-direction:column;justify-content:center;gap:28px;opacity:0;pointer-events:none;transition:opacity .3s}
  .nav a{font-size:18px}
  .nav-open .nav{opacity:1;pointer-events:auto}
  .nav-open .nav-toggle span:first-child{top:9px;transform:rotate(45deg)}
  .nav-open .nav-toggle span:last-child{bottom:9px;transform:rotate(-45deg)}
}

/* Hero */
.hero{position:relative;height:100vh;min-height:560px;display:flex;align-items:flex-end;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:drift 30s ease-out both}
@keyframes drift{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,17,20,.55) 0%,rgba(15,17,20,0) 30%,rgba(15,17,20,.15) 55%,rgba(15,17,20,.92) 100%)}
.hero.no-image{background:radial-gradient(ellipse at 70% 20%,#2a3a44 0%,#14191e 50%,var(--bg) 100%)}
.hero.no-image::before{content:"";position:absolute;inset:auto 0 0;height:45%;background:var(--bg2);clip-path:polygon(0 70%,14% 38%,24% 55%,40% 12%,52% 40%,63% 26%,78% 60%,90% 35%,100% 52%,100% 100%,0 100%);opacity:.9}
.hero-text{position:relative;padding:0 var(--pad) clamp(60px,12vh,120px);max-width:900px}
.eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-weight:500}
.hero h1{font:400 clamp(52px,10vw,128px)/.95 var(--serif);letter-spacing:-.01em}
.hero-sub{font-size:clamp(14px,1.6vw,17px);letter-spacing:.18em;text-transform:uppercase;margin:22px 0 34px;opacity:.85}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-credit{position:absolute;right:var(--pad);bottom:28px;font-size:12px;letter-spacing:.1em;color:var(--muted);text-decoration:none}
.hero-credit:hover{color:var(--text)}
@media(max-width:760px){.hero-credit{display:none}}
.btn{display:inline-block;padding:14px 26px;border:1px solid var(--text);background:var(--text);color:var(--bg);text-decoration:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;transition:.25s}
.btn:hover{background:transparent;color:var(--text)}
.btn.ghost{background:transparent;color:var(--text)}
.btn.ghost:hover{background:var(--text);color:var(--bg)}

/* Sections */
.section{padding:clamp(70px,10vw,130px) var(--pad)}
.section.alt{background:var(--bg2)}
.page-top{padding-top:clamp(120px,14vw,170px);min-height:70vh}
.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 24px;margin-bottom:44px}
.section-head .eyebrow{width:100%;margin-bottom:4px}
.section-head h2,.page-title{font:400 clamp(38px,5vw,64px)/1.05 var(--serif)}
.section-head .more{margin-left:auto;font-size:13px;letter-spacing:.1em;text-decoration:none;color:var(--muted)}
.section-head .more:hover{color:var(--text)}
.empty{color:var(--muted);font-size:17px}
.empty a{color:var(--accent)}
.back{display:inline-block;margin-bottom:20px;font-size:13px;letter-spacing:.1em;color:var(--muted);text-decoration:none}
.back:hover{color:var(--text)}

/* Album cards */
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:clamp(14px,2vw,28px)}
.album-card{text-decoration:none;display:block}
.album-thumb{aspect-ratio:4/3;overflow:hidden;background:var(--bg2)}
.album-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .4s}
.album-card:hover img{transform:scale(1.045)}
.album-info{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 2px 4px;border-bottom:1px solid var(--line)}
.album-info h3{font:400 26px/1.2 var(--serif)}
.album-info span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

/* Gallery (masonry) */
.album-desc{max-width:720px;font-size:18px;color:#c9c5bd;margin:-20px 0 40px}
.gallery{columns:3 320px;column-gap:14px}
.g-item{display:block;margin-bottom:14px;break-inside:avoid;overflow:hidden;background:var(--bg2);cursor:zoom-in}
.g-item img{width:100%;height:auto;transition:transform .6s,opacity .5s;opacity:0}
.g-item img.loaded{opacity:1}
.g-item:hover img{transform:scale(1.025)}
.album-pager{display:flex;justify-content:space-between;gap:20px;margin-top:70px;padding-top:30px;border-top:1px solid var(--line)}
.album-pager a{text-decoration:none;font:400 24px var(--serif)}
.album-pager a.r{text-align:right}
.album-pager small{display:block;font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,9,11,.97);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox figure{position:relative;max-width:calc(100vw - 140px);max-height:calc(100vh - 110px);display:flex}
.lightbox img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;transition:opacity .25s;user-select:none}
.lightbox img.loading{opacity:.25}
.lb-spin{position:absolute;top:50%;left:50%;width:28px;height:28px;margin:-14px;border:2px solid var(--line);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite;display:none}
.lightbox.busy .lb-spin{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.lightbox button{position:absolute;background:none;border:0;color:var(--text);cursor:pointer;opacity:.6;transition:opacity .2s;font:200 54px/1 var(--sans);padding:20px}
.lightbox button:hover{opacity:1}
.lb-close{top:6px;right:14px;font-size:44px!important}
.lb-prev{left:6px}.lb-next{right:6px}
.lb-bar{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:28px;font-size:12px;letter-spacing:.2em;color:var(--muted)}
.lb-dl{color:var(--muted);text-transform:uppercase}
@media(max-width:760px){
  .lightbox figure{max-width:100vw}
  .lb-prev,.lb-next{display:none}
  .gallery{columns:2 150px;column-gap:8px}.g-item{margin-bottom:8px}
}

/* Music */
.player{max-width:760px;margin-bottom:50px}
.tracks{list-style:none;border-top:1px solid var(--line)}
.track{width:100%;display:flex;align-items:center;gap:22px;padding:18px 4px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .2s}
.track:hover{background:rgba(255,255,255,.03)}
.track .n{font-size:12px;color:var(--muted);letter-spacing:.1em}
.track .t{flex:1;font:400 22px var(--serif)}
.track .pl{font-size:12px;color:var(--muted)}
.track.playing .t,.track.playing .pl{color:var(--accent)}
.player audio{width:100%;margin-top:22px;filter:invert(.9) hue-rotate(180deg);opacity:.85}

/* Video */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:28px}
.yt-embed button{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#000;cursor:pointer;overflow:hidden}
.yt-embed button img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .3s,transform .6s}
.yt-embed button:hover img{opacity:1;transform:scale(1.03)}
.yt-embed .play{position:absolute;top:50%;left:50%;width:68px;height:68px;margin:-34px;border-radius:50%;border:1.5px solid #fff;background:rgba(0,0,0,.35)}
.yt-embed .play::after{content:"";position:absolute;left:27px;top:22px;border-style:solid;border-width:12px 0 12px 19px;border-color:transparent transparent transparent #fff}
.yt-embed iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
.yt-embed figcaption{padding-top:12px;font:400 21px var(--serif)}
/* Playlists */
.playlist{margin-bottom:64px}
.pl-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:20px}
.pl-head h3{font:400 clamp(26px,3vw,34px)/1.15 var(--serif)}
.pl-count{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pl-link{margin-left:auto;font-size:13px;letter-spacing:.1em;color:var(--muted);text-decoration:none}
.pl-link:hover{color:var(--text)}
.pl-row{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,26vw,340px);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:#33383f transparent}
.pl-row::-webkit-scrollbar{height:6px}.pl-row::-webkit-scrollbar-thumb{background:#33383f;border-radius:3px}
.vcard{scroll-snap-align:start;background:none;border:0;padding:0;color:var(--text);text-align:left;cursor:pointer;font:inherit}
.vthumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#000}
.vthumb img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .3s,transform .6s}
.vcard:hover .vthumb img,.vcard:focus-visible .vthumb img{opacity:1;transform:scale(1.04)}
.vthumb .play{position:absolute;top:50%;left:50%;width:52px;height:52px;margin:-26px;border-radius:50%;border:1.5px solid #fff;background:rgba(0,0,0,.35)}
.vthumb .play::after{content:"";position:absolute;left:20px;top:16px;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff}
.vtitle{display:block;padding-top:10px;font-size:14px;line-height:1.4;color:#c9ccd1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vcard:hover .vtitle{color:var(--text)}
.pl-embed iframe{width:100%;max-width:960px;aspect-ratio:16/9;border:0;display:block}
.vmodal{position:fixed;inset:0;z-index:100;background:rgba(8,9,11,.96);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.vmodal.open{opacity:1;pointer-events:auto}
.vm-frame{width:min(1200px,92vw,calc((100vh - 120px) * 16 / 9))}
.vm-frame iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
.vm-close{position:absolute;top:6px;right:14px;background:none;border:0;color:var(--text);font:200 44px/1 var(--sans);padding:20px;cursor:pointer;opacity:.7}
.vm-close:hover{opacity:1}

.channel-card{display:flex;align-items:center;gap:24px;max-width:640px;padding:28px 30px;border:1px solid var(--line);text-decoration:none;transition:border-color .25s,background .25s}
.channel-card:hover{border-color:var(--text);background:rgba(255,255,255,.02)}
.channel-card svg{width:46px;flex:none;color:#ff3b3b}
.channel-card strong{display:block;font:400 26px var(--serif)}
.channel-card span{color:var(--muted);font-size:14px}
.channel-card .arrow{margin-left:auto;font-size:22px;color:var(--text)}

/* About */
.about-body{display:grid;grid-template-columns:1.2fr 1fr;gap:40px 80px;align-items:start}
.about-body .lead{font:400 clamp(22px,2.4vw,30px)/1.45 var(--serif)}
.disciplines{list-style:none}
.disciplines li{padding:16px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}
.disciplines li:first-child{border-top:1px solid var(--line)}
.disciplines span{display:block;color:var(--text);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;margin-bottom:2px}
.about-body .btn{grid-column:1}
@media(max-width:860px){.about-body{grid-template-columns:1fr}}

/* Footer */
.site-footer{padding:60px var(--pad) 36px;border-top:1px solid var(--line)}
.foot-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;align-items:flex-start}
.foot-inner p{font-size:13px;margin-top:8px}
.foot-links{display:flex;gap:26px;flex-wrap:wrap}
.foot-links a{text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.foot-links a:hover{color:var(--text)}
.copy{margin-top:46px;font-size:12px;color:#5d6168}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
