:root{
  --paper:#FAF7F0; --paper-edge:#F2EDE3; --header:#F4EFE5; --ink:#1B1916; --muted:#6E665A;
  --faint:#CFC6B6; --line:#E4DDD0; --accent:#1D6E56; --accent-deep:#0F4537; --accent-wash:#E7F1EC;
  --scale:1;
}
html[data-theme="dark"]{
  --paper:#14130F; --paper-edge:#1C1A15; --header:#1A1813; --ink:#F0EBE0; --muted:#9A9384;
  --faint:#4A463C; --line:#2A2720; --accent:#4FB894; --accent-deep:#6FCBAA; --accent-wash:#17241F;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--paper); color:var(--ink);
  font-family:'Spectral','Newsreader',Georgia,'Times New Roman',serif;
  -webkit-font-smoothing:antialiased; min-height:100vh;
  display:flex; flex-direction:column; position:relative; overflow-x:hidden;
}
.locus-graticule{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);
  background-size:96px 96px; background-position:center; opacity:0;
  animation:locus-grat 1.6s ease forwards .15s;
  -webkit-mask-image:radial-gradient(ellipse 85% 75% at 50% 42%,#000 0%,transparent 80%);
          mask-image:radial-gradient(ellipse 85% 75% at 50% 42%,#000 0%,transparent 80%);
}
@keyframes locus-grat{to{opacity:1}}

/* sticky header, slightly darker than page, faint separator */
.locus-bar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; gap:18px; padding:16px 32px;
  background:var(--header); border-bottom:1px solid var(--line);
}
.locus-brand{font-weight:500;font-size:19px;letter-spacing:-.01em;text-decoration:none;color:var(--ink)}
.locus-brand .dot{color:var(--accent)}
.locus-brand .by{display:block;font-family:system-ui,sans-serif;font-weight:400;font-size:10.5px;letter-spacing:.04em;color:var(--muted);margin-top:1px}
.locus-nav{display:flex;gap:24px;margin:0 auto;font-family:system-ui,sans-serif;font-size:14px}
.locus-nav a{color:var(--muted);text-decoration:none;transition:color .18s}
.locus-nav a:hover{color:var(--ink)}
.locus-tools{display:flex;align-items:center;gap:6px;font-family:system-ui,sans-serif}
.locus-sizer{display:flex;align-items:baseline;gap:2px;padding-right:8px;margin-right:2px;border-right:1px solid var(--line)}
.locus-sizer button{border:0;background:none;color:var(--muted);cursor:pointer;font-family:'Spectral',serif;padding:2px 4px;line-height:1;transition:color .15s}
.locus-sizer button:hover{color:var(--ink)}
.locus-sizer button[data-s="1"]{font-size:12px}.locus-sizer button[data-s="2"]{font-size:15px}
.locus-sizer button[data-s="3"]{font-size:18px}.locus-sizer button[data-s="4"]{font-size:22px}
.locus-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:none;color:var(--muted);border-radius:8px;cursor:pointer;transition:all .15s}
.locus-icon:hover{color:var(--ink);border-color:var(--faint)}
.locus-lang{position:relative}
.locus-lang>button{display:flex;align-items:center;gap:7px;height:34px;padding:0 11px;border:1px solid var(--line);background:none;color:var(--ink);border-radius:8px;cursor:pointer;font-size:13px;transition:border-color .15s}
.locus-lang>button:hover{border-color:var(--faint)}
.locus-lang-menu{position:absolute;right:0;top:42px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px;min-width:168px;display:none;flex-direction:column;box-shadow:0 8px 28px rgba(0,0,0,.08);z-index:9}
.locus-lang-menu.open{display:flex}
.locus-lang-menu a{display:flex;justify-content:space-between;align-items:center;padding:8px 11px;border-radius:7px;color:var(--ink);text-decoration:none;font-size:13.5px;transition:background .12s}
.locus-lang-menu a:hover{background:var(--paper-edge)}
.locus-lang-menu a .native{color:var(--muted);font-size:12px}
.locus-lang-menu a[data-rtl] .native{direction:rtl}
.locus-lang-menu .more{color:var(--muted);font-style:italic}

/* hero — full-width breathing room, no artificial narrow column */
.locus-root{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 32px 72px}
.locus-eyebrow{font-family:system-ui,sans-serif;font-size:calc(12px * var(--scale));font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:30px;opacity:0;animation:locus-rise .9s ease forwards .35s}
.locus-cross{display:inline-block;width:7px;height:7px;margin:0 12px;vertical-align:middle;position:relative}
.locus-cross::before,.locus-cross::after{content:"";position:absolute;background:var(--accent)}
.locus-cross::before{left:50%;top:-3px;width:1px;height:13px;transform:translateX(-.5px)}
.locus-cross::after{top:50%;left:-3px;height:1px;width:13px;transform:translateY(-.5px)}
.locus-home h1{font-weight:300;font-size:calc(clamp(40px,7vw,88px) * var(--scale));line-height:.98;letter-spacing:-.025em;margin-bottom:22px;opacity:0;animation:locus-rise 1s ease forwards .45s}
.locus-home h1 .em{font-style:italic;font-weight:400}
.locus-tagline{font-size:calc(clamp(17px,2.4vw,22px) * var(--scale));color:var(--muted);font-weight:300;margin-bottom:48px;opacity:0;animation:locus-rise 1s ease forwards .58s}
@keyframes locus-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* search — wider, and height grows with text scale so large text fits cleanly */
.locus-find{width:min(760px,100%);margin-left:auto;margin-right:auto;opacity:0;animation:locus-rise 1s ease forwards .7s}
.locus-field{display:flex;align-items:center;gap:12px;background:var(--paper-edge);border:1px solid var(--line);border-radius:14px;padding:8px 8px 8px 18px;min-height:calc(60px * var(--scale));transition:border-color .2s,box-shadow .2s}
html[data-theme="light"] .locus-field{background:#fff}
.locus-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}
.locus-field svg{flex:none;color:var(--muted)}
.locus-field input{flex:1;border:0;outline:0;background:transparent;font-family:'Spectral',serif;font-size:calc(18px * var(--scale));color:var(--ink);line-height:1.3}
.locus-field input::placeholder{color:var(--faint)}
.locus-field button{flex:none;align-self:stretch;min-height:44px;padding:0 22px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-family:system-ui,sans-serif;font-size:calc(14px * var(--scale));font-weight:500;cursor:pointer;transition:background .18s}
.locus-field button:hover{background:var(--accent-deep)}
html[data-theme="dark"] .locus-field button{color:#0c1512}
.locus-scopes{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:18px;font-family:system-ui,sans-serif;font-size:calc(13px * var(--scale))}
.locus-scopes span{color:var(--muted);border:1px solid var(--line);background:var(--paper-edge);padding:7px 14px;border-radius:999px;cursor:default;transition:border-color .18s,color .18s}
html[data-theme="light"] .locus-scopes span{background:#fff}
.locus-scopes span:hover{border-color:var(--accent);color:var(--accent-deep)}

/* covenant — let it flow naturally, no narrow clamp */
.locus-covenant{margin-top:52px;font-style:italic;font-weight:300;font-size:calc(16px * var(--scale));color:var(--muted);max-width:none;line-height:1.6;opacity:0;animation:locus-rise 1s ease forwards .85s}

.locus-foot{position:relative;z-index:2;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 32px;border-top:1px solid var(--line);font-family:system-ui,sans-serif;font-size:12.5px;color:var(--muted)}
.locus-foot .body-sel{display:flex;align-items:center;gap:7px;color:var(--ink);cursor:default}
.locus-foot .body-sel .glyph{color:var(--accent);font-size:15px;line-height:1}
.locus-foot .body-sel .more{color:var(--faint)}
.locus-foot .promise{display:flex;align-items:center;gap:7px;color:var(--accent-deep)}
.locus-foot .right{margin-left:auto}

/* back-to-top — hidden until scrolled */
.locus-top{position:fixed;right:24px;bottom:24px;z-index:30;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--header);color:var(--accent-deep);border-radius:10px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s}
.locus-top.show{opacity:1;visibility:visible;transform:none}
.locus-top:hover{border-color:var(--accent)}

@media (max-width:820px){.locus-nav{display:none}}
@media (max-width:640px){
  .locus-brand .by{display:none}
  .locus-bar{padding:14px 18px}
  .locus-sizer button[data-s="1"]{font-size:11px}.locus-sizer button[data-s="4"]{font-size:18px}
  .locus-foot{justify-content:center;text-align:center}.locus-foot .right{margin-left:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important}.locus-graticule,.locus-eyebrow,.locus-home h1,.locus-tagline,.locus-find,.locus-covenant{opacity:1!important}}

/* ── inner pages (covenant / claim / about) ── */
.locus-page{position:relative;z-index:2;flex:1;width:min(860px,100%);margin:0 auto;padding:56px 32px 72px;text-align:center}
.locus-page-title{font-weight:300;font-size:calc(clamp(36px,5vw,60px) * var(--scale));line-height:1.04;letter-spacing:-.02em;margin:18px 0 20px}
.locus-page-title .em{font-style:italic;font-weight:400}
.locus-lede{font-size:calc(17px * var(--scale));color:var(--muted);font-weight:300;line-height:1.65;max-width:680px;margin:0 auto 40px}
.locus-vows{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;text-align:left;margin-bottom:40px}
.locus-vows .vow{background:var(--paper-edge);border:1px solid var(--line);border-radius:14px;padding:22px}
html[data-theme="light"] .locus-vows .vow{background:#fff}
.locus-vows .vow-n{font-family:system-ui,sans-serif;font-size:12px;font-weight:500;letter-spacing:.1em;color:var(--accent)}
.locus-vows h3{font-weight:400;font-size:calc(19px * var(--scale));margin:8px 0 8px;letter-spacing:-.01em}
.locus-vows p{font-size:calc(14.5px * var(--scale));color:var(--muted);line-height:1.6}
.locus-steps{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:32px 0 8px}
.locus-steps .step{display:flex;align-items:center;gap:10px;font-family:system-ui,sans-serif;font-size:14px;color:var(--muted)}
.locus-steps .step-n{width:24px;height:24px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--accent);color:var(--accent);border-radius:50%;font-size:12px}

/* ── results page: two-column straddle ── */
.locus-results{position:relative;z-index:2;flex:1;width:min(1100px,100%);margin:0 auto;padding:28px 28px 60px}
.locus-find-top{width:100%;margin:0 0 14px}
.locus-resultline{display:flex;align-items:center;gap:10px;font-family:system-ui,sans-serif;font-size:13px;color:var(--muted);margin-bottom:18px}
.locus-resultline .dot{color:var(--faint)}
.locus-resultline .ok{margin-left:auto;color:var(--accent-deep)}
.locus-split{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;align-items:stretch}
.locus-map{min-height:420px;border:1px solid var(--line);border-radius:14px;background:var(--paper-edge);display:flex;align-items:center;justify-content:center}
.locus-map-ph{text-align:center;color:var(--muted);font-family:system-ui,sans-serif}
.locus-map-ph svg{color:var(--faint)}
.locus-map-ph p{font-size:15px;margin:10px 0 4px;color:var(--ink)}
.locus-map-ph span{font-size:12px;color:var(--faint)}
.locus-records{border:1px solid var(--line);border-radius:14px;background:var(--paper-edge);padding:16px;overflow:hidden}
html[data-theme="light"] .locus-records{background:#fff}
.rec-head{font-family:system-ui,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:12px}
.rec-empty{font-size:14px;color:var(--muted);line-height:1.6}
.rec-empty a{color:var(--accent-deep);text-decoration:none}
.rec{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.rec:last-child{border-bottom:0}
.rec-mark{width:16px;height:16px;flex:none;margin-top:2px;background:var(--accent);border-radius:3px}
.rec-name{font-size:14px;font-weight:500}
.rec-meta{font-size:12.5px;color:var(--muted);margin-top:1px}
.rec-coord{font-family:var(--font-mono,monospace);font-size:11px;color:var(--faint);margin-top:2px}
@media (max-width:760px){.locus-split{grid-template-columns:1fr}.locus-map{min-height:280px}}

/* Live NeuraLocus map container -- added 2026-07-03. Needs explicit height for MapLibre. */
/* Parent .locus-map is flex-centered for the old placeholder; the live map must fill it. */
.locus-map-live{align-self:stretch;flex:1 1 auto;width:100%;min-height:420px;border-radius:14px;overflow:hidden}
.locus-map:has(.locus-map-live){padding:0;overflow:hidden}
@media (max-width:760px){.locus-map-live{min-height:280px}}

/* Your starting point -- the dot dropped when you offer your location (device-local). */
.locus-me-dot{width:16px;height:16px;border-radius:50%;background:#2e8b57;
border:3px solid #fff;box-shadow:0 0 0 2px rgba(46,139,87,.5),0 1px 4px rgba(0,0,0,.4)}
