:root{
  /* default = Harbor (cool slate, steel-blue accent) */
  --paper:#eef2f6; --paper-rgb:238,242,246; --card:#ffffff;
  --ink:#1a2330; --muted:#5a6573; --line:#d0d7e0;
  --accent:#2b5f8a; --accent-ink:#1a4263; --accent-soft:#d8e4ef;
  --stage:#151c26;
  --lead:#2a3440; --ink-soft:#2e3846; --nav-hover:#e1e7ee; --well:#e3e9f0; --sheet:var(--card); --print-bg:#fff;
  --ink-rgb:26,35,48; --shadow-rgb:18,30,48;
  --tag-dev-bg:#e6e9ee; --tag-dev-ink:#4a5566;
  --stage-ink:#e8eef5; --stage-muted:#c9d5e2; --stage-hi:#8fb4d4; --stage-deep:#0c1119;
  --stage-cap-rgb:10,14,20; --lightbox-rgb:8,11,16;
  --mv-hi:#fbfcfd; --mv-lo:#d8e0ea;
  --radius:14px;
  --sans:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--accent-ink)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.container{max-width:72rem;margin:0 auto;padding:0 1.5rem}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(var(--paper-rgb),.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-top:3px solid var(--accent);border-bottom:1px solid var(--line)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:4rem}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.02rem;color:var(--ink);text-decoration:none;letter-spacing:-.015em;white-space:nowrap;flex-shrink:0}
.brand .dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}
.nav a{display:block;padding:.45rem .8rem;border-radius:999px;color:var(--muted);text-decoration:none;font-weight:500;font-size:.95rem}
.nav a:hover{color:var(--accent-ink);background:var(--accent-soft)}
.nav a[aria-current=page]{color:#fff;background:var(--accent)}
.nav a[aria-current=page]:hover{color:#fff;background:var(--accent-ink)}
.header-mail{font-size:.9rem;font-weight:600;color:var(--accent-ink);text-decoration:none;border:1px solid var(--accent);padding:.4rem .85rem;border-radius:999px;background:var(--card)}
.header-mail:hover{background:var(--accent);border-color:var(--accent);color:#fff}

.kicker{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 .6rem;font-weight:500}
h1,h2,h3{letter-spacing:-.02em;line-height:1.1;margin:0}
.btn{display:inline-flex;align-items:center;gap:.45rem;padding:.7rem 1.1rem;border-radius:999px;font-weight:600;font-size:.95rem;text-decoration:none;border:1px solid var(--ink);color:var(--ink);background:transparent;transition:.15s}
.btn:hover{background:var(--ink);color:#fff}
.btn.primary{background:var(--ink);color:#fff}
.btn.primary:hover{background:var(--accent);border-color:var(--accent)}
.arrow::after{content:"→";transition:transform .15s}
a:hover .arrow::after,.arrow:hover::after{transform:translateX(3px)}

/* hero (map pinned to hero only) */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(var(--paper-rgb),.97) 0%,rgba(var(--paper-rgb),.88) 45%,rgba(var(--paper-rgb),.4) 100%),
  url("map-bg.jpg") center 30%/cover no-repeat;z-index:0}
.hero .container{position:relative;z-index:1;display:grid;grid-template-columns:1.35fr 1fr;gap:3rem;align-items:center;padding-top:4.5rem;padding-bottom:4.5rem}
.hero h1{font-size:clamp(3rem,7vw,5.4rem);font-weight:800;letter-spacing:-.045em;margin-bottom:1.4rem}
.hero h1.wordmark{margin-bottom:1.15rem;line-height:0}
.hero h1.wordmark img{width:min(100%,40rem);height:auto;display:block}
.hero .lead{font-size:1.2rem;line-height:1.6;max-width:36rem;margin:0;color:var(--lead)}
.hero .actions{display:flex;flex-wrap:wrap;gap:.6rem}
.portrait-wrap{position:relative;justify-self:end;width:100%;max-width:23rem}
.portrait-wrap img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center 20%;border-radius:22px;box-shadow:0 30px 60px -30px rgba(var(--shadow-rgb),.45)}
.portrait-wrap::before{content:"";position:absolute;inset:auto -14px -14px auto;width:70%;height:70%;border-radius:22px;background:var(--accent-soft);z-index:-1}
.map-credit{position:absolute;right:.8rem;bottom:.5rem;z-index:1;font-size:.7rem;color:var(--muted)}

/* sections */
.section{padding:4.5rem 0;border-bottom:1px solid var(--line)}
.section:last-of-type{border-bottom:0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2rem}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:750}
.split{display:grid;grid-template-columns:16rem 1fr;gap:3rem}
.split .label h2{font-size:1.9rem;font-weight:750}
.prose p{margin:0 0 1rem;max-width:44rem}
.prose p:last-child{margin-bottom:0}
.more{margin-top:1.3rem;font-weight:600;text-decoration:none;display:inline-flex;gap:.4rem}

.credits{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;padding:0;list-style:none}
.credits li{font-size:.85rem;font-weight:500;padding:.35rem .75rem;border-radius:999px;background:var(--card);border:1px solid var(--line)}

/* tool cards */
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
.tool{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s}
a.tool:hover{transform:translateY(-3px);box-shadow:0 18px 36px -24px rgba(var(--shadow-rgb),.5);color:var(--ink)}
.tool img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top center;border-bottom:1px solid var(--line);flex-shrink:0}
.tool .meta{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;font-weight:700}
.tag{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .5rem;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink)}
.tag.dev{background:var(--tag-dev-bg);color:var(--tag-dev-ink)}

/* guitar teaser */
.guitar-band{background:var(--stage);color:var(--stage-ink);border-bottom:0}
.guitar-band .kicker{color:var(--stage-hi)}
.guitar-band h2{color:#fff}
.guitar-band .lede{font-size:1.35rem;max-width:40rem;margin:0}
.guitar-band .lede a{color:#fff;text-decoration-color:var(--stage-hi)}
.strip{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem;margin-top:2.2rem}
.strip a{display:block;border-radius:12px;overflow:hidden;aspect-ratio:3/4;position:relative}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.strip a:hover img{transform:scale(1.05)}
.strip span{position:absolute;left:.6rem;bottom:.5rem;font-size:.8rem;font-weight:600;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.btn.light{border-color:var(--stage-ink);color:var(--stage-ink)}
.btn.light:hover{background:var(--stage-ink);color:var(--stage)}

/* footer */
.site-footer{padding:3rem 0 2.5rem;border-top:1px solid var(--line);background:var(--paper)}
.site-footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}
.site-footer .big{font-size:clamp(1.4rem,3vw,2rem);font-weight:750;color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.site-footer .big:hover{color:var(--accent)}
.site-footer small{color:var(--muted);font-size:.75rem}
.foot-nav{display:flex;gap:1.1rem;font-size:.9rem}
.foot-nav a{color:var(--muted);text-decoration:none}
.foot-nav a:hover{color:var(--accent)}

/* page header for inner pages */
.page-head{padding:3.5rem 0 2rem}
.page-head h1{font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;letter-spacing:-.04em}
.page-head h1::after,.section-head h2::after,.split .label h2::after{content:"";display:block;width:2.75rem;height:3px;margin-top:.7rem;background:var(--accent);border-radius:2px}
.page-head p{color:var(--muted);max-width:40rem;margin:.8rem 0 0;font-size:1.1rem}

/* projects */
.projects{display:grid;gap:1.6rem;padding-bottom:4rem}
.project{display:grid;grid-template-columns:1.2fr 1fr;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.project .shot{background:var(--well);padding:1.4rem;display:flex;align-items:center}
.project .shot img{height:auto;border-radius:10px;border:1px solid var(--line);box-shadow:0 14px 30px -20px rgba(var(--shadow-rgb),.5);width:100%}
.project .shot.loop{position:relative;aspect-ratio:16/10;padding:0;overflow:hidden;background:var(--stage-deep)}
.project .shot.loop .loop-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;border:0;border-radius:0;box-shadow:none;opacity:0;transition:opacity .8s ease}
.project .shot.loop .loop-frame.is-on{opacity:1}
.project .shot.loop img:not(.loop-frame){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;border:0;border-radius:0;box-shadow:none}
@media (prefers-reduced-motion:reduce){
  .project .shot.loop .loop-frame{transition:none}
}
.project .body{padding:2.2rem;display:flex;flex-direction:column;justify-content:center;gap:.9rem}
.project .num{font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.project h2{font-size:2.2rem;font-weight:800}
.project p{margin:0;font-size:1.1rem}
.project .actions{margin-top:.4rem}

/* resume */
.resume-wrap{padding:2.5rem 0 4.5rem}
.sheet{max-width:52rem;margin:0 auto;background:var(--sheet);border:1px solid var(--line);border-radius:6px;box-shadow:0 30px 60px -40px rgba(var(--shadow-rgb),.45);padding:3.2rem 3.6rem;font-size:.98rem;line-height:1.5}
.cv-head{text-align:center;padding-bottom:1.3rem;border-bottom:2px solid var(--accent)}
.cv-head h1{font-size:2.3rem;font-weight:800;letter-spacing:-.02em}
.cv-head .cv-title{margin:.35rem 0 .2rem;font-size:1.1rem;font-weight:600;color:var(--accent-ink)}
.cv-head .cv-contact{margin:0;font-size:.95rem}
.cv-section{margin-top:1.7rem}
.cv-section > h2{font-size:.85rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding-bottom:.35rem;border-bottom:2px solid var(--accent-soft);margin-bottom:.9rem;color:var(--accent)}
.cv-section > p{margin:0}
.cv-job{margin:0 0 1.15rem;break-inside:avoid}
.cv-job:last-child{margin-bottom:0}
.cv-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.cv-row h3{font-size:1.02rem;font-weight:700;letter-spacing:-.005em;line-height:1.35}
.cv-row .where{font-weight:400;color:var(--muted)}
.cv-dates{font-size:.9rem;white-space:nowrap;color:var(--ink);font-variant-numeric:tabular-nums}
.cv-role{margin:.05rem 0 .3rem;font-style:italic;color:var(--ink-soft)}
.cv-job ul{margin:.2rem 0 0;padding-left:1.15rem}
.cv-job li{margin:.12rem 0}

/* guitars */
.g-hero{background:var(--stage);color:var(--stage-ink);overflow:hidden}
.g-hero .container{display:grid;grid-template-columns:1fr 1.15fr;gap:3rem;align-items:center;padding-top:4rem;padding-bottom:4rem}
.g-hero .kicker{color:var(--stage-hi)}
.g-hero h1{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800;letter-spacing:-.045em;color:#fff}
.g-hero h1::after{content:"";display:block;width:2.75rem;height:3px;margin-top:.8rem;background:var(--stage-hi);border-radius:2px}
.g-hero .intro{font-size:1.3rem;margin:1.2rem 0 0;max-width:30rem;color:var(--stage-muted)}
.feature{position:relative;display:grid;grid-template-columns:1fr 5.2rem;gap:.65rem;height:36rem}
.feature-main{border-radius:18px;overflow:hidden;position:relative;background:var(--stage-deep)}
.feature-main img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.feature-main .cap{position:absolute;left:1rem;bottom:1rem;background:rgba(var(--stage-cap-rgb),.6);backdrop-filter:blur(6px);padding:.4rem .8rem;border-radius:999px;font-weight:600;font-size:.9rem;color:#fff}
.feature-thumbs{display:flex;flex-direction:column;gap:.8rem}
.thumb{padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;cursor:pointer;background:none;flex:1;min-height:0;opacity:.6;transition:.15s}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb[aria-pressed=true],.thumb:hover{opacity:1;border-color:var(--stage-hi)}

.build-index{position:sticky;top:4rem;z-index:10;background:rgba(var(--paper-rgb),.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.build-index ul{list-style:none;margin:0;padding:.7rem 0;display:flex;gap:.45rem;overflow-x:auto;scrollbar-width:none}
.build-index a{display:block;white-space:nowrap;font-size:.85rem;font-weight:600;padding:.35rem .8rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none}
.build-index a:hover{border-color:var(--accent);color:var(--accent-ink)}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;padding:2.5rem 0 4rem}
.build{margin:0;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;scroll-margin-top:8rem}
.build .main{position:relative;cursor:zoom-in;background:var(--well)}
.build .main img{width:100%;height:auto;transition:opacity .2s}
.gallery .build .main img{aspect-ratio:3/4;object-fit:cover;object-position:center 18%}
.build .bar{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;padding:.75rem .9rem}
.build h2{font-size:1.15rem;font-weight:750}
.build .count{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.build .thumbs{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end;max-width:11.5rem}
.build .thumbs .thumb{width:2.05rem;height:2.05rem;flex:none;border-radius:8px;opacity:.55;border-color:transparent}
.build .thumbs .thumb[aria-pressed=true],.build .thumbs .thumb:hover{opacity:1;border-color:var(--accent)}

dialog.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh}
dialog.lightbox::backdrop{background:rgba(var(--lightbox-rgb),.92)}
.lb-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.8rem;padding:2rem}
.lb-inner img{max-width:min(92vw,1400px);max-height:82vh;width:auto;height:auto;border-radius:10px}
.lb-cap{color:#fff;font-weight:600}
.lb-btn{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);color:#fff;border:0;width:3rem;height:3rem;border-radius:50%;font-size:1.4rem;cursor:pointer}
.lb-btn:hover{background:rgba(255,255,255,.25)}
.lb-prev{left:1rem}.lb-next{right:1rem}
.lb-close{position:fixed;top:1rem;right:1rem;transform:none}

@media (max-width:900px){
  .hero .container,.g-hero .container{grid-template-columns:1fr;gap:2rem}
  .portrait-wrap{justify-self:start;max-width:15rem;order:-1}
  .split{grid-template-columns:1fr;gap:1rem}
  .tool-grid{grid-template-columns:1fr}
  .strip{grid-template-columns:repeat(3,1fr)}
  .strip a:nth-child(n+4){display:none}
  .project{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .feature{height:28rem}
}
@media (max-width:640px){
  body{font-size:1rem}
  .brand{font-size:.92rem}
  .site-header .container{height:auto;flex-wrap:wrap;padding-top:.7rem;padding-bottom:.6rem;gap:.4rem}
  .header-mail{display:none}
  .nav{width:100%;margin-left:-.8rem}
  .nav a{padding:.4rem .75rem;font-size:.92rem}
  .hero .container{padding-top:2.5rem;padding-bottom:3rem}
  .g-hero .container{padding-top:2rem;padding-bottom:2rem;gap:1.4rem}
  .section{padding:3rem 0}
  .sheet{padding:1.6rem 1.2rem;border-radius:0;border-left:0;border-right:0}
  .resume-wrap .container{padding:0}
  .cv-row{flex-direction:column;gap:0}
  .cv-dates{color:var(--muted)}
  .gallery{grid-template-columns:1fr}
  .feature{grid-template-columns:1fr;grid-template-rows:1fr 4.6rem;height:24.5rem}
  .build .thumbs{max-width:none}
  .feature-thumbs{flex-direction:row}
  .build-index{top:5.6rem}
  .project .body{padding:1.5rem}
  .site-footer .container{flex-direction:column;align-items:flex-start}
}
@media print{
  .site-header,.site-footer{display:none}
  body{background:var(--print-bg)}
  .sheet{box-shadow:none;border:0;padding:0;max-width:none}
}
.feature .thumbs .thumb{width:auto;height:auto;flex:1;border-radius:12px;opacity:.6;border-color:transparent}
.feature .thumbs .thumb[aria-pressed=true],.feature .thumbs .thumb:hover{opacity:1;border-color:var(--stage-hi)}
.section-head{flex-wrap:wrap}
.strip a::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.strip span{z-index:1}

/* 3D spin viewers (Toxic Toad, Kelly, Twinscaster) */
.build .main,.feature-main{position:relative}
.spin3d{position:absolute;top:.8rem;right:.8rem;z-index:3;display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .8rem .42rem .62rem;border:1px solid rgba(var(--ink-rgb),.12);border-radius:999px;background:rgba(var(--paper-rgb),.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--ink);font:600 .82rem/1 var(--sans);cursor:pointer;box-shadow:0 6px 18px -10px rgba(var(--shadow-rgb),.55);transition:.15s}
.spin3d svg{width:1.05rem;height:1.05rem;color:var(--accent)}
.spin3d:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.spin3d:hover svg{color:var(--stage-hi)}
.spin3d[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.spin3d[aria-pressed=true] svg{color:var(--stage-hi)}
.main .mv{position:absolute;inset:0;width:100%;height:100%;display:none;cursor:grab;--poster-color:transparent;
  background:radial-gradient(120% 90% at 50% 38%,var(--mv-hi) 0%,var(--paper) 45%,var(--mv-lo) 100%)}
.main .mv:active{cursor:grabbing}
.main.is-3d .mv{display:block}
.main.is-3d > img{visibility:hidden}
.main.is-3d{cursor:default}
.main.is-3d .cap{z-index:2}
.mv-progress{position:absolute;left:18%;right:18%;top:50%;height:3px;border-radius:3px;background:rgba(var(--ink-rgb),.12);overflow:hidden;transition:opacity .3s}
.mv-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}
.mv.loaded .mv-progress{opacity:0}
.mv-ar{position:absolute;left:50%;bottom:2.4rem;transform:translateX(-50%);padding:.5rem .95rem;border:0;border-radius:999px;background:var(--accent);color:#fff;font:600 .85rem/1 var(--sans);cursor:pointer;box-shadow:0 8px 20px -10px rgba(var(--shadow-rgb),.6)}
.mv-ar:hover{background:var(--accent-ink)}
.mv-hint{display:none;position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:.5rem .8rem;font:500 .7rem/1.35 var(--mono);letter-spacing:.02em;color:var(--muted);text-align:center;pointer-events:none}
.main.is-3d .mv-hint{display:block}
.feature-main.is-3d .mv-hint{top:0;bottom:auto;padding:1.15rem 11rem 0 1.1rem;text-align:left}
@media (max-width:640px){
  .spin3d{top:.6rem;right:.6rem;font-size:.78rem}
  .feature-main.is-3d .mv-hint{padding:.95rem 11.6rem 0 .9rem}
}
.mv-hint{transition:opacity .5s}
.mv-hint.gone{opacity:0}

/* ===== Color schemes (opt-in via html[data-theme]; no attribute = default Harbor) ===== */
/* grove = the original green/paper look, kept so it can be restored */
html[data-theme="grove"]{
  --paper:#f3f6f4; --paper-rgb:243,246,244; --card:#ffffff;
  --ink:#16201c; --muted:#56635d; --line:#d5ddd8;
  --accent:#1d6b5a; --accent-ink:#0f4a3d; --accent-soft:#dcebe5;
  --stage:#121a17;
  --lead:#26312c; --ink-soft:#2c3833; --nav-hover:#e6ece9; --well:#e8eeeb; --sheet:var(--card); --print-bg:#fff;
  --ink-rgb:22,32,28; --shadow-rgb:16,32,26;
  --tag-dev-bg:#eceae2; --tag-dev-ink:#6a5d35;
  --stage-ink:#e9f0ec; --stage-muted:#cfdcd6; --stage-hi:#8fd1bb; --stage-deep:#0b100e;
  --stage-cap-rgb:10,14,12; --lightbox-rgb:8,12,10;
  --mv-hi:#fbfcfb; --mv-lo:#dde5e0;
}
html[data-theme="harbor"]{
  --paper:#eef2f6; --paper-rgb:238,242,246; --card:#ffffff;
  --ink:#1a2330; --muted:#5a6573; --line:#d0d7e0;
  --accent:#2b5f8a; --accent-ink:#1a4263; --accent-soft:#d8e4ef;
  --stage:#151c26;
  --lead:#2a3440; --ink-soft:#2e3846; --nav-hover:#e1e7ee; --well:#e3e9f0;
  --ink-rgb:26,35,48; --shadow-rgb:18,30,48;
  --tag-dev-bg:#e6e9ee; --tag-dev-ink:#4a5566;
  --stage-ink:#e8eef5; --stage-muted:#c9d5e2; --stage-hi:#8fb4d4; --stage-deep:#0c1119;
  --stage-cap-rgb:10,14,20; --lightbox-rgb:8,11,16;
  --mv-hi:#fbfcfd; --mv-lo:#d8e0ea;
}
html[data-theme="brass"]{
  --paper:#f3f3f0; --paper-rgb:243,243,240; --card:#ffffff;
  --ink:#241c16; --muted:#6a5e54; --line:#ddd6ce;
  --accent:#9a6a34; --accent-ink:#6e4a22; --accent-soft:#efe4d4;
  --stage:#1a1512;
  --lead:#322820; --ink-soft:#3a2f26; --nav-hover:#e8e6e2; --well:#eae8e4;
  --ink-rgb:36,28,22; --shadow-rgb:36,24,14;
  --tag-dev-bg:#e8e5e0; --tag-dev-ink:#5e5348;
  --stage-ink:#f1ebe4; --stage-muted:#d9cfc3; --stage-hi:#d4b07a; --stage-deep:#0f0c0a;
  --stage-cap-rgb:14,11,9; --lightbox-rgb:12,10,8;
  --mv-hi:#fcfcfb; --mv-lo:#e0ddd8;
}
html[data-theme="signal"]{
  --paper:#f4f4f4; --paper-rgb:244,244,244; --card:#ffffff;
  --ink:#1b1b1b; --muted:#5c5c5c; --line:#d6d6d6;
  --accent:#b4452b; --accent-ink:#8a301c; --accent-soft:#f3e3de;
  --stage:#161616;
  --lead:#2a2a2a; --ink-soft:#333333; --nav-hover:#e7e7e7; --well:#e9e9e9;
  --ink-rgb:27,27,27; --shadow-rgb:20,20,20;
  --tag-dev-bg:#e8e8e8; --tag-dev-ink:#4a4a4a;
  --stage-ink:#ededed; --stage-muted:#d0d0d0; --stage-hi:#e8b8ae; --stage-deep:#0b0b0b;
  --stage-cap-rgb:10,10,10; --lightbox-rgb:8,8,8;
  --mv-hi:#fcfcfc; --mv-lo:#e0e0e0;
}
