/* Opal-style design clone — faithful layout/type system, original content */
:root{
  --bg:#000;
  --fg:#fff;
  --muted:rgba(255,255,255,.62);
  --accent:#d8c05a;
  --font:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --col:520px;      /* wide content wrapper */
  --letter:440px;   /* narrow letter column on home */
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100dvh}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--fg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  line-height:1.42;
  font-size:15px;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ---------- header / footer wordmark ---------- */
.wordmark{
  font-weight:700;
  line-height:.95;
  letter-spacing:-.01em;
  font-size:15px;
  text-transform:lowercase;
}
.wordmark span{display:block}

.site-head{
  position:fixed;top:0;left:0;right:0;z-index:20;
  padding:22px 26px;
  padding-top:calc(22px + env(safe-area-inset-top));
  mix-blend-mode:difference;
}
.site-foot{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
  padding:26px;
  padding-bottom:calc(26px + env(safe-area-inset-bottom));
}
.foot-left{display:flex;align-items:flex-end;gap:16px}
.foot-left .rights{font-size:12px;color:var(--muted)}
.foot-nav{display:flex;gap:22px;flex-wrap:wrap;font-size:14px}
.foot-nav a{opacity:.85;transition:opacity .25s}
.foot-nav a:hover{opacity:1}

/* ---------- HOME (dark, letter over image) ---------- */
.home{background:#000}
.hero{
  position:relative;
  min-height:100dvh;
  width:100%;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 80% at 18% 8%, #2a2d31 0%, transparent 55%),
    radial-gradient(120% 90% at 88% 30%, #23252a 0%, transparent 55%),
    radial-gradient(140% 120% at 50% 120%, #0a0b0c 0%, #0f1113 40%, #17191c 100%);
}
.hero-bg::after{ /* subtle grain */
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.06'/></svg>");
  mix-blend-mode:overlay;opacity:.5;
}
.hero-bg .glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5}
.hero-bg .g1{width:340px;height:340px;left:-60px;top:20%;background:#3b2d1a}
.hero-bg .g2{width:300px;height:300px;right:-40px;top:8%;background:#1a2b3b}
.hero-bg .g3{width:420px;height:420px;left:30%;bottom:-120px;background:#122a2c}

.letter{
  position:relative;z-index:2;
  max-width:var(--letter);
  margin:0 auto;
  padding:160px 24px 120px;
  text-align:center;
}
.letter h1{
  font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:1;
}
.letter .date{margin-top:12px;font-size:15px;color:var(--fg)}
.letter .body{margin-top:34px;text-align:left}
.letter .body p{margin:0 0 16px}
.letter .frame{
  margin:26px 0;border-radius:14px;overflow:hidden;
  background:linear-gradient(160deg,#1c1e22,#0d0e10);
  border:1px solid rgba(255,255,255,.08);
  aspect-ratio:4/3;display:grid;place-items:center;color:var(--muted);
  font-size:13px;
}
.letter .accent{color:var(--accent)}
.letter a.accent{border-bottom:1px solid var(--accent);padding-bottom:1px}

/* ---------- LIGHT pages (composer / terms / privacy / jobs) ---------- */
.light{background:#fff;color:#000}
.light .site-head{mix-blend-mode:normal;color:#000}
.light .foot-left .rights{color:rgba(0,0,0,.5)}
.light .foot-nav a{color:#000}
.doc{
  max-width:640px;margin:0 auto;
  padding:140px 24px 40px;
}
.doc h1{font-size:40px;font-weight:700;letter-spacing:-.02em;line-height:1.02}
.doc .sub{margin-top:10px;color:rgba(0,0,0,.55);font-size:15px}
.doc h2{font-size:19px;font-weight:700;margin:38px 0 10px;letter-spacing:-.01em}
.doc p{margin:0 0 14px;color:#111}
.doc ul{margin:0 0 16px;padding-left:20px}
.doc li{margin:0 0 7px}
.doc a.link{border-bottom:1px solid #000}

/* download / support cards */
.dl-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  border:1px solid #eee;border-radius:18px;padding:22px;margin:28px 0}
.dl-icon{width:64px;height:64px;border-radius:16px;background:
  linear-gradient(135deg,#ffe34d,#f5c400);display:grid;place-items:center;
  font-weight:800;color:#111;font-size:26px;flex:none}
.dl-meta{flex:1;min-width:180px}
.dl-meta .name{font-weight:700;font-size:17px}
.dl-meta .ver{color:rgba(0,0,0,.55);font-size:13px;margin-top:2px}
.btn{display:inline-block;background:#000;color:#fff;border-radius:999px;
  padding:11px 22px;font-size:14px;font-weight:600;transition:transform .2s,opacity .2s}
.btn:hover{transform:translateY(-1px);opacity:.9}
.btn.ghost{background:#f2f2f2;color:#000}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:22px 0}
.card{border:1px solid #eee;border-radius:16px;padding:18px}
.card h3{font-size:15px;font-weight:700;margin-bottom:6px}
.card p{font-size:13px;color:rgba(0,0,0,.6);margin-bottom:12px}
.rel{border-top:1px solid #eee;padding:20px 0}
.rel .v{font-weight:700;font-size:15px}
.rel .d{color:rgba(0,0,0,.5);font-size:12px;margin:2px 0 10px}
.rel ul{color:#222}

/* jobs list */
.job{display:flex;justify-content:space-between;align-items:center;gap:16px;
  border-top:1px solid #eee;padding:18px 0}
.job:last-child{border-bottom:1px solid #eee}
.job .r{font-size:14px}
.job .role{font-weight:700;font-size:16px}
.job .loc{color:rgba(0,0,0,.55);font-size:13px;margin-top:2px}

/* ---------- animations ---------- */
.fade{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.fade.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .fade{opacity:1;transform:none;transition:none}
  .btn{transition:none}
}

@media (max-width:560px){
  .letter{padding:120px 20px 90px}
  .letter h1{font-size:38px}
  .doc{padding:110px 20px 30px}
  .doc h1{font-size:32px}
  .site-foot{flex-direction:column;align-items:flex-start;gap:16px}
}
