/* Alchemy Studios — obsidian finish: The Realm's pearl finish in reverse.
   Black lacquer panels with a soft top sheen, a slowly weaving graphite fiber backdrop and tiny pulsing lights.
   Scoped to html.obsidian, so the current look is untouched until it is switched on (?finish=obsidian). */
html.obsidian{
  --panel:#050507;--panel2:#0c0c10;--hair:rgba(255,255,255,.075);
  --mist:#9d9ab0;--lamp:#7fd3ff;--lamp2:#8b6cff;
  --obs-paint:linear-gradient(172deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,0) 26%),radial-gradient(120% 80% at 30% 0%,#0f0f14 0%,#060608 42%,#020203 100%);
  --obs-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -18px 40px rgba(0,0,0,.65),inset 0 0 0 1px rgba(255,255,255,.04),0 40px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(0,0,0,.6);
  background:#000;color-scheme:dark}
html.obsidian body{background:#000}
html.obsidian #bokeh{opacity:.3;filter:saturate(.8) brightness(.55)}
html.obsidian #obs-motes{position:fixed;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;mix-blend-mode:screen}
html.obsidian #obs-fiber{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}

/* the sheet: a black-pearl capsule */
html.obsidian .sheet{background:var(--obs-paint);box-shadow:var(--obs-shadow);border-radius:28px 64px 28px 64px/28px 44px 28px 44px}
html.obsidian section{border-top-color:var(--hair)}
html.obsidian section:nth-of-type(even){background:linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,0) 40%)}

/* headings pick up a faint metal sheen */
html.obsidian h2{background:linear-gradient(180deg,#ffffff 0%,#d9d6e6 55%,#9d9ab0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* raised pieces: lacquer plates instead of indigo */
html.obsidian .grid figure,html.obsidian figure.hf{background:linear-gradient(160deg,#0e0e13,#030304)}
html.obsidian .grid figure::before,html.obsidian figure.hf::before{opacity:.55}
html.obsidian .hud .edge{stroke:rgba(200,220,255,.55);filter:drop-shadow(0 0 3px rgba(127,211,255,.55)) drop-shadow(0 0 7px rgba(139,108,255,.35))}
html.obsidian .grid figcaption{background:linear-gradient(transparent,rgba(5,5,8,.97))}
html.obsidian .filters button{border-color:rgba(255,255,255,.12);background:linear-gradient(180deg,#191820,#0b0b10);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
html.obsidian .filters button[aria-pressed="true"]{color:#0b0b10;background:linear-gradient(180deg,#ffffff,#cfd3dc);box-shadow:0 0 14px rgba(127,211,255,.25)}
html.obsidian .brand{border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 20px 40px -20px rgba(0,0,0,.9)}
html.obsidian .brand.dark{background:var(--obs-paint)}
html.obsidian .lab-banner{border-color:rgba(255,255,255,.08)}
html.obsidian footer{background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.02))}

/* the lights */
html.obsidian .led{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--lamp);box-shadow:0 0 6px var(--lamp),0 0 14px rgba(127,211,255,.7);animation:obsLed 3.2s ease-in-out infinite;pointer-events:none;z-index:5}
html.obsidian .led.lv{background:var(--lamp2);box-shadow:0 0 6px var(--lamp2),0 0 14px rgba(139,108,255,.7)}
html.obsidian .sheet>.led0{top:22px;right:34px}
html.obsidian .sheet>.led1{top:22px;right:48px;animation-delay:-1.1s}
html.obsidian .sheet>.led2{bottom:20px;left:30px;animation-delay:-2.2s}
html.obsidian section>.in{position:relative}
html.obsidian section h2{position:relative}
html.obsidian section h2::after{content:"";position:absolute;left:0;bottom:-14px;width:min(140px,30%);height:2px;border-radius:2px;background:linear-gradient(90deg,var(--lamp),#e8fbff 50%,transparent);box-shadow:0 0 10px var(--lamp);opacity:.75;animation:obsBar 5s ease-in-out infinite}
html.obsidian .contact h2::after{display:none}
@keyframes obsLed{0%,100%{opacity:.25;box-shadow:0 0 3px currentColor}45%{opacity:1}}
@keyframes obsBar{0%,100%{opacity:.35}50%{opacity:.85}}
@media (prefers-reduced-motion:reduce){html.obsidian .led,html.obsidian section h2::after{animation:none}}
