/* LumLux Studio — sits on top of the LumLux Theme stylesheet. */
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Manrope";src:url("../fonts/manrope-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Manrope";src:url("../fonts/manrope-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}

/* Dark: projection room. Also the fallback when no mode attribute is set. */
html:not([data-lumlux-theme="light"]){
	--lumlux-bg:#0d1118; --lumlux-text:#e6e8ea; --lumlux-muted:#8a93a0;
	--lumlux-accent:#7fb2ff; --lumlux-accent-contrast:#0d1118;
	--lumlux-surface-solid:#121822; --lumlux-surface:rgba(255,255,255,.035);
	--lumlux-border:rgba(230,232,234,.14);
	--lumlux-footer-bg:#0a0d13; --lumlux-footer-text:#c5cad1;
	--lls-wave-off:#2f3744; --lls-hero-a:127,178,255; --lls-hero-b:200,214,235; --lls-hero-fade:13,17,24;
}
/* Light: gallery wall. */
html[data-lumlux-theme="light"]{
	--lumlux-bg:#eceeed; --lumlux-text:#15181c; --lumlux-muted:#5d646d;
	--lumlux-accent:#1f4f9e; --lumlux-accent-contrast:#ffffff;
	--lumlux-surface-solid:#f7f8f7; --lumlux-surface:rgba(255,255,255,.6);
	--lumlux-border:rgba(21,24,28,.14);
	--lumlux-footer-bg:#e2e5e4; --lumlux-footer-text:#2b3036;
	--lls-wave-off:#c3c8cc; --lls-hero-a:31,79,158; --lls-hero-b:90,100,115; --lls-hero-fade:236,238,237;
}
html[data-lumlux-theme] body[class],
html body[class]{
	--lumlux-heading-font:"Instrument Serif",Georgia,"Times New Roman",serif;
	--lumlux-body-font:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
	transition:background-color .5s ease,color .5s ease;
}
html body[class] h1,html body[class] h2,html body[class] h3,html body[class] h4{
	font-weight:400;text-transform:none;letter-spacing:-.01em;
}

/* Homepage hero */
.lls-home{padding:0;}
.lls-hero{position:relative;width:100%;height:min(78vh,760px);min-height:420px;overflow:hidden;}
.lls-hero__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}
.lls-hero__text{position:absolute;left:clamp(1.25rem,4vw,3rem);bottom:clamp(1.5rem,5vw,3.5rem);max-width:min(90%,48rem);}
html body[class] .lls-hero__title{font-size:clamp(3rem,9vw,7.5rem);line-height:.92;margin:0;}
.lls-hero__sub{color:var(--lumlux-muted);margin:1rem 0 0;max-width:34rem;}
.lls-sound{position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:clamp(1.5rem,5vw,3.5rem);background:none;border:1px solid var(--lumlux-border);color:var(--lumlux-text);border-radius:999px;padding:.45rem 1rem;font:inherit;font-size:.85rem;cursor:pointer;}
.lls-sound[aria-pressed="true"]{border-color:var(--lumlux-accent);color:var(--lumlux-accent);}

/* Featured work with a museum label */
.lls-featured{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-block:clamp(3rem,8vw,6rem);border-top:1px solid var(--lumlux-border);}
html body[class] .lls-featured__title{font-size:clamp(2rem,4vw,3rem);line-height:1.05;margin:0;}
.lls-featured__title a{text-decoration:none;color:inherit;}
.lls-featured__meta{color:var(--lumlux-muted);margin:.5rem 0 0;font-size:.95rem;}
.lls-featured__excerpt{margin:1.25rem 0 0;max-width:30rem;}
.lls-text-link{display:inline-block;margin-top:1.5rem;color:inherit;text-underline-offset:.2em;}
.lls-text-link:hover{color:var(--lumlux-accent);}
.lls-featured__image{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--lumlux-surface);}
.lls-featured__image img{width:100%;height:100%;object-fit:cover;display:block;}

/* Work lists */
.lls-more{width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-bottom:clamp(3rem,8vw,6rem);}
.lls-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--lumlux-border);}
.lls-list a{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--lumlux-border);text-decoration:none;color:inherit;}
.lls-list a:hover{color:var(--lumlux-accent);}
.lls-list__t{font-family:var(--lumlux-heading-font);font-size:1.6rem;line-height:1.2;}
.lls-list__m{color:var(--lumlux-muted);font-size:.9rem;white-space:nowrap;align-self:center;}

/* Work page: waveform */
.lls-work{width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-block:clamp(2rem,6vw,4rem) clamp(3rem,8vw,6rem);}
html body[class] .lls-work__title{font-size:clamp(2.5rem,7vw,5rem);line-height:1;margin:0;}
.lls-work__intro{color:var(--lumlux-muted);max-width:36rem;margin-top:1rem;}
.lls-wave{margin:clamp(2rem,5vw,3.5rem) 0 1rem;}
.lls-wave__canvas{width:100%;height:clamp(120px,22vw,220px);display:block;cursor:pointer;}
.lls-wave__preview{display:flex;align-items:end;gap:1rem;min-height:3rem;margin-top:1rem;}
.lls-wave__preview img{width:min(260px,40vw);aspect-ratio:16/10;object-fit:cover;}
.lls-wave__now{font-family:var(--lumlux-heading-font);font-size:1.8rem;line-height:1.1;}
.lls-wave-index{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:0 2rem;border-top:1px solid var(--lumlux-border);}
.lls-wave-index a{display:block;padding:.9rem 0;border-bottom:1px solid var(--lumlux-border);text-decoration:none;color:inherit;}
.lls-wave-index li.is-active a,.lls-wave-index a:hover{color:var(--lumlux-accent);}
.lls-wave-index__t{display:block;font-size:1.05rem;}
.lls-wave-index__m{display:block;color:var(--lumlux-muted);font-size:.85rem;}
.lls-empty{color:var(--lumlux-muted);}

@media (max-width:760px){
	.lls-featured{grid-template-columns:1fr;}
	.lls-featured__image{order:-1;}
	.lls-sound{top:1rem;bottom:auto;}
}
@media (prefers-reduced-motion:reduce){
	html body[class]{transition:none;}
}

/* Lab header: full-width p5.js flow field */
.lls-lab{position:relative;width:100%;min-height:min(80vh,780px);display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--lumlux-border);}
.lls-lab__stage{position:absolute;inset:0;overflow:hidden;}
.lls-lab__stage canvas{display:block;}
.lls-lab__text{position:relative;padding:clamp(1.5rem,5vw,3.5rem) clamp(1.25rem,4vw,3rem);pointer-events:none;}
html body[class] .lls-lab__title{font-size:clamp(3.5rem,11vw,9rem);line-height:.9;margin:0;}
.lls-lab__sub{margin:1rem 0 0;max-width:30rem;}
.lls-lab__hint{margin:.75rem 0 0;color:var(--lumlux-muted);font-size:.9rem;}

/* FDR-Sound header: option B waveform */
.lls-soundhead{width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-block:clamp(2rem,6vw,4.5rem) clamp(1.5rem,4vw,3rem);}
.lls-soundhead__top{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
html body[class] .lls-soundhead__title{font-size:clamp(3.5rem,11vw,9rem);line-height:.9;margin:0;}
.lls-soundhead__play{background:none;border:1px solid var(--lumlux-border);color:var(--lumlux-text);border-radius:999px;padding:.5rem 1.2rem;font:inherit;cursor:pointer;}
.lls-soundhead__play[aria-pressed="true"]{border-color:var(--lumlux-accent);color:var(--lumlux-accent);}
.lls-soundhead__wave{display:block;width:100%;height:clamp(120px,20vw,220px);margin-top:clamp(1.5rem,4vw,2.5rem);}
.lls-soundhead__nav ol{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;}
.lls-soundhead__nav button{background:none;border:0;padding:.25rem 0;font:inherit;font-size:.95rem;color:var(--lumlux-muted);cursor:pointer;}
.lls-soundhead__nav button:hover,.lls-soundhead__nav button:focus-visible{color:var(--lumlux-accent);}
.music-release-card{scroll-margin-top:calc(var(--lumlux-header-height,76px) + 1rem);}


/* Homepage: statement */
.lls-statement{width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-block:clamp(3.5rem,9vw,7rem) clamp(2.5rem,6vw,4.5rem);}
.lls-statement__lead{font-family:var(--lumlux-heading-font);font-size:clamp(2.2rem,5.5vw,4.6rem);line-height:1.04;letter-spacing:-.01em;margin:0;max-width:18ch;}
.lls-statement__cols{display:grid;grid-template-columns:repeat(2,minmax(0,22rem));gap:clamp(1.5rem,4vw,3rem);margin-top:clamp(1.5rem,3vw,2.25rem);color:var(--lumlux-muted);}
.lls-statement__cols p{margin:0;}

/* Homepage: projection band — always black, like a dark room */
.lls-band{position:relative;background:#000;color:#e6e8ea;}
.lls-band__image{display:block;}
.lls-band__image img{display:block;width:100%;height:min(82vh,860px);object-fit:contain;border-radius:0;}
.lls-band__label{position:absolute;left:clamp(1.25rem,4vw,3rem);bottom:clamp(1.25rem,4vw,2.5rem);}
html body[class] .lls-band__title{font-size:clamp(2rem,4.5vw,3.6rem);line-height:1;margin:0;color:#e6e8ea;}
.lls-band__title a{color:inherit;text-decoration:none;}
.lls-band__meta{margin:.4rem 0 0;color:#9a9fa6;font-size:.95rem;}
.lls-band__link{position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:clamp(1.25rem,4vw,2.5rem);color:#e6e8ea;text-underline-offset:.2em;}
.lls-band__link:hover{color:#7fb2ff;}

/* Homepage: salon wall */
.lls-salon{width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-block:clamp(3.5rem,9vw,7rem);}
.lls-salon__wall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem) clamp(1rem,2.5vw,2rem);align-items:start;}
.lls-salon__item a{display:block;color:inherit;text-decoration:none;}
.lls-salon__frame{display:block;overflow:hidden;background:var(--lumlux-surface);}
.lls-salon__frame img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .8s ease;}
.lls-salon__item a:hover .lls-salon__frame img{transform:scale(1.03);}
.lls-salon__title{display:block;font-family:var(--lumlux-heading-font);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.15;margin-top:.7rem;}
.lls-salon__item a:hover .lls-salon__title{color:var(--lumlux-accent);}
.lls-salon__meta{display:block;color:var(--lumlux-muted);font-size:.85rem;margin-top:.15rem;}
.lls-salon__item--1{grid-column:1 / span 3;grid-row:1 / span 2;}
.lls-salon__item--1 .lls-salon__frame{aspect-ratio:4/3;}
.lls-salon__item--2{grid-column:4 / span 2;}
.lls-salon__item--2 .lls-salon__frame{aspect-ratio:1/1;}
.lls-salon__item--3{grid-column:6 / span 1;margin-top:clamp(2rem,6vw,5rem);}
.lls-salon__item--3 .lls-salon__frame{aspect-ratio:3/4;}
.lls-salon__item--4{grid-column:4 / span 3;}
.lls-salon__item--4 .lls-salon__frame{aspect-ratio:16/7;}
.lls-salon__all{margin-top:clamp(2rem,4vw,3rem);}

/* Homepage: sound strip */
.lls-strip{width:min(calc(100% - 40px),var(--lumlux-wide));margin-inline:auto;padding-block:clamp(2rem,5vw,3rem) clamp(3rem,7vw,5rem);border-top:1px solid var(--lumlux-border);}
.lls-strip__wave{display:block;width:100%;height:clamp(56px,8vw,90px);}
.lls-strip__row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-top:1rem;}
.lls-strip__main{font-family:var(--lumlux-heading-font);font-size:clamp(1.5rem,3vw,2.2rem);color:inherit;text-decoration:none;}
a.lls-strip__main:hover{color:var(--lumlux-accent);}
.lls-strip__platforms{display:flex;gap:1.25rem;color:var(--lumlux-muted);font-size:.95rem;}
.lls-strip__platforms a{color:inherit;}
.lls-strip__platforms a:hover{color:var(--lumlux-accent);}

@media (max-width:860px){
	.lls-statement__cols{grid-template-columns:1fr;}
	.lls-band__image img{height:auto;max-height:70vh;}
	.lls-band__label,.lls-band__link{position:static;}
	.lls-band__label{padding:1.25rem 1.25rem .5rem;}
	.lls-band__link{display:inline-block;padding:0 1.25rem 1.5rem;}
	.lls-salon__wall{grid-template-columns:repeat(2,minmax(0,1fr));}
	.lls-salon__item--1,.lls-salon__item--4{grid-column:1 / -1;grid-row:auto;}
	.lls-salon__item--2,.lls-salon__item--3{grid-column:auto;margin-top:0;}
}
@media (prefers-reduced-motion:reduce){
	.lls-salon__frame img{transition:none;}
}

/* 2.3: quieter statement on the hero's left line, play button in the strip */
.lls-statement{width:auto;margin:0;padding-inline:clamp(1.25rem,4vw,3rem);padding-block:clamp(3rem,7vw,5rem) clamp(2.5rem,6vw,4rem);}
.lls-statement__lead{font-size:clamp(1.3rem,2.6vw,2.3rem);line-height:1.2;max-width:28ch;}
.lls-statement__cols{grid-template-columns:repeat(2,minmax(0,20rem));margin-top:1.25rem;font-size:.95rem;}
.lls-strip__row{justify-content:flex-start;}
.lls-strip__platforms{margin-left:auto;}
.lls-strip__play{background:none;border:1px solid var(--lumlux-border);color:var(--lumlux-text);border-radius:999px;padding:.4rem 1.1rem;font:inherit;font-size:.9rem;cursor:pointer;align-self:center;}
.lls-strip__play[aria-pressed="true"]{border-color:var(--lumlux-accent);color:var(--lumlux-accent);}
@media (max-width:860px){ .lls-statement__cols{grid-template-columns:1fr;} }
