/* enisrotthoff.com – v25 design system */
/* self-hosted fonts (SIL Open Font License; licences in /fonts/) */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSerif-Regular.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSerif-Italic.woff2) format('woff2')}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterTightwght.woff2) format('woff2')}
@font-face{font-family:'Syne';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/Synewght.woff2) format('woff2')}
:root{
  --bg:#050505; --bar:#1e1d1b; --ink:#f2efe9; --ink2:#ece8e1; --ink3:#d6d2ca; --ink4:#c9c4bb; --body:#a8a39b;
  --dim:#8d887f; --dim2:#716d67; --dim3:#59564f; --dim4:#4d4a45; --hair:#2b2926; --hair2:#1f1e1c; --hair3:#141312; --hair4:#3d3b37;
  --accent:#e0237a; --serif:'Instrument Serif',Georgia,serif; --sans:'Inter Tight',system-ui,sans-serif; --display:'Syne',sans-serif;
  --col:1056px; --pad:40px; --top:76px; --player:76px;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--body);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;scroll-padding-top:calc(var(--top) + 70px)}
body{margin:0;min-height:100vh;padding-top:var(--top);padding-bottom:var(--player);background:var(--bg)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:16px;top:84px;background:var(--ink);color:#111;padding:8px 12px;z-index:99}
.kicker{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim2)}
.dim{color:var(--dim2)}
.hairlink{display:inline-block;border-bottom:1px solid var(--accent);padding-bottom:3px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.hairlink:hover{color:#fff}
.ext{color:var(--body);border-bottom:1px solid #33312e;margin-left:14px}
.pill{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--bar);border:0;border-radius:20px;padding:0 18px;height:38px;cursor:pointer;font-size:11px;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
.pill:hover{background:#fff}
.pill-off{background:transparent;color:var(--dim2);border:1px solid var(--hair);cursor:default}
.pill-off:hover{background:transparent}
.hint{font-size:13px;color:var(--dim2);margin-left:18px}

/* header */
.top{position:fixed;left:0;right:0;top:0;height:var(--top);z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 48px;background:var(--bg);border-bottom:1px solid var(--hair3)}
.brand{font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink2)}
.nav{display:flex;gap:40px;justify-self:center}
.nav a{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:14px 0;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
.nav a:hover{color:var(--ink2)}
.nav a[aria-current=page]{color:var(--ink)}
.nav a[aria-current=page]::before{content:"";position:absolute;left:-15px;right:-15px;top:50%;height:calc((100% - 28px + 30px) / 2.39 * 1);min-height:28px;transform:translateY(-50%);border:1px solid var(--accent);pointer-events:none;animation:ignite .9s ease-out}
@keyframes ignite{0%{opacity:0}30%{opacity:1}45%{opacity:.4}60%{opacity:1}75%{opacity:.6}100%{opacity:1}}
.lang{justify-self:end;font-size:12px;letter-spacing:.2em;color:var(--dim)}.lang .on{color:var(--ink2)}

/* main column */
.main{width:var(--col);max-width:100%;margin:0 auto;padding:0 var(--pad) 90px;position:relative}
.connect-wrap .page-head{position:relative;z-index:1}
.page-head{display:flex;align-items:baseline;gap:18px;padding:40px 0 26px}
.page-head h1{margin:0;font-family:var(--serif);font-weight:400;font-size:64px;line-height:1;color:var(--ink)}
.page-head .sub{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim2)}
.intro{max-width:70ch;font-size:14px;line-height:1.7;color:var(--body)}
.intro a{color:var(--ink2);border-bottom:1px solid #33312e}

/* spread grammar */
.start,.spread{display:grid;grid-template-columns:320px minmax(0,1fr);gap:56px;align-items:start}
.start{padding-top:58px}
.start .kicker{white-space:nowrap;letter-spacing:.17em;font-size:9.5px}
.spread{padding:44px 0 48px;border-top:1px solid var(--hair2)}
.spread:first-child{border-top:0}
.headline,.ftitle{margin:14px 0 0;font-family:var(--serif);font-weight:400;font-size:44px;line-height:1.04;letter-spacing:.01em;color:var(--ink)}
.ftitle a:hover{color:#fff}
.creds{margin:16px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink4)}
.line{margin:14px 0 0;font-size:13.5px;line-height:1.55;color:var(--body)}
.sp-actions{display:flex;align-items:center;gap:20px;margin-top:26px}
.card,.credits,.rows{margin:0}
.card{display:flex;flex-direction:column;gap:5px;margin-top:28px;padding-top:16px;border-top:1px solid var(--hair);font-size:12px;line-height:1.5;color:var(--dim)}
.card div,.credits div{display:block}.card dt,.credits dt{display:inline;color:var(--dim3)}.card dd,.credits dd{display:inline;margin:0}
.card dt::after,.credits dt::after{content:" · "}
.credits{display:flex;flex-direction:column;gap:4px;margin-top:20px;font-size:12px;line-height:1.5;color:var(--dim)}
.credits .fact dd{color:var(--ink4)}
.quote{margin:22px 0 0;padding:16px 0 0;border-top:1px solid var(--hair)}
.quote blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.38;color:var(--ink2)}
.quote figcaption{margin-top:8px;font-family:var(--serif);font-size:13.5px;line-height:1.4;letter-spacing:.02em;color:#8f8a82}
.still{aspect-ratio:2.39/1;position:relative;display:block;width:100%;border:0;padding:0;background:#050505}
.still-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.heroplay{cursor:pointer}
.heroplay-badge{position:absolute;left:14px;bottom:12px;display:inline-flex;align-items:center;gap:9px;padding:7px 12px 7px 9px;border-radius:15px;background:rgba(5,5,5,.6);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink2);pointer-events:none}
.heroplay:hover .heroplay-badge{background:rgba(5,5,5,.85)}
.caption{display:block;margin-top:14px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim2)}

/* score band */
.band{padding:18px 0 8px;border-top:1px solid var(--hair2)}
.band-head{display:flex;align-items:baseline;gap:22px;margin-bottom:10px}
.band-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.cue{display:flex;align-items:center;gap:12px;width:100%;padding:9px 0;background:transparent;border:0;border-top:1px solid var(--hair3);text-align:left;cursor:pointer;color:var(--ink4);font-size:13px}
.cue:hover{color:#fff}.cue.on{color:#fff}.cue.on .tri{border-left-color:var(--accent)}
.cue-off{color:var(--dim3);cursor:default}
.tri{width:0;height:0;border-left:7px solid var(--body);border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;flex-shrink:0}
.cue-off .tri{border-left-color:var(--dim4)}
.lic{margin-left:auto;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:1px}
.next{display:flex;align-items:baseline;gap:40px;margin-top:40px;padding-top:26px;border-top:1px solid var(--hair2)}
.next-title{font-family:var(--serif);font-size:44px;line-height:1;color:var(--ink)}
.next-title:hover{color:#fff}

/* start extras */
.doors{margin-top:34px;padding-top:18px;border-top:1px solid var(--hair2)}
.doors-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:28px;margin-top:6px}
.doors a{display:flex;flex-direction:column;gap:5px;padding:10px 0}
.door-k{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.door-v{font-size:14.5px;color:var(--ink3)}
.news{margin-top:56px;padding-top:18px;border-top:1px solid var(--hair2)}
.news-item{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px;align-items:start;padding:18px 0;border-top:1px solid var(--hair3)}
.news-item:first-of-type{border-top:0}
.news-first{grid-template-columns:320px minmax(0,1fr)}
.news-img{aspect-ratio:3/2;background:#141312}
.news-text h3{margin:0;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.1;color:var(--ink)}
.news-first .news-text h3{font-size:30px}
.news-text p{margin:8px 0 0;font-size:13.5px;line-height:1.55;color:var(--body);max-width:60ch}

/* films page */
.chips{position:sticky;top:var(--top);z-index:4;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:0 calc(-1 * var(--pad)) 8px;padding:12px var(--pad);background:var(--bg);border-bottom:1px solid var(--hair3)}
.chip{height:34px;padding:0 12px;flex-shrink:0;border-radius:17px;cursor:pointer;font-size:11px;letter-spacing:.18em;text-transform:uppercase;background:transparent;color:var(--ink3);border:1px solid var(--hair4)}
.chip:hover{border-color:var(--dim)}
.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.chip .count{margin-left:6px;color:var(--dim3)}.chip[aria-pressed=true] .count{color:rgba(255,255,255,.75)}
.chips-link{margin-left:auto}
.chips[data-chips=play]{flex-wrap:wrap;gap:8px}
@media (max-width:760px){.chips[data-chips=play]{flex-wrap:nowrap}}
.rail{position:sticky;top:calc(var(--top) + 76px);float:left;margin-left:-204px;width:150px;display:flex;flex-direction:column;gap:2px;z-index:3}
.rail a{font-size:11px;line-height:1.6;letter-spacing:.02em;color:var(--dim2);white-space:nowrap}
.rail a:hover,.rail a.on{color:var(--ink2)}
.films{clear:none}
.spread.hide,.band.hide{display:none}
.allcredits{margin-top:44px;padding-top:22px;border-top:1px solid var(--hair2)}
.allcredits p{margin:10px 0 0;font-size:13px;line-height:1.75;color:var(--dim2);max-width:90ch}

/* film page */
.fp-address{display:flex;justify-content:space-between;align-items:center;padding:26px 0 0}
.addr{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim2)}
.close{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3)}
.fp-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;padding:34px 0 0;border-top:1px solid var(--hair2)}
.poster{aspect-ratio:2/3;background:#141312}
.trailer{aspect-ratio:16/9;background:#0c0b0a;margin-bottom:26px}.trailer iframe{width:100%;height:100%;border:0}
.fp-syn p,.press{margin:10px 0 0;font-size:14px;line-height:1.7;color:var(--body);max-width:68ch}
.fp-about{margin-top:26px}
.excerpt{margin:10px 0 0;font-family:var(--serif);font-size:18px;line-height:1.45;color:var(--ink2);max-width:62ch}
.src{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim2)}
.press{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink3)}
.fp-press{margin-top:26px}
.fp-score{margin-top:40px;padding-top:18px;border-top:1px solid var(--hair2)}
.fp-score .band-grid{margin-top:8px}
.licnote{margin:16px 0 0;font-size:12px;color:var(--dim2)}.licnote a{color:var(--ink3);border-bottom:1px solid #33312e}

/* play */
.play-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 10px}
.play-title{margin:0;font-family:var(--serif);font-weight:400;font-size:30px;color:var(--ink)}
.play-list{display:flex;flex-direction:column}
.prow{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:9px 0;background:transparent;border:0;border-top:1px solid var(--hair3);text-align:left;cursor:pointer;color:var(--ink4)}
.prow:hover,.prow.on{color:#fff}.prow.on .pnum{color:var(--accent)}
.prow.hide{display:none}
.pnum{font-size:11px;color:var(--dim3)}
.part{display:block;width:64px;height:27px;background:#141312}
.pname{display:flex;flex-direction:column;gap:2px;font-size:14px}.pfilm{font-size:12px;color:var(--body)}
.ptags{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim2)}

/* albums */
.albums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 28px;margin-top:10px}
.album{display:flex;flex-direction:column;gap:6px}
.sleeve-wrap{position:relative;padding-left:14%;margin-bottom:10px}
.sleeve{position:relative;aspect-ratio:1/1;background:#141312;box-shadow:0 0 0 1px #22211f}
.record{position:absolute;left:0;top:6%;width:88%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle,#0a0a0a 0 7%,#1a1918 8% 9%,#0d0d0d 10% 100%);box-shadow:0 0 0 1px #1a1918;transition:transform .6s ease}
.atitle{margin:0;font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.15;color:var(--ink)}
.alabel{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim2)}
.atracks{margin:6px 0 0;padding-left:16px;font-size:12px;line-height:1.6;color:var(--body)}

/* bio / work */
.bio,.work{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start;padding-top:10px}
.bio-left{display:block}
.bio-portrait{float:left;width:260px;aspect-ratio:4/3;margin:6px 30px 12px 0;background:#141312}
.lead{margin:0;font-family:var(--serif);font-size:26px;line-height:1.3;color:var(--ink)}
.body{margin:16px 0 0;font-size:13.5px;line-height:1.7;color:var(--body);max-width:68ch}
.rows{display:flex;flex-direction:column;margin:0}
.rows div{padding:10px 0;border-top:1px solid var(--hair3)}
.rows dt{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim2)}
.rows dd{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink3)}
.rows dd a{color:var(--ink3);border-bottom:1px solid #33312e}
.work .lead{font-size:30px;margin-bottom:28px}
.steps{list-style:none;margin:12px 0 0;padding:0}
.steps li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;padding:14px 0;border-top:1px solid var(--hair3)}
.steps .n{font-family:var(--serif);font-size:24px;color:var(--accent)}
.steps .k{display:block;font-size:14.5px;color:var(--ink2)}
.steps .v{display:block;margin-top:4px;font-size:13px;line-height:1.55;color:var(--body)}

/* credits page */
.archive{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 56px;margin-top:30px}
.arow{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,.9fr);gap:14px;padding:7px 0;border-top:1px solid var(--hair3);font-size:12px;line-height:1.5;color:var(--ink4);align-items:baseline}
.arow .atitle-c{font-size:14.5px;color:var(--ink2)}
.arow .note{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim3);white-space:nowrap;margin-left:4px}
.arow .dir,.arow .co{line-height:1.35}
.arow .dir{color:var(--accent)}
.arow .co{color:var(--dim3)}
.agroup .kicker{margin-bottom:8px}

/* player */
.player{position:fixed;left:0;right:0;bottom:0;height:var(--player);z-index:30;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.6fr) auto;align-items:center;gap:24px;padding:0 24px;background:var(--bar)}
.p-art{position:relative;width:92px;height:38px;flex-shrink:0;background:linear-gradient(125deg,#2c2a26,#121110 75%);background-size:cover;background-position:center}
.p-now{display:flex;flex-direction:column;gap:3px;min-width:0}
.player > .p-art{grid-column:1}
.p-now{grid-column:1;position:absolute;left:130px;top:50%;transform:translateY(-50%);max-width:260px}
.p-title{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-sub{font-size:12px;color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-transport{display:flex;align-items:center;gap:18px;justify-self:center}
.p-btn{background:transparent;border:0;color:var(--body);cursor:pointer;padding:6px}.p-btn:hover{color:#fff}
.p-play{width:34px;height:34px;border-radius:17px;background:var(--ink);color:var(--bar);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.p-play .i-pause{display:none}.player.playing .p-play .i-play{display:none}.player.playing .p-play .i-pause{display:block}
.p-seek{display:flex;align-items:center;gap:12px;min-width:0}
.p-time{font-size:11px;color:var(--dim);width:34px;text-align:center}
.p-bar{position:relative;flex:1;height:18px;cursor:pointer}
.p-bar::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);background:var(--hair4)}
.p-fill{position:absolute;left:0;top:50%;height:2px;transform:translateY(-50%);width:0;background:var(--accent)}
.p-dot{position:absolute;left:0;top:50%;width:10px;height:10px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%)}
.p-vol{justify-self:end}
.meter{position:absolute;left:6px;bottom:5px;display:flex;align-items:flex-end;gap:2px;height:12px}
.meter i{display:block;width:2px;background:var(--ink);transform-origin:bottom;opacity:.9}
.meter i:nth-child(1){height:5px}.meter i:nth-child(2){height:10px}.meter i:nth-child(3){height:7px}
.player.playing .meter i:nth-child(1){animation:lvl .9s ease-in-out infinite alternate}
.player.playing .meter i:nth-child(2){animation:lvl .7s ease-in-out .2s infinite alternate}
.player.playing .meter i:nth-child(3){animation:lvl 1.1s ease-in-out .1s infinite alternate}
@keyframes lvl{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.player.playing .meter i{animation:none}.nav a[aria-current=page]::before{animation:none}.record{transition:none}}

/* rail only where the margin exists */
@media (max-width:1400px){.rail{display:none}}

/* phone */
@media (max-width:760px){
  :root{--pad:22px;--top:92px;--player:60px}
  .top{grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:0 22px;height:auto;row-gap:0}
  .brand{font-size:13px;padding:14px 0 6px}
  .lang{grid-column:2;grid-row:1}
  .nav{grid-column:1/3;grid-row:2;gap:14px;justify-self:stretch;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}
  .nav a{padding:8px 0;font-size:10.5px;letter-spacing:.18em}
  .start .kicker{white-space:normal;letter-spacing:.2em}
  .main{padding-bottom:70px;text-align:center}
  .page-head{flex-direction:column;align-items:center;gap:10px;padding:24px 0 10px}.page-head h1{font-size:44px}
  .start,.spread{grid-template-columns:1fr;gap:22px}
  .start{padding-top:26px}
  .headline{font-size:40px}.ftitle{font-size:30px}
  .creds{font-size:13px}
  .sp-actions{justify-content:center;flex-wrap:wrap;gap:10px}
  .hint{margin:0;display:block;width:100%}
  .card{align-items:center;font-size:11.5px}
  .credits{align-items:center}
  .quote{padding:16px 8px 14px;border-bottom:1px solid var(--hair)}.quote blockquote{font-size:21px}
  .still-row{grid-template-columns:repeat(3,1fr);gap:6px}
  .band-grid{grid-template-columns:1fr}
  .band-head{justify-content:center}
  .cue{justify-content:center}.cue .lic{margin-left:12px}
  .doors-grid{grid-template-columns:1fr;column-gap:0}.doors a{align-items:center;border-top:1px solid var(--hair3)}
  .news-item,.news-first{grid-template-columns:1fr}
  .news-text p{max-width:none}
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -22px 4px;padding:10px 22px}.chips::-webkit-scrollbar{display:none}
  .chips-link{margin-left:12px}
  .rail{display:none}
  .fp-grid{grid-template-columns:1fr}.poster{width:140px;margin:0 auto}
  .prow{grid-template-columns:28px 1fr auto;gap:10px}.ptags{display:none}.pname{text-align:left}
  .albums{grid-template-columns:repeat(2,1fr);gap:30px 18px}
  .bio,.work{grid-template-columns:1fr}
  .bio-portrait{float:none;width:100%;margin:0 auto 16px}
  .lead{font-size:22px}.work .lead{font-size:26px}
  .steps li{text-align:left}
  .rows{text-align:center}
  .archive{grid-template-columns:1fr}.arow{grid-template-columns:1fr;gap:2px;text-align:left}.arow .atitle-c{font-size:13.5px}
  .next{justify-content:center}.next-title{font-size:34px}
  .player{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:0 12px 0 14px}
  .p-art{width:64px;height:27px}
  .p-now{position:static;transform:none;max-width:none}
  .player > .p-art,.p-now{grid-column:auto}
  .p-seek{position:absolute;left:0;right:0;top:-13px;height:26px;gap:0}.p-time{display:none}.p-bar{height:26px}
  .p-transport{gap:6px}.p-btn[data-prev],.p-vol{display:none}
  .p-play{width:44px;height:44px;border-radius:22px}
}

/* ---- contact: assembled addresses, copy, agency reveal, newsletter ---- */
.sr{position:absolute;left:-999px}
.mail,.tel{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.mail-a{color:var(--ink3);border-bottom:1px solid #33312e}
.mail-a:hover{color:#fff}
.copy{appearance:none;border:1px solid var(--hair);background:transparent;color:var(--dim);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;padding:3px 7px 2px;cursor:pointer;line-height:1.4}
.copy:hover{color:var(--ink2);border-color:var(--hair4)}
.copy.ok{color:var(--accent);border-color:var(--accent)}
.reveal-wrap{position:relative;display:inline}
.reveal{appearance:none;background:none;border:0;padding:0;cursor:pointer;color:inherit;border-bottom:1px dotted var(--dim3)}
.reveal:hover,.reveal-wrap.open .reveal{color:var(--ink2);border-bottom-color:var(--accent)}
.reveal-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:20;display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#0e0d0c;border:1px solid var(--hair);box-shadow:0 12px 40px rgba(0,0,0,.6);font-size:13px;color:var(--ink3);white-space:nowrap;animation:popin .18s ease-out}
.reveal-pop[hidden]{display:none}
@keyframes popin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.card .reveal{font-size:inherit}
.nl{display:flex;align-items:stretch;gap:0;margin-top:10px;max-width:380px;flex-wrap:wrap}
.nl-in{flex:1 1 180px;min-width:0;appearance:none;background:transparent;border:1px solid var(--hair);border-right:0;color:var(--ink2);font:inherit;font-size:13px;padding:8px 12px;outline:none}
.nl-in:focus{border-color:var(--hair4)}
.nl-in::placeholder{color:var(--dim3)}
.nl-btn{appearance:none;border:1px solid var(--hair);background:transparent;color:var(--ink3);font-size:10px;letter-spacing:.22em;text-transform:uppercase;padding:8px 14px;cursor:pointer}
.nl-btn:hover{color:#fff;border-color:var(--accent)}
.nl-msg{flex-basis:100%;font-size:12px;color:var(--dim);margin-top:6px;min-height:0}
.nl-msg:empty{display:none}
.nl-row{margin-top:40px;padding-top:20px;border-top:1px solid var(--hair3)}
.nl-note{margin:8px 0 0;font-size:13px;color:var(--dim);max-width:420px}
@media (max-width:760px){
  .rows dd,.card div{position:relative}.reveal-wrap{position:static}.reveal-pop{left:50%;transform:translateX(-50%)}
  .nl{margin-left:auto;margin-right:auto}
  .nl-row{text-align:center}.nl-note{margin-left:auto;margin-right:auto}
}

/* ---- albums: playable ---- */
.sleeve-btn{appearance:none;background:none;border:0;padding:0;margin:0;display:block;width:100%;text-align:left;cursor:pointer;position:relative;color:inherit}
.sleeve-btn .record{transition:transform .6s ease}
.album.can:hover .record{transform:translateX(-6%)}
.sleeve-play{position:absolute;right:8px;bottom:8px;width:26px;height:26px;border-radius:50%;background:rgba(5,5,5,.72);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:var(--ink);opacity:0;transition:opacity .2s}
.album.can:hover .sleeve-play,.sleeve-btn.on .sleeve-play{opacity:1}
.sleeve-btn.on .sleeve-play{border-color:var(--accent);color:var(--accent)}
.atitle-btn{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.atitle-btn:hover,.atitle-btn.on{color:var(--accent)}
.marks{display:flex;gap:12px;margin-top:8px}
.mark{display:inline-flex;color:var(--dim3);padding:2px}
.mark:hover{color:var(--accent)}

/* ---- player: timecode screen ---- */
.tc{position:absolute;left:8px;top:6px;appearance:none;background:none;border:0;padding:0;margin:0;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:10.5px;letter-spacing:.08em;color:var(--dim);cursor:pointer;line-height:1}
.tc[hidden]{display:none}
.player.playing .tc{color:var(--ink3)}
.p-art{background:#0a0a0a;border:1px solid #1b1a18}

/* ---- connect ---- */
.connect-wrap{position:relative;padding-bottom:36px}
.connect{position:relative;margin-top:10px;padding:10px 0 0}
.neon{position:absolute;z-index:0;left:50%;transform:translateX(-50%);top:0;height:100%;width:auto;max-width:none;pointer-events:none;opacity:.55;filter:drop-shadow(0 0 6px rgba(224,35,122,.55)) drop-shadow(0 0 22px rgba(224,35,122,.25));animation:ignite 1.1s ease-out}
.tiles{position:relative;z-index:1;display:grid;gap:12px}
.tiles-write{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}
.tiles-nl{grid-template-columns:1fr;margin-top:12px}
.tiles-nl .nl{grid-column:2;max-width:460px;margin-top:6px}
.tiles-follow{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.tile{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;column-gap:16px;row-gap:3px;align-items:center;padding:16px 18px;background:#070706;border:1px solid var(--hair);color:var(--ink3);transition:border-color .2s,box-shadow .25s,transform .2s;animation:tilein .8s ease-out both}
.tile-mark{grid-row:1/3;grid-column:1;color:var(--dim);display:flex;align-items:center;justify-content:center;transition:color .2s,filter .25s,transform .2s}
.tile-k{grid-column:2;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim2)}
.tile-v{grid-column:2;font-size:13.5px;line-height:1.5;color:var(--ink3)}
.mark-word{font-family:var(--display);font-weight:500;font-size:12.5px;letter-spacing:.04em}
a.tile::after{content:"↗";grid-column:3;grid-row:1/3;font-size:13px;color:var(--dim3);transition:color .2s,transform .2s}
.tile:hover{border-color:var(--accent);box-shadow:0 0 0 1px rgba(224,35,122,.18),0 0 28px rgba(224,35,122,.14)}
a.tile:hover{transform:translateY(-1px)}
.tile:hover .tile-mark{color:var(--accent);filter:drop-shadow(0 0 7px rgba(224,35,122,.75))}
.tile:has(.reveal-wrap.open),.tile:focus-within{z-index:5}
.tiles:has(.reveal-wrap.open){z-index:6}
.tile-sub{display:block;margin-top:4px;font-size:12px;color:var(--dim);border-bottom:0}
.tile-sub:hover{color:var(--accent)}
a.tile:hover::after{color:var(--accent);transform:translate(2px,-2px)}
.tile:focus-within{border-color:var(--hair4)}
.tile .nl{margin-top:8px;max-width:none;grid-column:2}
.tile .mail{flex-wrap:wrap;gap:6px 10px}
.reveal-pop .mail{flex-wrap:nowrap}
.tiles .tile:nth-child(1){animation-delay:.05s}.tiles .tile:nth-child(2){animation-delay:.12s}.tiles .tile:nth-child(3){animation-delay:.19s}.tiles .tile:nth-child(4){animation-delay:.26s}.tiles .tile:nth-child(5){animation-delay:.33s}.tiles .tile:nth-child(6){animation-delay:.4s}.tiles .tile:nth-child(7){animation-delay:.47s}
.tiles-follow .tile{animation-delay:calc(.3s + var(--i,0) * .07s)}
@keyframes tilein{0%{opacity:0;border-color:var(--accent);transform:translateY(6px)}40%{opacity:1;border-color:var(--accent)}100%{opacity:1;border-color:var(--hair);transform:none}}
/* pink for the interactive bits – readable on black */
.copy{color:var(--accent);border-color:rgba(224,35,122,.45)}
.copy:hover{color:#fff;border-color:var(--accent)}
.copy.ok{background:var(--accent);color:#fff}
.reveal{border-bottom:1px solid rgba(224,35,122,.6);color:var(--ink2)}
.reveal:hover,.reveal-wrap.open .reveal{color:var(--accent);border-bottom-color:var(--accent)}
.mail-a{color:var(--ink2);border-bottom-color:rgba(224,35,122,.45)}
.mail-a:hover{color:var(--accent)}
@media (max-width:1000px){.tiles-follow{grid-template-columns:repeat(2,minmax(0,1fr))}.tiles-write{grid-template-columns:1fr}}
@media (max-width:760px){
  .tiles-follow{grid-template-columns:1fr}
  .tile{padding:14px 16px}
  .neon{opacity:.4}
}
@media (prefers-reduced-motion:reduce){.neon{animation:none}.tile{animation:none}}

/* ---- volume slider ---- */
.p-vol{display:flex;align-items:center;gap:6px}
.p-volume{-webkit-appearance:none;appearance:none;width:72px;height:14px;background:transparent;cursor:pointer;margin:0}
.p-volume::-webkit-slider-runnable-track{height:2px;background:var(--hair4)}
.p-volume::-moz-range-track{height:2px;background:var(--hair4)}
.p-volume::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:8px;border-radius:50%;background:var(--ink);margin-top:-3px}
.p-volume::-moz-range-thumb{width:8px;height:8px;border:0;border-radius:50%;background:var(--ink)}
.p-volume:hover::-webkit-slider-thumb{background:var(--accent)}
.player.muted .p-volume::-webkit-slider-thumb{background:var(--dim3)}
@media (max-width:760px){.p-volume{display:none}}

/* ---- message form ---- */
.tiles-msg{grid-template-columns:1fr;margin-top:12px}
.tile-msg .msg{grid-column:2}
.msg{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-width:640px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.msg-row{display:flex;gap:8px;flex-wrap:wrap}
.msg-row .nl-in{flex:1 1 220px;border-right:1px solid var(--hair)}
.msg-text{width:100%;resize:vertical;border-right:1px solid var(--hair);font-family:inherit;line-height:1.5}
.msg-send{align-items:center}
.msg-send .nl-msg{flex-basis:auto;margin:0}
@media (max-width:760px){.msg{max-width:none}}
