/* ==========================================================================
   Mandli 2026 — shared foundation
   Tokens, typography, header, menu and footer. Every page loads this.
   ========================================================================== */

@font-face{font-family:'Ananda';src:url(fonts/ananda.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'CenturyGothicW';src:url(fonts/cg-regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'CenturyGothicW';src:url(fonts/cg-italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'CenturyGothicW';src:url(fonts/cg-bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'CenturyGothicW';src:url(fonts/cg-bolditalic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}

:root{
  --grain:url(data:image/webp;base64,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);
  /* palette — sampled from COLOR 1.png */
  --night:#1A0705; --maroon:#641611; --red:#951E1E;
  --ochre:#D7922A; --ochre-lt:#E4B15C; --ochre-dp:#B87C2B; --ochre-dk:#7B5421;
  --cream:#F4EEDC;
  --ink:rgba(244,238,220,.88);
  --ink-soft:rgba(244,238,220,.62);
  --rule:rgba(215,146,42,.22);
  --display:'Ananda',Georgia,serif;
  --body:'CenturyGothicW','Century Gothic','Questrial','Futura','Trebuchet MS',system-ui,sans-serif;
  --measure:34rem; --bar:58px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--night);color:var(--cream);
  font-family:var(--body);font-weight:400;line-height:1.65;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
::selection{background:var(--ochre);color:var(--night)}
:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}

h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.05;color:var(--ochre)}

.skip{
  position:absolute;left:-9999px;top:0;z-index:70000;
  background:var(--ochre);color:var(--night);padding:.7rem 1.1rem;font-size:.8rem;
}
.skip:focus{left:.5rem;top:.5rem}
#readable{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===================== header ===================== */
#top{
  position:fixed;left:0;right:0;top:0;z-index:60000;
  height:calc(var(--bar) + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) 1rem 0;
  display:flex;align-items:center;justify-content:space-between;
  pointer-events:none;
}
#top::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(20,6,5,.88),rgba(20,6,5,0));
  pointer-events:none;
}
#top::after{
  content:"";position:absolute;left:1rem;right:1rem;bottom:0;height:1px;
  background:linear-gradient(to right,rgba(215,146,42,0),rgba(215,146,42,.38) 20%,rgba(215,146,42,.38) 80%,rgba(215,146,42,0));
}
.brand{
  position:relative;z-index:1;pointer-events:auto;
  width:98px;display:block;line-height:0;
  filter:drop-shadow(0 1px 10px rgba(16,4,4,.9));
}
.brand svg{width:100%;height:auto;display:block}
#menuBtn{
  position:relative;z-index:1;pointer-events:auto;
  display:flex;align-items:center;gap:.55rem;
  background:none;border:0;cursor:pointer;
  font:inherit;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(244,238,220,.9);padding:.5rem .1rem;min-height:44px;
}
#menuBtn .lbl{display:none}
@media (min-width:768px){ #menuBtn .lbl{display:inline} }
#menuBtn .bars{display:block;width:26px;height:9px;position:relative}
@media (min-width:768px){ #menuBtn .bars{width:22px} }
#menuBtn .bars i{
  position:absolute;left:0;right:0;height:1px;background:var(--ochre);
  transition:transform .3s ease,opacity .2s ease;
}
#menuBtn .bars i:first-child{top:0}
#menuBtn .bars i:last-child{bottom:0}
#menuBtn[aria-expanded="true"] .bars i:first-child{transform:translateY(4px) rotate(45deg)}
#menuBtn[aria-expanded="true"] .bars i:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ===================== the menu =====================
   A pause in the woods rather than a navigation screen. The night closes in
   (the forest still faintly there beneath it), a single ochre trail runs down
   the left, and the four pages sit off it as stops along the way. A faint
   ridge of the Tekra land rests along the foot. Typography carries it. */
#menu{
  --trail:clamp(1.6rem,9vw,2.2rem);          /* where the trail runs */
  position:fixed;inset:0;z-index:59000;overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;
  padding:calc(var(--bar) + env(safe-area-inset-top) + 1.5rem)
          calc(1.5rem + env(safe-area-inset-right))
          calc(3.5rem + env(safe-area-inset-bottom))
          calc(var(--trail) + 1.6rem + env(safe-area-inset-left));
  background:
    radial-gradient(90% 60% at 82% 100%, rgba(100,22,17,.34) 0%, rgba(100,22,17,0) 70%),
    radial-gradient(70% 50% at 8% 0%, rgba(215,146,42,.05) 0%, rgba(215,146,42,0) 70%),
    linear-gradient(to bottom, rgba(18,5,4,.985), rgba(24,7,5,.99));
  opacity:0;visibility:hidden;
  transition:opacity .36s ease .08s,visibility 0s linear .44s;
}
#menu.open{opacity:1;visibility:visible;transition:opacity .45s ease,visibility 0s}
/* paper-grain, the same as the pages */
#menu::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:var(--grain);opacity:.06;
}
/* a faint ridge of Tekra land resting along the foot */
#menu::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:40vh;pointer-events:none;
  background:url(Tekra.svg) no-repeat;
  background-size:max(150vw,900px) auto;
  background-position:18% calc(100% + max(150vw,900px) * .0495);
  opacity:0;transform:translate3d(0,10px,0);
  transition:opacity .3s ease,transform .5s ease;
}
#menu.open::after{opacity:.16;transform:none;transition:opacity .9s ease .15s,transform 1.1s cubic-bezier(.22,.61,.36,1) .15s}

#menu ol{list-style:none;position:relative;margin:0;padding:0;width:auto}
/* the trail — one hairline down the whole height of the screen */
#menu ol::before{
  content:"";position:absolute;top:-100vh;bottom:-100vh;
  left:calc(-1.6rem - .5px);width:1px;
  background:linear-gradient(to bottom,rgba(215,146,42,0) 0%,rgba(215,146,42,.34) 38%,rgba(215,146,42,.34) 62%,rgba(215,146,42,0) 100%);
  transform:scaleY(0);transform-origin:50% 0;
  transition:transform .3s ease;
}
#menu.open ol::before{transform:scaleY(1);transition:transform .9s cubic-bezier(.22,.61,.36,1) .05s}

#menu li{
  position:relative;border:0;
  opacity:0;transform:translate3d(0,10px,0);
  transition:opacity .2s ease,transform .25s ease;
}
#menu.open li{opacity:1;transform:none;transition:opacity .5s ease,transform .6s cubic-bezier(.22,.61,.36,1)}
#menu.open li:nth-child(1){transition-delay:.14s}
#menu.open li:nth-child(2){transition-delay:.2s}
#menu.open li:nth-child(3){transition-delay:.26s}
#menu.open li:nth-child(4){transition-delay:.32s}
/* a short branch off the trail to each stop — drawn in on hover/focus,
   held on the page you are on, which also gets a marker on the trail */
#menu li::before{
  content:"";position:absolute;top:55%;left:-1.6rem;height:1px;width:1.1rem;
  background:var(--ochre);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .35s cubic-bezier(.22,.61,.36,1);
}
#menu li::after{
  content:"";position:absolute;top:55%;left:calc(-1.6rem - 3px);width:5px;height:5px;margin-top:-2px;
  border-radius:50%;background:var(--ochre);opacity:0;transition:opacity .3s ease;
}
#menu li:hover::before{transform:scaleX(1)}
#menu li:has(a[aria-current="page"])::before{transform:scaleX(1)}
#menu li:has(a[aria-current="page"])::after{opacity:1}

#menu a{
  display:inline-block;text-decoration:none;text-align:left;
  font-family:var(--display);
  font-size:clamp(2.1rem,10vw,2.6rem);line-height:1;
  color:rgba(244,238,220,.9);
  padding:.26em 0 .3em;
  transition:color .3s ease,transform .45s cubic-bezier(.22,.61,.36,1);
}
#menu a:hover{color:var(--ochre-lt);transform:translate3d(.12em,0,0)}
/* keyboard focus: a quiet dotted rule under the word, no movement */
#menu a:focus-visible{outline:none;color:var(--cream);text-decoration:underline dotted rgba(215,146,42,.7);text-decoration-thickness:1px;text-underline-offset:.18em}
#menu a[aria-current="page"]{color:var(--ochre)}
/* desktop: a drawer that opens from the right edge, right to left; the
   woods stay in view beside it, dimmed a little */
@media (min-width:768px){
  #menu{
    --trail:3rem;
    left:auto;right:0;width:clamp(360px,32vw,460px);
    justify-content:center;
    padding-left:calc(var(--trail) + 2rem);padding-right:2rem;
    border-left:1px solid rgba(215,146,42,.18);
    box-shadow:0 0 0 100vmax rgba(10,3,2,0);
    opacity:1;transform:translate3d(100%,0,0);
    transition:transform .42s cubic-bezier(.4,0,.2,1) .06s,box-shadow .42s ease .06s,visibility 0s linear .5s;
  }
  #menu.open{
    transform:none;box-shadow:0 0 0 100vmax rgba(10,3,2,.4);
    transition:transform .55s cubic-bezier(.22,.61,.36,1),box-shadow .55s ease,visibility 0s;
  }
  #menu::after{background-size:900px auto;background-position:30% calc(100% + 900px * .0495)}
  #menu ol::before{left:calc(-2rem - .5px)}
  #menu li::before{left:-2rem;width:1.3rem}
  #menu li::after{left:calc(-2rem - 3px)}
  #menu a{font-size:clamp(2.3rem,2.8vw,2.9rem);padding:.2em 0 .24em}
}
@media (max-height:600px){
  #menu a{font-size:clamp(1.8rem,8.5vw,2.2rem)}
}

/* the trigger, open: the same two hairlines crossed, now warm, and the
   label reads Close */
#menuBtn[aria-expanded="true"] .bars i{background:var(--ochre-lt)}
#menuBtn[aria-expanded="true"] .lbl{font-size:0}
#menuBtn[aria-expanded="true"] .lbl::after{content:"Close";font-size:.72rem}
body.menu-open{overflow:hidden}

/* ===================== shared bits ===================== */
.eyebrow{
  font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(215,146,42,.9);
}
.rulemark{
  display:block;width:46px;height:1px;margin:1.3rem auto 0;
  background:linear-gradient(to right,rgba(215,146,42,0),rgba(215,146,42,.8),rgba(215,146,42,0));
}
/* Filled in the brand ochre; on hover it empties out to a stroke. The border
   is carried in both states so nothing shifts by a pixel on the swap. */
.cta{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  gap:.6rem;min-height:52px;padding:.85rem 2.1rem;
  font:inherit;font-size:.82rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--maroon);background:var(--ochre);
  border:1px solid var(--ochre);border-radius:2px;
  text-decoration:none;cursor:pointer;
  box-shadow:0 10px 34px rgba(12,3,3,.55);
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .18s ease;
}
.cta:hover,.cta:focus-visible{
  background:transparent;color:var(--ochre);
}
.cta:active{transform:translateY(1px)}
.cta[aria-disabled="true"]{cursor:default}
.cta-note{
  display:block;margin-top:.75rem;
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(244,238,220,.5);
}
.textlink{
  color:inherit;text-decoration:none;
  border-bottom:1px solid rgba(215,146,42,.3);padding-bottom:1px;
}
.textlink:hover{color:var(--ochre);border-color:var(--ochre)}

/* ===================== get in touch ===================== */
.reach-lines{font-size:clamp(.86rem,3.6vw,.98rem);line-height:2.1;color:var(--ink);overflow-wrap:anywhere}
.reach-lines .addr{display:block;color:var(--ink-soft);font-size:.9rem;line-height:1.7;margin-top:.9rem}
.social{display:inline-flex;align-items:center;gap:.85rem}
.social a{
  display:inline-flex;color:var(--ochre-lt);
  transition:color .2s ease,transform .2s ease;
}
.social a:hover{color:var(--cream);transform:translateY(-1px)}
.social svg{width:1.45em;height:1.45em;display:block}

/* the Ahura Technosoft mark, used in place of the credit wordmark */
.atmark{
  width:auto;height:1.15em;display:block;
  transform:translateY(.02em);
}

/* ===================== footer =====================
   Inner pages close on one block: the contact details and the legal line
   together, so the copyright never reads as an orphaned strip. */
.sitefoot{
  position:relative;z-index:2;text-align:center;
  margin-top:6rem;
  padding:0 1.25rem calc(2.4rem + env(safe-area-inset-bottom));
}
.sitefoot .inner{width:min(38rem,92vw,100%);margin:0 auto}
.sitefoot h2{
  font-size:clamp(1.9rem,7vw,2.6rem);margin-bottom:1.6rem;
}
/* one rhythm for the contact block wherever it appears */
.contact .line,.sitefoot .line{
  margin-bottom:1.5rem;
  font-size:clamp(1rem,4vw,1.18rem);line-height:1.5;
  color:var(--cream);overflow-wrap:anywhere;
}
.contact .line a,.sitefoot .line a{
  color:inherit;text-decoration:none;
  border-bottom:1px solid rgba(215,146,42,.3);padding-bottom:2px;
}
.contact .line a:hover,.sitefoot .line a:hover{color:var(--ochre-lt);border-color:var(--ochre-lt)}
/* the icons are not text links — no rule underneath them */
.contact .line .social a,.sitefoot .line .social a{border-bottom:0;padding-bottom:0}
.contact .connect,.sitefoot .connect{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:.4rem .9rem;
}
.contact .connect .lbl,.sitefoot .connect .lbl{color:var(--ink)}
.contact .legal,.sitefoot .legal{
  margin:2.4rem auto 0;padding-top:1.6rem;
  border-top:1px solid rgba(215,146,42,.22);
  font-size:clamp(.82rem,3.2vw,.92rem);line-height:2;
  color:rgba(244,238,220,.78);
}
.contact .legal span,.sitefoot .legal span{display:block}
.contact .legal a,.sitefoot .legal a{color:var(--cream);text-decoration:none}
.contact .legal a:hover,.sitefoot .legal a:hover{color:var(--ochre-lt)}
.contact .legal .credit,.sitefoot .legal .credit{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
}
/* the whole credit line is the link; the words keep their colour, the mark
   keeps its own, and both warm together on hover */
.contact .legal .credit a,.sitefoot .legal .credit a{
  display:inline-flex;align-items:center;gap:.5rem;color:inherit;
}
.contact .legal .credit a .atmark,.sitefoot .legal .credit a .atmark{color:var(--cream);transition:color .2s ease}
.contact .legal .credit a:hover,.sitefoot .legal .credit a:hover,
.contact .legal .credit a:hover .atmark,.sitefoot .legal .credit a:hover .atmark{color:var(--ochre-lt)}

@media (max-width:400px){
  .contact .line,.sitefoot .line{font-size:.94rem;margin-bottom:1.25rem}
}

/* ===================== inner page shell ===================== */
.page{
  padding:calc(var(--bar) + env(safe-area-inset-top) + 3.2rem) 1.25rem 0;
}
.page .lede{width:min(46rem,92vw,100%);margin:0 auto;text-align:center}
.page h1{font-size:clamp(2.3rem,9vw,3.8rem);margin-bottom:1.4rem}
.page h2{font-size:clamp(1.7rem,6vw,2.4rem);margin-bottom:1.1rem}
.page .kicker{
  font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(215,146,42,.85);margin-bottom:1rem;
}
.prose{width:min(38rem,92vw,100%);margin:2.4rem auto 0;text-align:left}
.prose p{font-size:clamp(.98rem,3.8vw,1.06rem);line-height:1.85;color:var(--ink);margin-bottom:1.35rem}
.prose p:last-child{margin-bottom:0}

/* a quiet band of horizon behind the inner pages, so they belong to the same world */
.pagebg{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(120% 70% at 50% 108%, rgba(148,52,20,.34) 0%, rgba(100,22,17,.16) 42%, rgba(26,7,5,0) 74%),
    var(--night);
}
.pagebg::after{
  content:"";position:absolute;inset:0;
  background-image:var(--grain);opacity:.06;
}

@media (min-width:768px){
  :root{--measure:37rem;--bar:70px}
  .brand{width:118px}
  .page{padding-top:calc(var(--bar) + 4.5rem)}
}
@media (max-width:359px){
  :root{--measure:19rem}
  .cta{padding:.8rem 1.5rem;letter-spacing:.16em}
  .eyebrow{font-size:.7rem;letter-spacing:.24em}
}
@media (prefers-reduced-motion:reduce){
  #menu,#menu.open,#menu::after,#menu.open::after,#menu ol::before,#menu.open ol::before,
  #menu li,#menu.open li,#menu li::before,#menu a{transition:none !important}
  #menu li,#menu::after{transform:none}
  #menu ol::before{transform:none}
  #menu a:hover,#menu a:focus-visible{transform:none}
}
