/* krypton.swiss styles. no framework. */

/* fonts, self hosted */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/inter-400.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/inter-500.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/inter-700.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/jbmono-400.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/jbmono-500.woff2") format("woff2")}

/* ---- Tokens ---- */
:root{
  --bg:#0B0E0F;
  --bg-1:#0F1314;
  --panel:#12181A;
  --panel-2:#161D1F;
  --line:#20292B;
  --line-2:#2C383B;
  --ink:#E8ECEC;
  --ink-2:#AEB8B8;
  --ink-3:#7C8888;
  --accent:#3DD6D0;
  --accent-dim:#2AA6A1;
  --accent-ink:#062B29;
  --danger:#E5484D;
  --ok:#4CC38A;
  --warn:#E2B33D;

  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --maxw:1160px;
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --radius:4px;
  --radius-lg:8px;
  --step:clamp(4rem,9vw,7.5rem);   /* vertical section rhythm */
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow:0 1px 0 rgba(255,255,255,.03),0 12px 40px -12px rgba(0,0,0,.7);
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:clamp(1rem,.97rem + .2vw,1.075rem);
  line-height:1.65;font-weight:400;letter-spacing:.005em;
  overflow-x:hidden;min-height:100vh;
}
img,svg,canvas{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:var(--accent);color:var(--accent-ink)}
hr{border:0;border-top:1px solid var(--line);margin:0}

/* subtle scanline / grain texture, disabled for reduced-motion sensitive layout is fine */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.014) 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;opacity:.5;
}

/* ---- Typography ---- */
h1,h2,h3,h4{line-height:1.12;font-weight:700;letter-spacing:-.02em;color:#fff}
h1{font-size:clamp(2.1rem,1.4rem + 3.4vw,4rem)}
h2{font-size:clamp(1.7rem,1.2rem + 2.2vw,2.7rem)}
h3{font-size:clamp(1.2rem,1.05rem + .7vw,1.5rem)}
h4{font-size:1.05rem;letter-spacing:-.01em}
p{color:var(--ink-2);max-width:66ch}
strong{color:var(--ink);font-weight:600}
.lead{font-size:clamp(1.1rem,1rem + .6vw,1.35rem);color:var(--ink);line-height:1.55;max-width:60ch}
.mono{font-family:var(--mono)}
.accent{color:var(--accent)}

/* kicker / section label as terminal comment */
.kicker{
  font-family:var(--mono);font-size:.8rem;font-weight:500;letter-spacing:.08em;
  color:var(--accent);text-transform:none;display:inline-flex;align-items:center;gap:.55rem;
}
.kicker::before{content:"//";color:var(--accent-dim);opacity:.8}

/* ---- Layout ---- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);width:100%}
.section{padding-block:var(--step)}
.section--tight{padding-block:clamp(3rem,6vw,5rem)}
.grid{display:grid;gap:clamp(1rem,2.5vw,1.75rem)}
.cols-2{grid-template-columns:repeat(2,1fr)}
.cols-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:920px){.cols-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.cols-2,.cols-3{grid-template-columns:1fr}}
.divider{height:1px;background:var(--line)}

/* ---- Skip link ---- */
.skip{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--accent);color:var(--accent-ink);
  padding:.6rem 1rem;font-family:var(--mono);font-weight:500;border-radius:0 0 var(--radius) 0}
.skip:focus{left:0}

/* ---- Header / Nav ---- */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(11,14,15,.72);
  backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:1.5rem;height:68px}
.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--mono);font-weight:500;
  letter-spacing:.02em;color:#fff;font-size:1.05rem}
.brand img{height:26px;width:auto}
.brand b{font-weight:700;letter-spacing:.06em}
.nav-links{display:flex;align-items:center;gap:.35rem;margin-left:auto;flex-wrap:wrap}
.nav-links a{font-size:.92rem;color:var(--ink-2);padding:.5rem .7rem;border-radius:var(--radius);
  transition:color .18s var(--ease),background .18s var(--ease);position:relative}
.nav-links a:hover{color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--accent)}
.nav-cta{font-family:var(--mono);font-size:.85rem;color:var(--accent)!important;
  border:1px solid var(--line-2);border-radius:var(--radius);padding:.5rem .85rem!important}
.nav-cta:hover{border-color:var(--accent);background:rgba(61,214,208,.08)}

/* language switch */
.lang{display:flex;gap:.15rem;font-family:var(--mono);font-size:.8rem;align-items:center}
.lang a{color:var(--ink-3);padding:.3rem .4rem;border-radius:3px}
.lang a[aria-current="true"]{color:var(--accent)}
.lang span{color:var(--line-2)}

/* mobile nav via checkbox (no JS, no attack surface); checkbox stays keyboard-focusable */
.nav-toggle{display:none}
.nav-burger{display:none;margin-left:auto;width:42px;height:42px;border:1px solid var(--line-2);
  border-radius:var(--radius);background:transparent;cursor:pointer;position:relative}
.nav-burger span,.nav-burger span::before,.nav-burger span::after{
  content:"";position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:var(--ink);
  transform:translate(-50%,-50%);transition:.2s var(--ease)}
.nav-burger span::before{transform:translate(-50%,-6px)}
.nav-burger span::after{transform:translate(-50%,5px)}
@media (max-width:900px){
  .nav-burger{display:block}
  /* focusable but visually hidden: keyboard can tab here and toggle with space */
  .nav-toggle{display:block;position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
  .nav-toggle:focus-visible + .nav-burger{outline:2px solid var(--accent);outline-offset:2px}
  .nav-links{position:fixed;inset:68px 0 auto 0;flex-direction:column;align-items:stretch;
    background:var(--bg-1);border-bottom:1px solid var(--line);padding:1rem var(--gutter) 1.5rem;
    gap:.15rem;transform:translateY(-120%);transition:transform .25s var(--ease);margin-left:0}
  .nav-links a{padding:.85rem .5rem;border-bottom:1px solid var(--line)}
  .nav-toggle:checked ~ .nav-links{transform:translateY(0)}
  .lang{padding:.6rem .5rem}
}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-weight:500;
  font-size:.92rem;letter-spacing:.01em;padding:.85rem 1.25rem;border-radius:var(--radius);
  border:1px solid transparent;cursor:pointer;transition:.18s var(--ease);white-space:nowrap}
.btn::before{content:"";color:var(--accent-ink)}
.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:600}
.btn-primary:hover{background:#57e3dd}
.btn-ghost{border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(61,214,208,.06)}
.btn-danger{background:var(--danger);color:#fff;font-weight:600}
.btn-danger:hover{background:#f05a5f;transform:translateY(-1px)}
.btn .arrow{transition:transform .18s var(--ease)}
.btn:hover .arrow{transform:translateX(3px)}
.btn-row{display:flex;gap:.9rem;flex-wrap:wrap;align-items:center}

/* text link with terminal caret */
.tlink{font-family:var(--mono);font-size:.9rem;color:var(--accent);display:inline-flex;gap:.4rem;align-items:center}
.tlink::before{content:">";color:var(--accent-dim)}
.tlink:hover{text-decoration:underline;text-underline-offset:3px}

/* ---- Hero (split editorial: copy left, terminal right) ---- */
.hero{position:relative;padding-block:clamp(3rem,7vw,6rem) var(--step)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:2.5rem}}
.hero-head{max-width:16ch}
.hero .lead{margin-top:1.25rem}
.hero .btn-row{margin-top:2rem}

/* terminal, flat, linux window chrome */
.term{background:var(--panel);border:1px solid var(--line-2);border-radius:6px;overflow:hidden;width:100%}
.term-bar{display:flex;align-items:center;padding:.6rem .8rem;border-bottom:1px solid var(--line);
  background:var(--panel-2);font-family:var(--mono);font-size:.76rem;color:var(--ink-3)}
.term-title{flex:1;text-align:left}
.term-title b{color:var(--ink-2);font-weight:500}
.term-ctl{display:flex;gap:1rem;align-items:center;color:var(--ink-3)}
.term-ctl span{width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;line-height:1;opacity:.7}
.term-body{padding:clamp(1.1rem,3vw,1.6rem);font-family:var(--mono);
  font-size:clamp(.82rem,.78rem + .3vw,.92rem);line-height:1.8;background:var(--panel)}
.term-line{color:var(--ink-2);white-space:pre-wrap;word-break:break-word}
.term-line .pr{color:var(--accent)}
.term-line .cm{color:var(--ink-3)}
.term-out{color:var(--ink)}
.term-ok{color:var(--ok)}
.cursor{display:inline-block;width:.55ch;height:1.05em;background:var(--accent);vertical-align:-2px;
  margin-left:1px;animation:blink 1.05s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.cursor{animation:none}}

/* ---- Cards ---- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(1.35rem,2.5vw,1.9rem);position:relative;transition:.22s var(--ease);height:100%;
  display:flex;flex-direction:column;overflow:hidden}
.card::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--accent);
  transform:scaleY(0);transform-origin:top;transition:transform .25s var(--ease)}
.card:hover{border-color:var(--line-2);transform:translateY(-3px);background:var(--panel-2)}
.card:hover::before{transform:scaleY(1)}
.card-idx{font-family:var(--mono);font-size:.78rem;color:var(--accent);letter-spacing:.05em}
.card h3{margin:.85rem 0 .55rem}
.card p{color:var(--ink-2);font-size:.97rem;flex:1}
.card .tlink{margin-top:1.1rem}

/* ---- Stat strip ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--bg-1);padding:1.5rem 1.25rem;text-align:center}
.stat .num{font-family:var(--mono);font-size:clamp(1.5rem,1.2rem + 1.4vw,2.2rem);color:#fff;font-weight:500;letter-spacing:-.02em}
.lbl{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase}
.stat .lbl{margin-top:.4rem}

/* ---- Process steps ---- */
.steps{counter-reset:step;display:grid;gap:0}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.step:last-child{border-bottom:1px solid var(--line)}
.step-n{counter-increment:step;font-family:var(--mono);color:var(--accent);font-size:.95rem;
  border:1px solid var(--line-2);border-radius:var(--radius);width:3.2rem;height:2.6rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-n::before{content:"[" counter(step,decimal-leading-zero) "]"}
.step h3{margin-bottom:.35rem;font-size:1.12rem}
.step p{font-size:.97rem}

/* ---- Feature list ---- */
.flist{display:grid;gap:1rem}
.flist li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;color:var(--ink-2)}
.flist li::before{content:"[ ok ]";font-family:var(--mono);font-size:.8rem;color:var(--accent);
  border:1px solid var(--line);border-radius:3px;padding:.15rem .4rem;height:fit-content;margin-top:.15rem;white-space:nowrap}
.flist b{color:var(--ink)}

/* ---- Callout / CTA band (real Alps imagery, flat dark overlay) ---- */
.band{position:relative;background:var(--bg-1);border-block:1px solid var(--line);overflow:hidden}
.band::before{content:"";position:absolute;inset:0;z-index:0;
  background:url("/assets/img/alps-band.jpg") center/cover no-repeat;opacity:.22}
.band::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(11,14,15,.6)}
.band .inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.band h2{max-width:20ch}
@media (max-width:640px){.band::before{opacity:.14}}

/* ---- Trust row ---- */
.trust{display:flex;align-items:center;gap:1.5rem 2.5rem;flex-wrap:wrap}
.trust img{height:64px;width:auto;opacity:.9;filter:saturate(.9)}
.trust .badge-txt{font-family:var(--mono);font-size:.82rem;color:var(--ink-3);max-width:34ch;line-height:1.5}

.pill{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--mono);font-size:.75rem;
  color:var(--ink-2);border:1px solid var(--line-2);border-radius:100px;padding:.3rem .75rem}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 8px var(--ok)}
.pill.pulse::before{animation:pulse 2s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.pill.pulse::before{animation:none}}

/* ---- Definition / meta blocks (impressum, kontakt) ---- */
.dl{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1.5rem;font-size:.98rem}
.dl dt{font-family:var(--mono);color:var(--ink-3);font-size:.85rem}
.dl dd{color:var(--ink)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
@media (max-width:720px){.contact-grid{grid-template-columns:1fr}}
.contact-cell{background:var(--bg-1);padding:1.6rem;display:flex;flex-direction:column;gap:.5rem}
.contact-cell .k{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}
.contact-cell .v{font-family:var(--mono);font-size:1.05rem;color:#fff}
.contact-cell a.v:hover{color:var(--accent)}

/* ---- Emergency accent ---- */
.emergency{border:1px solid #4a1e20;background:#150e0f}
.emergency .num{color:#fff}
.big-num{font-family:var(--mono);font-size:clamp(1.6rem,1rem + 4vw,3rem);color:#fff;font-weight:500;letter-spacing:.01em}

/* ---- Footer ---- */
.site-footer{border-top:1px solid var(--line);background:var(--bg-1);padding-block:clamp(3rem,6vw,4.5rem) 2rem;margin-top:var(--step)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}
.footer-grid h2{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1rem}
.footer-grid a{color:var(--ink-2);font-size:.92rem;display:block;padding:.28rem 0;transition:color .15s}
.footer-grid a:hover{color:var(--accent)}
.footer-brand p{font-size:.9rem;color:var(--ink-3);margin-top:1rem;max-width:32ch}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:.78rem;color:var(--ink-3)}
.footer-bottom .pill{font-size:.72rem}

/* ---- Page hero (interior) ---- */
.phero{padding-block:clamp(3rem,6vw,5rem) clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line);
  position:relative;overflow:hidden}
.crumbs{font-family:var(--mono);font-size:.8rem;color:var(--ink-3);margin-bottom:1.5rem;display:flex;gap:.5rem;flex-wrap:wrap}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{color:var(--line-2)}
.phero h1{max-width:20ch}
.phero .lead{margin-top:1.25rem}

/* prose */
.prose h2{margin-top:2.5rem;margin-bottom:1rem}
.prose h3{margin-top:2rem;margin-bottom:.75rem}
.prose p+p{margin-top:1rem}
.prose ul.flist{margin-top:1.25rem}

/* reveal animation hook (JS adds .in) */
/* reveal is enhancement only: hidden solely when js is confirmed present */
.reveal{transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js .reveal{opacity:0;transform:translateY(16px)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* ---- 404 / life ---- */
.life-wrap{min-height:70vh;display:grid;place-items:center;text-align:center;gap:1.5rem;padding-block:4rem}
#life{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-1);image-rendering:pixelated;max-width:100%}
.life-wrap .code{font-family:var(--mono);font-size:clamp(3rem,10vw,6rem);color:#fff;letter-spacing:.1em;line-height:1}
.life-wrap .code b{color:var(--accent)}

/* faq */
.qa{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qmark{font-family:var(--mono);color:var(--accent);font-size:1rem;border:1px solid var(--line-2);
  border-radius:var(--radius);width:2.6rem;height:2.6rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.qa h3{margin-bottom:.35rem;font-size:1.12rem}.qa p{font-size:.97rem}

/* service icon (custom svg, stroke = accent) */
.svc-ico{width:30px;height:30px;color:var(--accent);flex-shrink:0}
.svc-ico svg{width:100%;height:100%;display:block}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.3rem}

.hero-visual{position:relative}

/* home OSINT split: watching-eyes tile (left) + copy (right) */
.split-media{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
@media (max-width:820px){.split-media{grid-template-columns:1fr}}

/* home OSINT: lightweight pixel watching-eyes tile + caption */
.watch-cap{display:flex;align-items:center;justify-content:center;gap:.5rem}
/* crisp vector swiss cross, correct federal-ish proportions (arm ~1/5, length ~3/5) */
.swiss-chip{position:relative;width:19px;height:19px;border-radius:3px;background:#bd635e;flex-shrink:0}
.swiss-chip::before,.swiss-chip::after{content:"";position:absolute;background:#eef1f1;border-radius:1px}
.swiss-chip::before{left:50%;top:22%;width:19%;height:56%;transform:translateX(-50%)}
.swiss-chip::after{top:50%;left:22%;height:19%;width:56%;transform:translateY(-50%)}

/* vim screen in hero terminal (the cannot-quit joke) */
.vim{margin-top:.35rem}
.vim-buf .vim-l{color:var(--ink)}
.vim-t{color:#4a7d86}
.vim-bar{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  background:var(--accent);color:var(--accent-ink);font-weight:600;padding:.12rem .55rem;margin:.35rem 0 .2rem}
.vim-mode{letter-spacing:.06em}
.vim-file{flex:1;text-align:center;opacity:.85}
.vim-cmd{color:var(--ink)}

/* service detail hero: text + pixel-eyes tile, tinted per service */
.phero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media (max-width:860px){.phero-grid{grid-template-columns:1fr}.phero-media{display:none}}
.media-tile{border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:1/1;background:var(--panel);display:grid;place-items:center;padding:14%}
.media-tile--eyes{background:radial-gradient(120% 120% at 50% 35%,color-mix(in srgb,var(--accent) 12%,var(--panel)),var(--panel))}

/* pixel watching-eyes motif */
.eyes{display:grid;grid-template-columns:repeat(26,1fr);grid-template-rows:repeat(11,1fr);
  gap:2px;width:100%;aspect-ratio:26/11}
.eyes i{display:block;border-radius:1px}
.eyes i.on{background:var(--accent)}

/* leet highlight in phone number */
.l33t{color:var(--accent-dim)}

/* per-service accent theming (derived from each service's artwork colour) */
.svc-threat{--accent:#4C9BE6;--accent-dim:#3A7CBF;--accent-ink:#04141f}
.svc-pentest{--accent:#E5675E;--accent-dim:#BE4A42;--accent-ink:#1f0605}
.svc-risk{--accent:#A97FD6;--accent-dim:#8659B0;--accent-ink:#150720}
.svc-training{--accent:#46B877;--accent-dim:#328B57;--accent-ink:#03130a}
.svc-ci{--accent:#E0A93C;--accent-dim:#B38326;--accent-ink:#1c1304}
.svc-vip{--accent:#D9BE5A;--accent-dim:#AE9633;--accent-ink:#1a1503}

/* drop heavy imagery on small screens for speed/clarity */
@media (max-width:640px){
  .hide-mobile{display:none!important}
}

/* utilities */
.mt-0{margin-top:0}.mt-05{margin-top:.6rem}.mt-sm{margin-top:.75rem}
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.my-md{margin-block:1.5rem}
.center{text-align:center}
.muted{color:var(--ink-3)}
.nowrap{white-space:nowrap}
.hide{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fs-sm{font-size:.82rem}
.text-danger{color:var(--danger)}
.gap-lg{gap:clamp(2rem,5vw,4rem)}
.items-center{align-items:center}
.maxw-md{max-width:820px}
.maxw-sm{max-width:780px}
.pad-lg{padding:clamp(2rem,5vw,3.5rem)}
.section.alt{background:var(--bg-1);border-block:1px solid var(--line)}
.btn-row.center{justify-content:center}
.big-num{display:inline-block}
.card.center p{margin-inline:auto}

@media print{
  body::after,.site-header,.site-footer,.band{display:none}
  body{background:#fff;color:#000}
}
