/* ============================================================
   fromel.com — the workshop of the person
   Modern-corporate skin over the house skeleton
   (sticky top banner + bottom footer band, one page per nav item)
   Self-contained: no external fonts, no CDN, no trackers.
   ============================================================ */

/* ---- tokens ---------------------------------------------------- */
:root{
  --bg:#ffffff; --bg-soft:#f4f6f8; --panel:#fbfcfd;
  --ink:#14181d; --ink-soft:#4a525c; --faint:#8a929c;
  --line:#e6eaef; --line-2:#d6dce3;
  --accent:#a97c26;      /* brass — the seal thread to the family */
  --brand:#14181d;       /* the lockup: ink on light, brass on dark */
  --accent-hi:#c39a44;
  --accent-2:#1d5f6b;    /* deep teal — links, labels */
  --on-accent:#ffffff;
  --ok:#1f7a4d; --no:#a5342b;
  --shadow:0 20px 50px rgba(20,24,29,.10);
  --shadow-sm:0 6px 20px rgba(20,24,29,.07);
  --display:"Helvetica Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  /* wordmark: Helvetica Neue, kept 2026-09-12 — John's pick for the lockup. */
  --wordmark:"Helvetica Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --wrap:1120px;
}
:root[data-theme="dark"]{
  --bg:#0d1013; --bg-soft:#12161b; --panel:#161b21;
  --ink:#eef1f4; --ink-soft:#aab2bd; --faint:#6d7681;
  --line:#242a31; --line-2:#313941;
  --accent:#d3a24a; --accent-hi:#e3b665; --accent-2:#5fb0bd;
  --brand:#d3a24a;
  --on-accent:#0d1013;
  --ok:#4bbf85; --no:#e0796d;
  --shadow:0 24px 60px rgba(0,0,0,.5);
  --shadow-sm:0 6px 24px rgba(0,0,0,.4);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0d1013; --bg-soft:#12161b; --panel:#161b21;
    --ink:#eef1f4; --ink-soft:#aab2bd; --faint:#6d7681;
    --line:#242a31; --line-2:#313941;
    --accent:#d3a24a; --accent-hi:#e3b665; --accent-2:#5fb0bd;
  --brand:#d3a24a;
    --on-accent:#0d1013;
    --ok:#4bbf85; --no:#e0796d;
    --shadow:0 24px 60px rgba(0,0,0,.5);
    --shadow-sm:0 6px 24px rgba(0,0,0,.4);
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:18px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  transition:background .25s ease,color .25s ease;
}
h1,h2,h3,h4{font-family:var(--display); font-weight:700; line-height:1.08;
  letter-spacing:-.02em; margin:0; color:var(--ink)}
a{color:var(--accent-2); text-decoration:none}
a:hover{color:var(--accent)}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 28px}
.wrap.narrow{max-width:760px}
.eyebrow,.kicker{font-family:var(--sans); font-size:12px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin:0 0 14px}
.dek{font-size:20px; color:var(--ink-soft); max-width:64ch}
section{padding:74px 0}
section.alt{background:var(--bg-soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.sechead{max-width:64ch}
.sechead h2{font-size:clamp(28px,4.2vw,42px)}
.sechead .dek{margin-top:14px}

/* ---- buttons -------------------------------------------------- */
.btn{display:inline-block; font-family:var(--sans); font-weight:700; font-size:15px;
  letter-spacing:.01em; padding:13px 24px; border-radius:10px; cursor:pointer;
  border:1.5px solid var(--accent); transition:.16s; text-align:center}
.btn.solid{background:var(--accent); color:var(--on-accent)}
.btn.solid:hover{background:var(--accent-hi); border-color:var(--accent-hi); transform:translateY(-1px)}
.btn.ghost{background:transparent; color:var(--ink); border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--accent); color:var(--accent)}
.cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px}

/* ---- top banner ---------------------------------------------- */
.topnav{position:sticky; top:0; z-index:40;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid var(--line)}
.topnav .wrap{display:flex; align-items:center; justify-content:space-between; height:112px; gap:18px}
/* The mark is dry-brush raster art. Used as a mask so the ink recolours with
   the theme instead of being a black PNG that vanishes on the dark ground.
   Aspect is 484:614 — width is height x 0.788. */
.nfmark{
  display:block; flex:none;
  background-color:var(--brand);
  -webkit-mask:url("/assets/brand/neuronic-foundry/logo/mark.png") no-repeat center/contain;
  mask:url("/assets/brand/neuronic-foundry/logo/mark.png") no-repeat center/contain;
}

/* Horizontal lockup: big mark, wordmark stacked to its right in wide caps.
   One colour throughout — ink on light, brass on dark. */
.brandmark{display:flex; align-items:center; gap:20px; text-decoration:none; color:var(--brand)}
.brandmark .nfmark{width:63px; height:80px}
/* Both words justified flush to the same measure. Each line is a flex row of
   letters with space-between, so the glyphs keep their true shapes and only the
   gaps change — NEURONIC (8) tightens, FOUNDRY (7) opens. --wmw sets the measure. */
/* One tracking value on both lines, left aligned. NEURONIC is a letter longer, so
   its C overhangs. Two other routes were tried and dropped 2026-09-12: justifying
   both lines to a common measure (forces FOUNDRY's gaps 46% wider than NEURONIC's
   at equal size) and filling FOUNDRY's short line with a rule (structurally only
   ~16px of leftover at nav size, so the rule read as a hyphen).
   Tracking is emitted per letter, not as letter-spacing, so the last glyph carries
   no trailing space. */
.wordmark{display:flex; flex-direction:column; color:var(--brand)}
.wordmark .wline{
  font-family:var(--wordmark); font-weight:400; font-size:var(--wms);
  line-height:1.34; white-space:nowrap;
}
.wordmark .wline i{font-style:normal}
.brandmark{--wms:22px}
.foot .mark{--wms:13.5px}
@media (max-width:1080px){
  .topnav .wrap{height:96px}
  .brandmark{gap:15px; --wms:17px}
  .brandmark .nfmark{width:47px; height:60px}
  .navlinks a.here::after{bottom:-37px}
}
@media (max-width:820px){
  .topnav .wrap{height:84px}
  .brandmark{--wms:15px}
  .brandmark .nfmark{width:39px; height:50px}
  .navlinks{top:84px!important}
}
.foot .mark .nfmark{width:35px; height:45px}
.navlinks{display:flex; gap:21px; align-items:center; font-family:var(--sans);
  font-size:14.5px; font-weight:600}
.navlinks a{color:var(--ink-soft)}
.navlinks a:hover,.navlinks a.here{color:var(--ink)}
.navlinks a.here{position:relative}
.navlinks a.here::after{content:""; position:absolute; left:0; right:0; bottom:-45px;
  height:2px; background:var(--accent)}
.navtools{display:flex; align-items:center; gap:14px}
.themebtn{width:36px; height:36px; border-radius:9px; border:1px solid var(--line-2);
  background:transparent; color:var(--ink); cursor:pointer; display:grid; place-items:center;
  font-size:16px; line-height:1; transition:.16s}
.themebtn:hover{border-color:var(--accent); color:var(--accent)}
.navtoggle{display:none; width:40px; height:38px; border:1px solid var(--line-2);
  border-radius:9px; background:transparent; cursor:pointer; padding:0}
.navtoggle span{display:block; width:20px; height:2px; background:var(--ink);
  margin:4px auto; border-radius:2px; transition:.2s}

/* ---- hero ----------------------------------------------------- */
.hero{position:relative; overflow:hidden; padding:96px 0 84px; background:var(--bg)}
.hero-bg{position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.9;
  background:
    radial-gradient(60% 55% at 78% 8%, color-mix(in srgb,var(--accent) 22%,transparent), transparent 70%),
    radial-gradient(55% 50% at 8% 92%, color-mix(in srgb,var(--accent-2) 20%,transparent), transparent 72%);}
.hero .wrap{position:relative; z-index:1}
.hero h1{font-size:clamp(40px,7vw,76px); max-width:16ch; letter-spacing:-.03em}
.hero .tagline{font-family:var(--serif); font-style:italic; font-size:clamp(19px,2.6vw,25px);
  color:var(--ink-soft); margin:20px 0 0; max-width:34ch}
.hero .lede{font-size:20px; color:var(--ink-soft); max-width:60ch; margin:22px 0 0}

/* ---- grids / cards ------------------------------------------- */
.grid{display:grid; gap:26px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:28px; transition:.16s}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow-sm); border-color:var(--line-2)}
.card h3{font-size:21px; margin:0 0 8px}
.card p{color:var(--ink-soft); font-size:16.5px; margin:0}
.card .ico{font-size:26px; margin:0 0 14px; display:block}
.pathcard{display:block; color:inherit; background:var(--panel); border:1px solid var(--line);
  border-left:3px solid var(--accent); border-radius:12px; padding:24px 26px; transition:.16s}
.pathcard:hover{transform:translateY(-2px); border-left-color:var(--accent-hi); color:inherit}
.pathcard h3{font-size:20px; margin:0 0 6px}
.pathcard p{color:var(--ink-soft); font-size:16px; margin:0}
.pathcard .go{display:inline-block; margin-top:12px; font-size:12.5px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--accent)}

/* ---- page head ------------------------------------------------ */
.pagehead{padding:72px 0 34px; background:var(--bg)}
.pagehead h1{font-size:clamp(34px,5.5vw,58px)}
.pagehead .dek{margin-top:16px; font-family:var(--serif); font-size:21px}

/* ---- the Standard (articles) --------------------------------- */
.articles{border-top:1px solid var(--line-2); margin-top:8px}
.article{display:grid; grid-template-columns:64px 1fr; gap:20px; padding:26px 0;
  border-bottom:1px solid var(--line)}
.article .anum{font-family:var(--display); font-weight:700; font-size:26px; color:var(--accent)}
.article h3{font-size:22px; margin:0 0 6px}
.article p{margin:0; color:var(--ink-soft); font-size:17px}
.article .no{color:var(--no); font-weight:600}
.callout{background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:26px 28px; margin-top:34px}
.callout h3{font-size:19px; margin:0 0 8px}
.callout p{margin:0 0 .6em; color:var(--ink-soft); font-size:16.5px}
.callout p:last-child{margin:0}
.brightlines{background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--no);
  border-radius:14px; padding:26px 28px; margin-top:34px}
.brightlines h3{font-size:19px; margin:0 0 10px}
.brightlines p{color:var(--ink-soft); font-size:16.5px; margin:0 0 12px}
.brightlines ul{margin:0 0 12px; padding-left:22px}
.brightlines li{color:var(--ink-soft); font-size:16.5px; margin:0 0 6px}
.brightlines .fine{margin:0; color:var(--faint); font-size:14.5px}

/* ---- fit screener (toy) -------------------------------------- */
.screener{background:var(--panel); border:1px solid var(--line); border-radius:16px;
  padding:30px; box-shadow:var(--shadow-sm)}
.q{padding:18px 0; border-bottom:1px solid var(--line)}
.q:last-of-type{border-bottom:0}
.q p{font-weight:600; font-size:17.5px; margin:0 0 12px; color:var(--ink)}
.opts{display:flex; gap:10px; flex-wrap:wrap}
.opt{font-family:var(--sans); font-weight:600; font-size:14px; padding:9px 18px;
  border:1.5px solid var(--line-2); border-radius:999px; background:transparent;
  color:var(--ink); cursor:pointer; transition:.14s}
.opt:hover{border-color:var(--accent)}
.opt.sel-yes{background:var(--ok); border-color:var(--ok); color:#fff}
.opt.sel-no{background:var(--no); border-color:var(--no); color:#fff}
.verdict{margin-top:26px; padding:24px; border-radius:14px; border:1px solid var(--line-2);
  background:var(--bg-soft); display:none}
.verdict.show{display:block}
.verdict h3{font-size:22px; margin:0 0 8px}
.verdict.pass h3{color:var(--ok)} .verdict.fail h3{color:var(--no)} .verdict.mixed h3{color:var(--accent)}
.verdict p{margin:0 0 .6em; color:var(--ink-soft); font-size:16.5px}
.progress{height:6px; border-radius:6px; background:var(--line); overflow:hidden; margin-bottom:22px}
.progress i{display:block; height:100%; width:0; background:var(--accent); transition:width .3s ease}

/* ---- constellation list -------------------------------------- */
.constel{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:8px}
.wnode{display:block; color:inherit; background:var(--panel); border:1px solid var(--line);
  border-radius:14px; padding:24px 26px; transition:.16s}
.wnode:hover{transform:translateY(-2px); box-shadow:var(--shadow-sm); color:inherit}
.wnode h3{font-size:20px; margin:0 0 4px}
.wnode .glyph{font-family:var(--serif); font-style:italic; color:var(--accent); font-size:15px}
.wnode p{color:var(--ink-soft); font-size:16px; margin:8px 0 0}

/* ---- footer band --------------------------------------------- */
.foot{background:var(--bg-soft); border-top:1px solid var(--line); padding:52px 0 40px; margin-top:20px}
.foot .cols{display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:start}
.foot .disc{font-size:14.5px; color:var(--faint); max-width:56ch; line-height:1.6}
.foot .disc b{color:var(--ink-soft)}
.foot .lineage{font-size:14.5px; color:var(--ink-soft)}
.foot .mark{display:flex; align-items:center; gap:14px; margin-bottom:18px}
.foot .mmxxvi{font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); margin-top:16px}
.foot .footnav{display:flex; gap:18px; flex-wrap:wrap; font-size:14px; margin-top:10px}
.foot .footnav a{color:var(--ink-soft)}

/* ---- responsive ---------------------------------------------- */
@media (max-width:860px){
  .navlinks{position:absolute; top:112px; left:0; right:0; flex-direction:column; gap:0;
    background:var(--bg); border-bottom:1px solid var(--line); box-shadow:var(--shadow);
    display:none; padding:6px 0}
  .topnav.open .navlinks{display:flex}
  .navlinks a{padding:13px 28px; width:100%}
  .navlinks a.here::after{display:none}
  .navtoggle{display:block}
  .g3,.g2,.constel,.foot .cols{grid-template-columns:1fr}
  section{padding:56px 0}
}
