/* ============================= RESET & TOKENS ============================= */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
:root{
  --radius-sm:4px; --radius-md:10px; --radius-lg:20px;
  --ease:cubic-bezier(.22,1,.36,1);
  --maxw:1180px;
}
body[data-theme="engineer"]{
  --bg:#080B12; --bg-2:#0D121C;
  --surface:#111826; --surface-2:#161F30;
  --border:rgba(148,168,204,0.14); --border-strong:rgba(148,168,204,0.28);
  --text:#E8EDF7; --text-dim:#8B96AE; --text-faint:#5B6478;
  --accent:#57E6C9; --accent-soft:rgba(87,230,201,0.12);
  --accent-2:#FFB454; --accent-2-soft:rgba(255,180,84,0.12);
  --font-display:'Space Grotesk',sans-serif; --font-body:'Inter',sans-serif; --font-mono:'JetBrains Mono',monospace;
  --tracking-tag:.12em;
}
body[data-theme="artist"]{
  --bg:#150A20; --bg-2:#1B0E29;
  --surface:#23132F; --surface-2:#2C1A3C;
  --border:rgba(232,185,77,0.18); --border-strong:rgba(232,185,77,0.35);
  --text:#F4EADC; --text-dim:#C3AAD6; --text-faint:#8A6FA0;
  --accent:#E8B94D; --accent-soft:rgba(232,185,77,0.14);
  --accent-2:#C1443C; --accent-2-soft:rgba(193,68,60,0.16);
  --font-display:'Playfair Display',serif; --font-body:'Cormorant Garamond',serif; --font-mono:'Cormorant Garamond',serif;
  --tracking-tag:.08em;
}
body{
  background:var(--bg); color:var(--text); font-family:var(--font-body);
  font-size:17px; line-height:1.6; overflow-x:hidden; position:relative;
}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
img{max-width:100%;display:block;}
section{position:relative; z-index:2;}
::selection{background:var(--accent); color:#0A0A0A;}
main{position:relative; z-index:1;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,5vw,56px);}

/* Background atmospheres */
.bg-engineer, .bg-artist{position:fixed; inset:0; z-index:0; pointer-events:none;}
body[data-theme="engineer"] .bg-engineer{
  background-image:
    linear-gradient(rgba(87,230,201,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(87,230,201,0.05) 1px, transparent 1px);
  background-size:42px 42px; background-position:center top;
}
body[data-theme="engineer"] .bg-engineer::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 0%, rgba(87,230,201,0.08), transparent 70%);}
body[data-theme="artist"] .bg-artist{
  background:
    radial-gradient(ellipse 70% 45% at 50% -5%, rgba(232,185,77,0.10), transparent 60%),
    radial-gradient(ellipse 50% 30% at 85% 30%, rgba(193,68,60,0.10), transparent 60%);
}
body[data-theme="artist"] .bg-artist::before{content:"";position:absolute;inset:0;opacity:.5;
  background-image: repeating-linear-gradient(90deg, rgba(0,0,0,0.35) 0 2px, transparent 2px 68px);
}

/* Section headings */
.eyebrow{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--accent);}
h2.section-title{font-family:var(--font-display); font-size:clamp(1.9rem,4vw,2.7rem); font-weight:700; margin-bottom:14px; letter-spacing:-.01em;}
body[data-theme="artist"] h2.section-title{font-style:italic; font-weight:900;}
.section-intro{color:var(--text-dim); max-width:600px; margin-bottom:40px; font-size:1.02rem;}
.playbill-rule{display:flex; align-items:center; gap:14px; margin:6px 0 34px; color:var(--text-faint); font-family:'Cinzel Decorative',var(--font-display); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;}
.playbill-rule::before, .playbill-rule::after{content:"";flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--border-strong), transparent);}
body[data-theme="engineer"] .playbill-rule{display:none;}

.btn{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; padding:14px 26px;
  border-radius:var(--radius-sm); border:1px solid var(--accent); color:var(--accent); display:inline-flex; align-items:center; gap:10px;
  transition:all .3s var(--ease); cursor:pointer; background:transparent;
}
.btn.solid{background:var(--accent); color:#0A0A0A; border-color:var(--accent); font-weight:600;}
.btn:hover{transform:translateY(-2px); box-shadow:0 10px 30px -12px var(--accent);}
body[data-theme="artist"] .btn{font-family:var(--font-display); font-style:italic; text-transform:none; letter-spacing:.02em; border-radius:2px; font-size:.95rem;}

.tag-row{display:flex; flex-wrap:wrap; gap:8px;}
.tag{
  font-family:var(--font-mono); font-size:.72rem; padding:7px 12px; border-radius:100px; border:1px solid var(--border-strong);
  color:var(--text-dim); display:inline-flex; align-items:center; gap:6px;
}
body[data-theme="artist"] .tag{font-family:var(--font-display); font-style:italic; font-size:.85rem;}

.reveal{opacity:0; transform:translateY(28px);}

@media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }
