/* Scaff Serv — site styles. No framework, mobile first. */

@font-face{font-family:'Unbounded';font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/fonts/unbounded-500-800-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/fonts/unbounded-500-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500 800;font-display:swap;src:url(/assets/fonts/unbounded-500-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-400-700-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-400-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-400-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/jetbrainsmono-400-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/jetbrainsmono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/jetbrainsmono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#111315; --bg-2:#15171A; --panel:#1A1D20; --line:#2A2E33; --line-2:#3A3F45;
  --text:#F2F1EC; --text-2:#C9CCD1; --muted:#A3A7AD;
  --paper:#EDEBE6; --paper-line:#D9D6CF; --ink:#16181A; --ink-2:#55595F;
  --accent:#FF9800; --accent-ink:#111315; --accent-text:#FF9800;
  --grid:#1A1D21; --header-bg:rgba(17,19,21,.9); --spec-bg:rgba(17,19,21,.92); --footer-bg:#0C0D0F; --footer-word:#1C1F23;
  --bar-bg:rgba(26,29,32,.95); --placeholder:#4A5058; --err-text:#FFB089;
  color-scheme:dark;
  --display:'Unbounded',system-ui,sans-serif;
  --body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
  --wrap:1320px; --gutter:clamp(16px,4vw,32px);
  --radius:14px;
}
:root[data-theme="light"]{
  --bg:#F5F3EF; --bg-2:#EDEAE4; --panel:#FFFFFF; --line:#DCD7CE; --line-2:#C2BCB1;
  --text:#16181A; --text-2:#3B3F44; --muted:#5C6168;
  --paper:#E8E4DB; --paper-line:#D3CDC1;
  --accent-text:#A85400;
  --grid:#E7E3DB; --header-bg:rgba(245,243,239,.9); --spec-bg:rgba(255,255,255,.94); --footer-bg:#EAE7E1; --footer-word:#DCD7CD;
  --bar-bg:rgba(255,255,255,.95); --placeholder:#B5AFA4; --err-text:#9A3412;
  color-scheme:light;
}
/* Panels that stay dark in both themes. */
.bento-main,.calc-result,.btn-dark,.pill input:checked+span,.cert-dialog::backdrop{
  --text:#F2F1EC; --text-2:#C9CCD1; --muted:#A3A7AD; --line:#2A2E33; --line-2:#3A3F45; --accent-text:#FF9800;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.narrow{max-width:860px}
.mono{font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.muted{color:var(--muted)}
.small{font-size:14px}
.accent-text{color:var(--accent-text)}
.stack{display:flex;flex-direction:column;gap:24px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:10px 16px;z-index:100;border-radius:6px}
.skip:focus{left:8px}
.icon{width:20px;height:20px;flex:none}

/* Type */
.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.eyebrow .square{width:10px;height:10px;background:var(--accent)}
.eyebrow-dark{color:var(--ink)}
.h-hero{font-family:var(--display);font-weight:700;font-size:clamp(28px,min(8.6vw,6vw + 12px),76px);overflow-wrap:break-word;line-height:1.02;letter-spacing:-.02em;text-wrap:balance}
.h-section{font-family:var(--display);font-weight:700;font-size:clamp(28px,4vw,52px);line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
.h-xl{font-size:clamp(32px,4.6vw,60px)}
.h-md{font-size:clamp(24px,3vw,36px)}
.h-post{font-size:clamp(28px,4.2vw,52px)}
.h-card{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.25}
.h-card-lg{hyphens:auto;overflow-wrap:break-word;font-family:var(--display);font-weight:700;font-size:clamp(24px,2.6vw,32px);line-height:1.1;margin-bottom:14px}
.lead{font-size:18px;line-height:1.55;color:var(--ink-2);max-width:440px}
.lead-dark{font-size:18px;line-height:1.6;color:var(--text-2);max-width:640px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:8px;border:1px solid transparent;font-weight:650;font-size:16px;text-decoration:none;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-sm{min-height:44px;padding:0 16px;font-size:15px}
.btn-lg{min-height:56px;padding:0 28px;font-size:17px}
.btn-block{width:100%}
.btn-accent{background:var(--accent);color:var(--accent-ink)}
.btn-accent:hover{background:#FFAC33}
.btn-ghost{border-color:var(--line-2);color:var(--text);background:transparent}
.btn-ghost:hover{border-color:var(--text-2)}
.btn-dark{background:var(--ink);color:var(--text)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:650;text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:2px}
.link-back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-weight:600;margin-bottom:32px;min-height:44px}
.link-back:hover{color:var(--text)}

/* Header */
.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line)}
/* The blur sits on a pseudo-element: backdrop-filter on the header itself would trap the fixed mobile menu inside it. */
.site-header::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--header-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body:has(.mobile-menu[open]){overflow:hidden}
body:has(.mobile-menu[open]) .mobile-bar{display:none}
.header-row{display:flex;align-items:center;gap:20px;min-height:68px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;flex:none}
.logo-svg{display:block;height:40px;width:auto;color:var(--text)}
@media (max-width:400px){.logo-svg{height:32px}.header-tools{gap:6px}.theme-toggle{width:38px;height:38px}.mobile-menu summary{width:42px}.lang-switch a{min-width:34px}.header-row{gap:10px}}
@media (max-width:374px){.logo-svg{height:28px}.lang-switch a{min-width:30px}.header-row{gap:6px}.theme-toggle{width:36px;height:36px}.mobile-menu summary{width:38px}}
.main-nav{display:none;gap:4px 24px;font-size:15px;font-weight:550}
.main-nav a{color:var(--text-2);text-decoration:none;padding:10px 0;position:relative}
.main-nav a:hover,.main-nav a[aria-current]{color:var(--text)}
.main-nav a[aria-current]::after{content:'';position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--accent)}
.header-tools{display:flex;align-items:center;gap:10px}
.lang-switch{display:flex;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:12px;overflow:hidden}
.lang-switch a{display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;text-decoration:none;color:var(--muted)}
.lang-switch a[aria-current]{background:var(--text);color:var(--bg)}
.header-cta{display:none}
.mobile-menu summary{list-style:none;display:flex;align-items:center;justify-content:center;width:48px;height:48px;cursor:pointer;border-radius:8px}
.mobile-menu summary::-webkit-details-marker{display:none}
.burger,.burger::before,.burger::after{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .2s ease}
.burger{position:relative}
.burger::before,.burger::after{content:'';position:absolute;left:0}
.burger::before{top:-7px}.burger::after{top:7px}
.mobile-menu[open] .burger{background:transparent}
.mobile-menu[open] .burger::before{transform:translateY(7px) rotate(45deg)}
.mobile-menu[open] .burger::after{transform:translateY(-7px) rotate(-45deg)}
.mobile-panel{position:fixed;left:0;right:0;top:69px;bottom:0;height:calc(100dvh - 69px);overscroll-behavior:contain;background:var(--bg);padding:16px var(--gutter) 40px;display:flex;flex-direction:column;overflow-y:auto}
.mobile-panel a:not(.btn){font-family:var(--display);font-weight:600;font-size:24px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none}
.mobile-panel a[aria-current]{color:var(--accent-text)}
.mobile-panel .btn{margin-top:24px}
@media (min-width:1100px){
  .main-nav{display:flex}
  .header-cta{display:inline-flex}
  .mobile-menu{display:none}
  .logo{margin-right:0}
  .main-nav{margin-inline:auto}
}

/* Sections */
.section{padding-block:clamp(64px,9vw,112px)}
.section-line{border-top:1px solid var(--line)}
.section-light{background:var(--paper);color:var(--ink)}
.section-light .eyebrow{color:var(--ink-2)}
.section-light .btn-ghost{border-color:var(--ink);color:var(--ink)}
.page-top{padding-top:clamp(40px,6vw,80px)}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:clamp(32px,5vw,56px)}
.section-head-main{display:flex;flex-direction:column;gap:16px;max-width:820px}
.section-head-side{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.section:not(.section-light) .section-head .lead{color:var(--text-2)}
.section-more{margin-top:32px}
.split{display:grid;gap:clamp(40px,6vw,72px);align-items:center}
.split-top{align-items:start}
@media (min-width:960px){.split{grid-template-columns:1fr 1fr}}

/* Hero */
.hero{border-bottom:1px solid var(--line);background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px;background-position:-1px -1px}
.hero-grid{display:grid;gap:40px;align-items:center;padding-block:clamp(40px,7vw,88px) clamp(32px,5vw,56px)}
@media (min-width:960px){.hero-grid{grid-template-columns:1.1fr .9fr}}
.hero-copy{display:flex;flex-direction:column;gap:28px}
.hero-lead{font-size:clamp(17px,1.5vw,19px);line-height:1.6;color:var(--text-2);max-width:600px}
.chips{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.chips li{border:1px solid var(--line);border-radius:99px;padding:6px 12px}

.blueprint{position:relative;max-width:560px;width:100%;justify-self:center}
.blueprint svg{width:100%}
.blueprint path,.blueprint rect{fill:none;stroke-linecap:round}
.bp-back path{stroke:#4A5058;stroke-width:1}
.bp-depth path{stroke:#5D646C;stroke-width:1}
.bp-front path{stroke:var(--text);stroke-width:2}
.bp-diag path{stroke:var(--accent);stroke-width:2}
.bp-deck{fill:var(--accent);fill-opacity:.18}
.bp-nodes circle{fill:var(--bg);stroke:var(--text);stroke-width:2}
.bp-base path{stroke:#8A9098;stroke-width:1}
.bp-base rect{fill:#8A9098;stroke:none}
.bp-dim path{stroke:var(--muted);stroke-width:1}
.bp-dim text,.bp-callout text{fill:var(--muted);font-family:var(--mono);font-size:13px}
.bp-callout text{fill:var(--text)}
.bp-callout path,.bp-callout circle{fill:none;stroke:var(--accent);stroke-width:1.5}
.spec-card{position:absolute;left:0;top:0;display:flex;flex-direction:column;background:var(--spec-bg);border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-family:var(--mono);font-size:11px;line-height:1.8;color:var(--muted);min-width:190px}
.spec-card strong{color:var(--text);letter-spacing:.1em}
.spec-card span{display:flex;gap:6px}
.spec-card i{flex:1;border-bottom:1px dotted var(--line-2);margin-bottom:6px}
@media (max-width:520px){.spec-card{display:none}}
.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.2s cubic-bezier(.6,0,.2,1) forwards}
.d2{animation-delay:.4s}.d3{animation-delay:.9s}
.fade{opacity:0;animation:fade .6s ease-out 1.6s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}

.stats{border-top:1px solid var(--line)}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.stats-grid>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:24px 16px 24px 0;border-bottom:1px solid var(--line)}
.stats-grid>div:nth-child(odd){border-right:1px solid var(--line)}
.stats-grid>div:nth-child(even){padding-left:16px}
.stats-grid dd{font-family:var(--display);font-weight:700;font-size:clamp(22px,3.4vw,44px);line-height:1.05}
.stats-grid dt{font-size:14px;color:var(--muted)}
@media (min-width:900px){
  .stats-grid{grid-template-columns:1fr 1fr 1fr 1.6fr}
  .stats-grid dd{white-space:nowrap}
  .stats-grid>div{border-bottom:0;padding:32px 24px}
  .stats-grid>div:first-child{padding-left:0}
  .stats-grid>div:not(:last-child){border-right:1px solid var(--line)}
}

.clients{border-bottom:1px solid var(--line);background:var(--bg-2)}
.clients-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 40px;padding-block:22px}
.clients-row ul{display:flex;flex-wrap:wrap;gap:8px 40px}
.clients-row li{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.8vw,22px);color:var(--text-2)}

/* Cards */
.card{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);padding:clamp(22px,3vw,32px)}
.section-light .card,.card-white{background:#fff;border:1px solid var(--paper-line);color:var(--ink);border-radius:var(--radius)}

.bento{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.bento .card{display:flex;flex-direction:column;gap:14px;transition:transform .25s ease}
.bento .card:hover{transform:translateY(-4px)}
.bento-main{background:var(--ink)!important;color:var(--text)!important;border-color:var(--ink)!important;justify-content:space-between;gap:40px!important;min-height:380px}
.bento-main p{color:var(--text-2)}
.bento-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.bento-icon .icon{width:40px;height:40px}
.bento-main .bento-icon .icon{width:56px;height:56px}
.bento-item p{color:var(--ink-2);font-size:16px}
.bento-accent{background:var(--accent)!important;border-color:var(--accent)!important}
.bento-accent p{color:#2B2D30}
.bento-cta{background:transparent!important;border:1px dashed var(--ink-2)!important;text-decoration:none;justify-content:space-between}
.bento-cta:hover{border-style:solid!important}
.bento-cta .link-arrow{align-self:flex-start}
@media (min-width:1000px){
  .bento{grid-template-columns:repeat(4,minmax(0,1fr))}
  .bento-main{grid-row:span 2}
  .bento-main .h-card-lg{hyphens:auto;overflow-wrap:break-word;font-size:24px}
}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;font-family:var(--mono);font-size:12px}
.tags li{background:#23272B;padding:6px 12px;border-radius:99px}

/* Allround */
.rosette{position:relative;aspect-ratio:1;width:100%;max-width:520px;margin:0 auto;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}
.rosette-svg{width:84%}
.r-plate{fill:var(--panel);stroke:var(--text);stroke-width:3}
.r-core{fill:var(--bg);stroke:var(--text);stroke-width:3}
.r-small rect{fill:var(--bg);stroke:var(--muted);stroke-width:2.5}
.r-large path{fill:var(--bg);stroke:var(--accent);stroke-width:3}
.r-axis{stroke:#4A5058;stroke-width:1.5;stroke-dasharray:4 4;fill:none}
.rosette-svg{transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.rosette:hover .rosette-svg{transform:rotate(45deg)}
.rosette-tag{position:absolute;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:11px}
.rosette-tag-a{right:0;top:8%;color:var(--accent-text)}
.rosette-tag-b{left:0;bottom:10%;color:var(--text-2)}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.features>div{background:var(--bg-2);padding:22px;display:flex;flex-direction:column;gap:6px}
.features dt{font-weight:700;font-size:17px}
.features dd{color:var(--muted);font-size:15px;line-height:1.5}

/* Process */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:32px 0}
.steps li{position:relative;border-top:2px solid var(--line);padding:26px 24px 0 0;display:flex;flex-direction:column;gap:10px}
.steps li::before{content:'';position:absolute;top:-7px;left:0;width:12px;height:12px;background:var(--accent)}
.steps strong{font-size:20px;line-height:1.25}
.steps .muted{font-size:15px;line-height:1.55}

/* Calculator */
.calc{display:grid;gap:16px}
.calc>*{min-width:0}
@media (min-width:960px){.calc{grid-template-columns:1fr 1fr}}
.calc-inputs{padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:28px}
.calc-types{border:0;margin:0;padding:0;min-width:0}
.calc-types legend{font-weight:700;margin-bottom:12px;padding:0}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{position:relative}
.pill input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pill span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--ink);border-radius:99px;font-weight:600;font-size:15px}
.pill input:checked+span{background:var(--ink);color:var(--text)}
.pill input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.range{display:flex;flex-direction:column;gap:6px}
.range-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}
.range output{font-family:var(--mono);font-size:22px;font-weight:600}
.range input{width:100%;height:32px;accent-color:var(--ink);cursor:pointer}
.muted-dark{color:var(--ink-2)}
.calc-result{background:var(--ink);color:var(--text);border-radius:var(--radius);padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:24px}
.calc-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.calc-figures div{display:flex;flex-direction:column;gap:4px}
.calc-figures strong{font-family:var(--display);font-weight:700;font-size:clamp(22px,3vw,36px);line-height:1;white-space:nowrap}
.calc-figures div>span{font-size:13px;color:var(--muted)}
.calc-preview{flex:1;min-height:220px;border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;align-items:flex-end;background-image:linear-gradient(#1C1F23 1px,transparent 1px),linear-gradient(90deg,#1C1F23 1px,transparent 1px);background-size:20px 20px}
.calc-grid{display:grid;gap:3px;width:100%}
.calc-grid i{display:block;border:1.5px solid var(--text);min-height:6px}
.calc-grid i.deck{background:rgba(255,152,0,.22)}

/* Posts */
.cards-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
@media (min-width:1000px){.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.post-card{padding:0;overflow:hidden;transition:transform .25s ease,border-color .25s ease}
.post-card:hover{transform:translateY(-4px);border-color:var(--line-2)}
.post-card-link{display:flex;flex-direction:column;height:100%;text-decoration:none}
.post-card-media{aspect-ratio:16/10;background:var(--panel);overflow:hidden}
.post-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post-card:hover .post-card-media img{transform:scale(1.03)}
.media-placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--placeholder);background-color:var(--panel);background-image:repeating-linear-gradient(135deg,rgba(242,241,236,.05) 0 2px,transparent 2px 14px)}
.media-placeholder .icon{width:56px;height:56px}
.post-card-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px}
.post-card-meta{color:var(--accent-text);font-size:12px}
.post-card-title{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.3}
.post-card-excerpt{color:var(--muted);font-size:15px;line-height:1.55}
.post-card-wide .post-card-title{font-size:clamp(20px,2.2vw,26px)}
.news-list{border-top:1px solid var(--line)}
.news-row{display:grid;grid-template-columns:1fr auto;gap:6px 24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}
.news-row-title{font-family:var(--display);font-weight:600;font-size:clamp(17px,2vw,22px);grid-column:1}
.news-row time{grid-column:1}
.news-row .icon{grid-row:1/span 2;grid-column:2;color:var(--accent-text);transition:transform .2s ease}
.news-row:hover .icon{transform:translateX(4px)}
@media (min-width:760px){.news-row{grid-template-columns:200px 1fr auto}.news-row time,.news-row-title{grid-column:auto}.news-row .icon{grid-row:auto;grid-column:auto}}
.pager{display:flex;gap:12px;justify-content:center;margin-top:40px}

.post-head{display:flex;flex-direction:column;gap:20px;margin-bottom:40px}
.post-facts{display:flex;flex-wrap:wrap;gap:8px 32px}
.post-facts div{display:flex;gap:8px}
.post-facts dt{color:var(--muted)}
.post-facts dd{color:var(--accent-text)}
.post-cover{margin-bottom:48px}
.post-cover img{width:100%;border-radius:var(--radius);max-height:720px;object-fit:cover}
.prose{display:flex;flex-direction:column;gap:18px;font-size:17px;line-height:1.7}
.prose-dark{color:var(--text-2);font-size:18px}
.prose h2,.prose h3{font-family:var(--display);color:var(--text);font-weight:600;line-height:1.25;margin-top:16px}
.prose h2{font-size:24px}.prose h3{font-size:20px}
.prose ul{display:flex;flex-direction:column;gap:8px;padding-left:0}
.prose li{position:relative;padding-left:26px}
.prose li::before{content:'';position:absolute;left:4px;top:.7em;width:8px;height:8px;background:var(--accent)}
.prose a{color:var(--accent-text)}
.gallery-title{margin:56px 0 24px}
.gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}

/* Certs */
.cert-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}
.cert-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}

/* Certificate card: reveal on scroll, 3D tilt and a light sweep on hover. */
.cert-card{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-decoration:none;overflow:hidden;isolation:isolate;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease;will-change:transform}
.cert-card:hover,.cert-card:focus-visible{border-color:var(--accent);box-shadow:0 18px 40px -18px rgba(255,152,0,.35)}
.cert-shine{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .3s ease;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,255,255,.12),transparent 45%)}
.cert-card:hover .cert-shine{opacity:1}
.cert-card::after{content:'';position:absolute;top:0;left:-100%;width:40%;height:100%;z-index:3;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.14),transparent);transform:skewX(-18deg)}
.cert-card:hover::after{animation:sweep .9s ease}
@keyframes sweep{to{left:130%}}
.cert-thumb{display:block;aspect-ratio:4/3;background:var(--bg-2);border-bottom:1px solid var(--line);overflow:hidden;padding:18px}
.cert-thumb img{width:100%;height:100%;object-fit:contain;transition:transform .5s ease}
.cert-card:hover .cert-thumb img,.cert-card:hover .cert-paper{transform:scale(1.04) rotate(-.6deg)}
.cert-body{display:flex;flex-direction:column;gap:8px;padding:22px 24px 24px;flex:1}
.cert-seal{display:inline-flex;width:44px;height:44px}
.cert-seal .icon{width:100%;height:100%}
.cert-name{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.25;color:var(--text)}
.cert-issuer{color:var(--muted);font-size:12px}
.cert-text{color:var(--text-2);font-size:15px;line-height:1.55}
.cert-more{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:8px;font-weight:650;font-size:15px;color:var(--accent-text)}
.cert-more .icon{width:18px;height:18px;transition:transform .25s ease}
.cert-card:hover .cert-more .icon{transform:translateX(5px)}
.cert-card-compact .cert-body{padding:20px}
.cert-card-compact .cert-seal{width:32px;height:32px}
.cert-card-compact .cert-name{font-size:16px}
.cert-card-compact .cert-more{font-size:13px}

/* Shield draws itself in when the card appears. */
.cert-seal .icon path{stroke-dasharray:80;stroke-dashoffset:0}
.js .reveal .cert-seal .icon path{stroke-dashoffset:80}
.js .reveal.in .cert-seal .icon path{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s cubic-bezier(.6,0,.2,1) calc(var(--i,0) * 90ms + .25s)}

/* Empty certificate until a scan is uploaded. */
.cert-paper{position:relative;display:flex;flex-direction:column;gap:9px;height:100%;max-width:300px;margin:0 auto;padding:18px 20px;background:#F6F3EC;border-radius:4px;box-shadow:0 10px 30px -12px rgba(0,0,0,.6),inset 0 0 0 6px #F6F3EC,inset 0 0 0 7px #D8CBB0;transition:transform .5s ease;aspect-ratio:1/1.3}
.cert-thumb .cert-paper{aspect-ratio:auto}
.cp-head{height:6px;width:40%;margin:4px auto 6px;background:var(--accent);border-radius:3px}
.cp-title{font-family:var(--display);font-weight:700;font-size:13px;color:#2D2926;text-align:center;line-height:1.3}
.cp-line{height:5px;background:#DDD5C4;border-radius:3px}
.cp-short{width:60%}
.cp-stamp{position:absolute;right:16px;bottom:14px;width:30%;max-width:70px;fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.9;transform:rotate(-12deg)}
.cp-sign{position:absolute;left:20px;bottom:24px;width:34%;height:2px;background:#2D2926;opacity:.5}
.cert-card:hover .cp-stamp{animation:stamp .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes stamp{0%{transform:rotate(-12deg) scale(1.6);opacity:0}100%{transform:rotate(-12deg) scale(1);opacity:.9}}

/* Scroll reveal (only when JavaScript runs, so content is never hidden without it). */
.js .reveal{opacity:0;translate:0 28px}
.js .reveal.in{opacity:1;translate:0 0;transition:opacity .7s ease calc(var(--i,0) * 90ms),translate .7s cubic-bezier(.2,.8,.2,1) calc(var(--i,0) * 90ms),transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease}

/* Certificate viewer */
.cert-dialog{width:min(1040px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);overflow:auto}
.cert-dialog::backdrop{background:rgba(5,6,7,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cert-dialog[open]{animation:dlg-in .45s cubic-bezier(.2,.9,.25,1.05)}
.cert-dialog[open]::backdrop{animation:fade-in .3s ease}
@keyframes dlg-in{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.cd-inner{position:relative;display:grid;gap:0}
@media (min-width:860px){.cd-inner{grid-template-columns:1.25fr 1fr}}
.cd-close-form{position:absolute;top:12px;right:12px;z-index:2;margin:0}
.cd-close{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--bg);color:var(--text);cursor:pointer;transition:transform .2s ease,border-color .2s ease}
.cd-close:hover{transform:rotate(90deg);border-color:var(--accent)}
.cd-media{display:grid;place-items:center;min-height:320px;padding:28px;background:var(--bg-2)}
.cd-img{max-width:100%;max-height:70dvh;object-fit:contain;border-radius:6px;box-shadow:0 20px 50px -20px rgba(0,0,0,.7)}
.cd-placeholder{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}
.cert-paper-lg{width:min(320px,100%);height:auto}
.cert-paper-lg .cp-title{font-size:16px}
.cert-dialog[open] .cert-paper-lg .cp-stamp{animation:stamp .7s cubic-bezier(.2,1.6,.4,1) .35s both}
.cd-soon{color:var(--muted)}
.cd-info{display:flex;flex-direction:column;gap:14px;padding:clamp(24px,4vw,44px)}
.cd-info .h-card-lg{margin:0;padding-right:40px}
.cd-text{color:var(--text-2)}
.cert-dialog[open] .cd-info>*{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}
.cert-dialog[open] .cd-info>:nth-child(2){animation-delay:.06s}
.cert-dialog[open] .cd-info>:nth-child(3){animation-delay:.12s}
.cert-dialog[open] .cd-info>:nth-child(4){animation-delay:.18s}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
body:has(.cert-dialog[open]){overflow:hidden}

/* Services page */
.toc{display:flex;flex-wrap:wrap;gap:10px}
.toc a{border:1px solid var(--line-2);border-radius:99px;padding:10px 16px;text-decoration:none;font-weight:600;font-size:15px}
.toc a:hover{border-color:var(--accent)}
.service-num{font-size:15px}
.checklist{display:flex;flex-direction:column;gap:14px;font-size:17px}
.checklist li{display:flex;gap:12px;align-items:flex-start}
.checklist li .icon{color:var(--accent-text);margin-top:3px}
.checklist-icon .icon{width:44px!important;height:44px!important;margin-bottom:8px}
.faq{display:flex;flex-direction:column;margin-top:32px;border-top:1px solid var(--paper-line)}
.faq details{border-bottom:1px solid var(--paper-line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-weight:700;font-size:18px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:4px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:24px}
.faq details[open] summary::after{content:'−'}
.faq p{padding-bottom:22px;color:var(--ink-2)}

/* Careers */
.career-lists{display:grid;gap:16px}
.ticks{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.ticks li{display:flex;gap:12px;align-items:flex-start;color:var(--text-2)}
.ticks .icon{color:var(--accent-text);margin-top:3px}
.band-accent{background:var(--accent);color:var(--accent-ink)}
.band-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-block:44px}
.band-title{font-family:var(--display);font-weight:700;font-size:clamp(22px,2.8vw,34px);line-height:1.15;max-width:860px;margin-top:8px}

/* Contact */
.info-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.info-list>div{display:grid;grid-template-columns:1fr;gap:4px;padding:18px 0;border-bottom:1px solid var(--line)}
@media (min-width:560px){.info-list>div{grid-template-columns:170px 1fr}}
.info-list dt{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.info-list dt .icon{width:18px;height:18px}
.info-list dd{font-size:17px}
.info-list dd a.small{color:var(--muted)}
.big-link{font-family:var(--display);font-weight:600;font-size:clamp(17px,2vw,22px);text-decoration:none;word-break:break-word}
.big-link:hover{color:var(--accent-text)}
.team{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));margin-top:32px}
.team-card{display:flex;flex-direction:column;gap:8px}
.team-card strong{font-family:var(--display);font-weight:600;font-size:18px}
.team-card a{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:36px;color:var(--text-2);word-break:break-all}
.team-card a:hover{color:var(--accent-text)}
.team-card .icon{width:18px;height:18px}
.company-line{margin-top:24px}

.form-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:18px}
.form-grid{display:grid;gap:18px}
@media (min-width:560px){.form-grid{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px;font-weight:650}
.req{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:8px;min-height:50px;padding:0 14px;font-size:16px;color:var(--text)}
.field textarea{padding:12px 14px;resize:vertical;min-height:130px}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(255,152,0,.25)}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--text-2);cursor:pointer}
.check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--accent);flex:none}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-note{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:8px;font-weight:600}
.form-ok{background:rgba(255,152,0,.14);color:var(--text)}
.form-ok .icon{color:var(--accent-text)}
.form-err{background:rgba(255,106,26,.16);color:var(--err-text)}

/* Footer */
.site-footer{border-top:1px solid var(--line);background:var(--footer-bg);padding-top:64px;padding-bottom:96px}
.footer-grid{display:grid;gap:40px}
@media (min-width:900px){.footer-grid{grid-template-columns:1.3fr 1fr 1.3fr}}
.footer-brand{display:flex;flex-direction:column;gap:16px;color:var(--text-2)}
.footer-brand .logo-svg{height:56px}

/* Logo: assembles itself on the first page of a visit, re-assembles on hover. */
.logo-svg path{transform-box:fill-box;transform-origin:center}
.intro .site-header .lg-top{animation:lg-top .9s cubic-bezier(.2,.9,.2,1) .1s both}
.intro .site-header .lg-bottom{animation:lg-bottom .9s cubic-bezier(.2,.9,.2,1) .25s both}
.intro .site-header .lg-tri{animation:lg-tri .8s cubic-bezier(.3,1.5,.5,1) .7s both}
.intro .site-header .lg-word{animation:lg-word .9s cubic-bezier(.6,0,.2,1) .95s both}
@keyframes lg-top{from{opacity:0;transform:translate(70%,-70%)}to{opacity:1;transform:none}}
@keyframes lg-bottom{from{opacity:0;transform:translate(-70%,70%)}to{opacity:1;transform:none}}
@keyframes lg-tri{0%{opacity:0;transform:translateY(-160%) rotate(-180deg) scale(.4)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes lg-word{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.logo:hover .lg-top{animation:lg-hover-top .7s cubic-bezier(.3,1.4,.5,1)}
.logo:hover .lg-bottom{animation:lg-hover-bottom .7s cubic-bezier(.3,1.4,.5,1)}
.logo:hover .lg-tri{animation:lg-hover-tri .8s cubic-bezier(.3,1.4,.5,1)}
@keyframes lg-hover-top{40%{transform:translate(14%,-14%)}}
@keyframes lg-hover-bottom{40%{transform:translate(-14%,14%)}}
@keyframes lg-hover-tri{40%{transform:translate(18%,-18%) rotate(90deg)}}

/* Announcement bar (turned on in the admin panel) */
.announce{background:var(--accent);color:var(--accent-ink);font-weight:650;font-size:15px}
.announce-row{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding-block:6px}
.announce-text{display:inline-flex;align-items:center;gap:8px;text-decoration:none;text-align:center;line-height:1.35}
a.announce-text:hover{text-decoration:underline}
.announce-text .icon{width:18px;height:18px;flex:none}
.announce-close{display:none;place-items:center;width:36px;height:36px;margin-left:auto;border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;flex:none}
.js .announce-close{display:grid}
.announce-close:hover{background:rgba(0,0,0,.1)}
.js .announce-row{justify-content:space-between}
.announce-hidden .announce{display:none}

/* Light / dark switch */
.theme-toggle{display:none;place-items:center;width:42px;height:42px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;overflow:hidden;position:relative}
.js .theme-toggle{display:grid}
.theme-toggle:hover{border-color:var(--accent)}
.theme-toggle svg{grid-area:1/1;width:20px;height:20px;transition:transform .5s cubic-bezier(.3,1.4,.5,1),opacity .3s ease}
.theme-toggle .i-sun{transform:translateY(130%) rotate(-90deg);opacity:0}
[data-theme="light"] .theme-toggle .i-sun{transform:none;opacity:1}
[data-theme="light"] .theme-toggle .i-moon{transform:translateY(-130%) rotate(90deg);opacity:0}
html.theme-anim,html.theme-anim *{transition:background-color .35s ease,color .35s ease,border-color .35s ease,fill .35s ease,stroke .35s ease!important}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;align-content:start}
.footer-nav a{text-decoration:none;color:var(--text-2);padding:8px 0}
.footer-nav a:hover{color:var(--text)}
.footer-contact{display:flex;flex-direction:column;gap:8px}
.footer-contact a{text-decoration:none}
.footer-phone{font-family:var(--display);font-weight:700;font-size:22px}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:56px;font-size:14px;color:var(--muted)}
.footer-bottom a{color:var(--muted)}
.footer-word{flex-basis:100%;font-family:var(--display);font-weight:800;font-size:clamp(44px,11vw,150px);line-height:.9;color:var(--footer-word);letter-spacing:-.02em;user-select:none}

/* Mobile action bar */
.mobile-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;background:var(--bar-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px}
.mobile-bar .btn{min-height:50px;padding:0 10px;font-size:15px;white-space:normal;text-align:center;line-height:1.2}
@media (min-width:1100px){.mobile-bar{display:none}.site-footer{padding-bottom:48px}}

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