/* DevGhost UA — тема Grav · токени з брендбука v1.2 */
:root{
  --dg-ink:#111111; --dg-paper:#ffffff; --dg-static:#9a9da3; --dg-fog:#f4f3f0; --dg-signal:#2f6bff;
  --dg-line:#e5e4e0; --dg-muted:#5c5e62;
  --dg-display:'Space Grotesk',Arial,sans-serif; --dg-mono:'JetBrains Mono',ui-monospace,monospace;
  --dg-wrap:1200px; --dg-pad:clamp(20px,4vw,48px); --dg-radius:10px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--dg-paper);color:var(--dg-ink);font:400 16px/1.6 var(--dg-display);text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}
a{color:var(--dg-ink);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--dg-signal)}
::selection{background:var(--dg-ink);color:var(--dg-paper)}
:focus-visible{outline:2px solid var(--dg-signal);outline-offset:3px}
.dg-wrap{max-width:var(--dg-wrap);margin:0 auto;padding:0 var(--dg-pad)}
.dg-mono{font-family:var(--dg-mono)}
.dg-caps{font-family:var(--dg-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dg-muted)}
.dg-skip{position:absolute;left:-999px;top:8px;background:var(--dg-ink);color:#fff;padding:8px 14px;z-index:100}
.dg-skip:focus{left:8px}

/* ── знак ── */
.dg-mark{height:var(--h,40px);width:auto}
.dg-eye{transform-box:fill-box;transform-origin:center}
.dg-blink .dg-eye{animation:dg-blink 6s infinite}
@keyframes dg-blink{0%,95%,100%{transform:scaleY(1)}97%,98.5%{transform:scaleY(.1)}}

/* ── хедер ── */
.dg-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s,padding .2s}
.dg-header.is-scrolled{border-bottom-color:var(--dg-line)}
.dg-header__in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:68px}
.dg-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.dg-logo__name{font-weight:700;font-size:15px;letter-spacing:.08em}
.dg-logo__tag{font-family:var(--dg-mono);font-size:9px;letter-spacing:.24em;color:var(--dg-static)}
.dg-nav{display:flex;gap:26px;font-family:var(--dg-mono);font-size:12.5px}
.dg-nav a{text-decoration:none;color:var(--dg-ink);padding:6px 0;border-bottom:2px solid transparent}
.dg-nav a:hover{color:var(--dg-ink);border-bottom-color:var(--dg-static)}
.dg-nav a.is-active{border-bottom-color:var(--dg-ink)}
.dg-nav a::before{content:'/';color:var(--dg-static)}
.dg-burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.dg-burger span{display:block;width:22px;height:2px;background:var(--dg-ink);margin:5px 0;transition:transform .2s}
@media (max-width:760px){
  .dg-burger{display:block}
  .dg-nav{position:fixed;inset:68px 0 auto 0;flex-direction:column;gap:0;background:var(--dg-paper);border-bottom:1px solid var(--dg-line);padding:8px var(--dg-pad) 20px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.2s}
  .dg-nav a{padding:14px 0;border-bottom:1px solid var(--dg-line)}
  .dg-nav.is-open{transform:none;opacity:1;pointer-events:auto}
}

/* ── кнопки ── */
.dg-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border:2px solid var(--dg-ink);border-radius:999px;background:var(--dg-ink);color:var(--dg-paper);font:700 14px/1 var(--dg-display);text-decoration:none;cursor:pointer;transition:background .15s,color .15s}
.dg-btn:hover{background:var(--dg-paper);color:var(--dg-ink)}
.dg-btn--ghost{background:transparent;color:var(--dg-ink);font-family:var(--dg-mono);font-weight:400;font-size:13px}
.dg-btn--ghost:hover{background:var(--dg-ink);color:var(--dg-paper)}
.dg-btn__arrow{transition:transform .2s}
.dg-btn:hover .dg-btn__arrow{transform:translateX(4px)}

/* ── головна ── */
.dg-hero{padding:clamp(56px,10vw,120px) 0 clamp(40px,7vw,80px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:end}
.dg-hero__title{font-size:clamp(40px,7vw,88px);line-height:.95;letter-spacing:-.025em;font-weight:700;margin:18px 0 0;text-wrap:balance}
.dg-hero__lead{font-family:var(--dg-mono);font-size:14px;line-height:1.8;color:var(--dg-muted);max-width:420px;margin:0 0 26px}
.dg-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
.dg-band{background:var(--dg-ink);color:var(--dg-paper);padding:clamp(40px,6vw,70px) 0;overflow:hidden;position:relative}
.dg-band__code{display:flex;justify-content:center;align-items:flex-end;gap:5px;height:120px}
.dg-band__code i{display:block;height:100%;background:var(--dg-paper)}
.dg-band__ghost{height:82%!important;width:42px;border-radius:21px 21px 0 0;position:relative}
.dg-band__ghost b{position:absolute;top:26px;width:8px;height:15px;border-radius:4px;background:var(--dg-ink)}
.dg-band__ghost b:first-child{left:9px}.dg-band__ghost b:last-child{right:9px}
.dg-scan{position:absolute;top:0;bottom:0;width:2px;left:0;background:var(--dg-signal);box-shadow:0 0 14px var(--dg-signal);animation:dg-scan 5s ease-in-out infinite}
@keyframes dg-scan{0%{transform:translateX(0);opacity:0}10%,45%{opacity:1}55%,100%{transform:translateX(100vw);opacity:0}}
.dg-section{padding:clamp(56px,8vw,100px) 0}
.dg-section--fog{background:var(--dg-fog)}
.dg-section__head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;border-bottom:2px solid var(--dg-ink);padding-bottom:14px;margin-bottom:8px}
.dg-section__title{font-size:clamp(24px,3vw,34px);margin:0;letter-spacing:-.01em}
.dg-flagship{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.dg-flagship__name{font-size:clamp(32px,5vw,56px);line-height:1.05;letter-spacing:-.02em;margin:14px 0 18px}
.dg-flagship__text{font-size:16px;color:var(--dg-muted);max-width:480px;margin:0 0 26px}
.dg-flagship__media{aspect-ratio:4/3;background:var(--dg-ink);border-radius:var(--dg-radius);overflow:hidden;display:flex;align-items:center;justify-content:center}
.dg-flagship__media img{width:100%;height:100%;object-fit:cover}
.dg-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--dg-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.dg-status::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--dg-static)}
.dg-status--live::before{background:#1db954}.dg-status--beta::before{background:var(--dg-signal)}.dg-status--dev::before{background:#e8a33a;animation:dg-pulse 1.6s infinite}
@keyframes dg-pulse{50%{opacity:.3}}

/* ── рядки-списки (проєкти, статті) ── */
.dg-rows{list-style:none;margin:0;padding:0}
.dg-row{border-bottom:1px solid var(--dg-line)}
.dg-row>a{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:24px;align-items:baseline;padding:22px 0;text-decoration:none;color:var(--dg-ink)}
.dg-row__meta{font-family:var(--dg-mono);font-size:12px;color:var(--dg-static)}
.dg-row__title{font-size:clamp(19px,2.2vw,24px);font-weight:700;line-height:1.25;margin:0}
.dg-row__sum{font-size:14px;color:var(--dg-muted);margin:6px 0 0}
.dg-row__go{font-family:var(--dg-mono);transition:transform .2s}
.dg-row>a:hover .dg-row__go{transform:translateX(6px)}
.dg-row>a:hover .dg-row__title{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
@media (max-width:640px){.dg-row>a{grid-template-columns:minmax(0,1fr) auto}.dg-row__meta{grid-column:1/-1}}

/* ── картки проєктів ── */
.dg-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px;margin-top:28px}
.dg-card{display:flex;flex-direction:column;border:1px solid var(--dg-line);border-radius:var(--dg-radius);overflow:hidden;text-decoration:none;color:var(--dg-ink);transition:transform .2s,box-shadow .2s;background:var(--dg-paper)}
.dg-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(17,17,17,.08);color:var(--dg-ink)}
.dg-card__cover{aspect-ratio:16/9;background:var(--accent,var(--dg-ink));display:flex;align-items:center;justify-content:center;overflow:hidden}
.dg-card__cover img{width:100%;height:100%;object-fit:cover}
.dg-card__body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.dg-card__title{font-size:21px;margin:0}
.dg-card__text{font-size:14px;color:var(--dg-muted);margin:0;flex:1}
.dg-card__foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--dg-mono);font-size:11px;color:var(--dg-static)}

/* ── сторінка проєкту ── */
.dg-project-hero{background:var(--accent,var(--dg-ink));color:var(--on-accent,#fff);padding:clamp(64px,10vw,120px) 0 clamp(48px,7vw,80px)}
.dg-project-hero .dg-status,.dg-project-hero .dg-caps{color:inherit;opacity:.85}
.dg-project-hero__title{font-size:clamp(40px,7vw,84px);line-height:1;letter-spacing:-.025em;margin:16px 0 18px}
.dg-project-hero__tag{font-size:clamp(17px,2vw,21px);max-width:620px;opacity:.9;margin:0 0 28px}
.dg-project-hero .dg-btn{background:var(--on-accent,#fff);color:var(--accent,var(--dg-ink));border-color:var(--on-accent,#fff)}
.dg-project-hero .dg-btn:hover{background:transparent;color:var(--on-accent,#fff)}
.dg-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0;border-top:2px solid var(--dg-ink)}
.dg-feature{padding:26px 24px 26px 0;border-bottom:1px solid var(--dg-line)}
.dg-feature__n{font-family:var(--dg-mono);font-size:12px;color:var(--dg-static)}
.dg-feature__t{font-size:19px;margin:8px 0 6px}
.dg-feature__d{font-size:14px;color:var(--dg-muted);margin:0}

/* ── стаття ── */
.dg-article{padding:clamp(48px,8vw,96px) 0}
.dg-article__head{max-width:760px;margin:0 auto 40px;padding:0 var(--dg-pad)}
.dg-article__title{font-size:clamp(34px,5vw,56px);line-height:1.08;letter-spacing:-.02em;margin:16px 0 18px;text-wrap:balance}
.dg-article__meta{display:flex;flex-wrap:wrap;gap:18px;font-family:var(--dg-mono);font-size:12px;color:var(--dg-static)}
.dg-article__cover{max-width:1000px;margin:0 auto 48px;padding:0 var(--dg-pad)}
.dg-article__cover img{width:100%;border-radius:var(--dg-radius)}
.dg-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.dg-tag{font-family:var(--dg-mono);font-size:11px;border:1px solid var(--dg-line);border-radius:999px;padding:4px 11px;text-decoration:none;color:var(--dg-ink)}
.dg-tag:hover{border-color:var(--dg-ink);color:var(--dg-ink)}
.dg-pager{max-width:760px;margin:56px auto 0;padding:24px var(--dg-pad) 0;border-top:2px solid var(--dg-ink);display:grid;grid-template-columns:1fr 1fr;gap:20px}
.dg-pager a{text-decoration:none;display:flex;flex-direction:column;gap:6px}
.dg-pager a:last-child{text-align:right}
.dg-pager strong{font-size:17px;line-height:1.3}

/* ── типографіка контенту ── */
.dg-prose{max-width:760px;margin:0 auto;padding:0 var(--dg-pad);font-size:17px;line-height:1.75}
.dg-prose>*+*{margin-top:1.15em}
.dg-prose h2{font-size:28px;line-height:1.2;margin-top:2em;letter-spacing:-.01em}
.dg-prose h3{font-size:21px;margin-top:1.7em}
.dg-prose p,.dg-prose li{text-wrap:pretty}
.dg-prose img{border-radius:8px;margin-left:auto;margin-right:auto}
.dg-prose blockquote{margin-left:0;padding:4px 0 4px 22px;border-left:3px solid var(--dg-ink);font-size:20px;line-height:1.5}
.dg-prose code{font-family:var(--dg-mono);font-size:.86em;background:var(--dg-fog);padding:.12em .4em;border-radius:4px}
.dg-prose pre{background:var(--dg-ink);color:#e6e6e6;padding:20px 22px;border-radius:var(--dg-radius);overflow-x:auto;font-size:14px;line-height:1.7}
.dg-prose pre code{background:none;padding:0;color:inherit;font-size:inherit}
.dg-prose table{width:100%;border-collapse:collapse;font-size:15px}
.dg-prose th{background:var(--dg-ink);color:#fff;text-align:left;font-weight:500;font-family:var(--dg-mono);font-size:12px;letter-spacing:.06em}
.dg-prose th,.dg-prose td{padding:10px 12px;border-bottom:1px solid var(--dg-line)}
.dg-prose tr:nth-child(even) td{background:var(--dg-fog)}
.dg-prose hr{border:0;height:24px;background:url(../images/pattern-tile.svg) center/auto 24px repeat-x;opacity:.8}

/* ── пагінація (плагін pagination) ── */
.pagination{display:flex;gap:6px;list-style:none;padding:0;margin:40px 0 0;font-family:var(--dg-mono);font-size:13px}
.pagination a,.pagination span{display:block;min-width:38px;padding:8px 10px;text-align:center;border:1px solid var(--dg-line);border-radius:6px;text-decoration:none}
.pagination .active span,.pagination .active a{background:var(--dg-ink);color:#fff;border-color:var(--dg-ink)}

/* ── контакт / форми ── */
.dg-contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);padding:clamp(56px,9vw,110px) 0}
.dg-contact__title{font-size:clamp(36px,5.5vw,64px);line-height:1.02;letter-spacing:-.02em;margin:14px 0 22px}
.dg-contact__links{list-style:none;margin:28px 0 0;padding:0;font-family:var(--dg-mono);font-size:14px}
.dg-contact__links li{padding:12px 0;border-bottom:1px solid var(--dg-line);display:flex;justify-content:space-between;gap:16px}
.form-field{margin-bottom:18px}
.form-label label,.form-field label{display:block;font-family:var(--dg-mono);font-size:12px;letter-spacing:.08em;margin-bottom:6px;color:var(--dg-muted)}
.form-field input:not([type=checkbox]):not([type=radio]),.form-field textarea,.form-field select{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--dg-line);border-radius:8px;background:var(--dg-paper);color:var(--dg-ink)}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--dg-ink)}
.form-field textarea{min-height:150px;resize:vertical}
.buttons .button,button.button,.form-buttons button{display:inline-flex;padding:12px 22px;border:2px solid var(--dg-ink);border-radius:999px;background:var(--dg-ink);color:#fff;font:700 14px/1 var(--dg-display);cursor:pointer}
.notices{padding:14px 18px;border-radius:8px;background:var(--dg-fog);font-family:var(--dg-mono);font-size:13px;margin-bottom:18px}
.notices.green,.notices.success{border-left:3px solid #1db954}.notices.red,.notices.error{border-left:3px solid #d33}

/* ── 404 ── */
.dg-404{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:60px var(--dg-pad)}
.dg-404__code{display:flex;align-items:center;gap:.08em;font-size:clamp(110px,22vw,240px);font-weight:700;line-height:1;letter-spacing:-.04em}
.dg-404__ghost{height:.78em;width:auto;margin-top:.06em}
.dg-404__ghost .dg-body{transition:transform .35s ease}
.dg-404:hover .dg-404__ghost .dg-body{transform:translateY(-6px)}

/* ── футер ── */
.dg-footer{background:var(--dg-ink);color:var(--dg-paper);padding:56px 0 30px;margin-top:0}
.dg-footer a{color:var(--dg-paper);text-decoration:none}
.dg-footer a:hover{color:var(--dg-static)}
.dg-footer__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:30px;align-items:flex-end;padding-bottom:36px;border-bottom:1px solid #2a2a2d}
.dg-footer__note{font-size:clamp(24px,3.5vw,38px);font-weight:700;letter-spacing:-.01em;margin:18px 0 0;max-width:560px}
.dg-footer__links{display:flex;flex-wrap:wrap;gap:22px;font-family:var(--dg-mono);font-size:13px}
.dg-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-family:var(--dg-mono);font-size:11px;letter-spacing:.14em;color:var(--dg-static)}

/* ── поява при скролі ── */
.dg-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.dg-reveal.is-in{opacity:1;transform:none}

@media (max-width:860px){
  .dg-hero,.dg-flagship,.dg-contact{grid-template-columns:minmax(0,1fr)}
  .dg-hero{align-items:start}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .dg-reveal{opacity:1;transform:none}
  .dg-scan{display:none}
}

/* ═══════════ SHEET — окремий стиль розділу Excel / діловодство ═══════════
   Мова таблиці: сітка клітинок, адреси A1, оливковий акцент, моно-шрифт. */
.theme-sheet{--sh-bg:#f7f6f0;--sh-grid:#dcdacd;--sh-head:#e9e7dc;--sh-acc:#4b5320;--sh-acc-2:#6b7a2a;--sh-ink:#1c1d17;background:var(--sh-bg);color:var(--sh-ink)}
.theme-sheet .dg-header{background:rgba(247,246,240,.94)}
.theme-sheet a:hover{color:var(--sh-acc)}
.theme-sheet .dg-btn{background:var(--sh-acc);border-color:var(--sh-acc);border-radius:4px}
.theme-sheet .dg-btn:hover{background:transparent;color:var(--sh-acc)}
.sh-formula{display:flex;align-items:stretch;border:1px solid var(--sh-grid);background:#fff;font-family:var(--dg-mono);font-size:13px;margin:28px 0 0}
.sh-formula__cell{padding:9px 14px;border-right:1px solid var(--sh-grid);background:var(--sh-head);min-width:70px;text-align:center;font-weight:700}
.sh-formula__fx{padding:9px 12px;border-right:1px solid var(--sh-grid);color:var(--sh-acc);font-style:italic}
.sh-formula__val{padding:9px 14px;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sh-hero{padding:clamp(48px,8vw,96px) 0 clamp(32px,5vw,56px)}
.sh-hero__title{font-size:clamp(36px,6vw,72px);line-height:1;letter-spacing:-.02em;margin:14px 0 18px;font-weight:700}
.sh-hero__lead{font-size:17px;max-width:620px;color:#4a4b42;margin:0}
.sh-badge{display:inline-flex;gap:8px;align-items:center;font-family:var(--dg-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sh-acc)}
.sh-badge::before{content:'';width:10px;height:10px;background:var(--sh-acc)}
.sh-grid{position:relative;background:#fff;border:1px solid var(--sh-grid);overflow-x:auto}
.sh-cols{display:grid;grid-template-columns:44px repeat(8,minmax(90px,1fr));position:sticky;top:0;background:var(--sh-head);font-family:var(--dg-mono);font-size:11px;color:#6d6e62;border-bottom:1px solid var(--sh-grid)}
.sh-cols span{padding:5px 0;text-align:center;border-right:1px solid var(--sh-grid)}
.sh-body{display:grid;grid-template-columns:44px minmax(0,1fr)}
.sh-rows{background:var(--sh-head);border-right:1px solid var(--sh-grid);font-family:var(--dg-mono);font-size:11px;color:#6d6e62;background-image:linear-gradient(var(--sh-grid) 1px,transparent 1px);background-size:100% 32px}
.sh-rows span{display:block;height:32px;line-height:32px;text-align:center}
.sh-content{padding:28px clamp(18px,3vw,40px) 40px;background-image:linear-gradient(var(--sh-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sh-grid) 1px,transparent 1px);background-size:100% 32px,12.5% 100%;background-color:#fff}
.sh-content .dg-prose{padding:0;max-width:780px;margin:0;background:rgba(255,255,255,.93);box-shadow:0 0 0 14px rgba(255,255,255,.93)}
.theme-sheet .dg-prose th{background:var(--sh-acc)}
.theme-sheet .dg-prose tr:nth-child(even) td{background:#f1f0e6}
.theme-sheet .dg-prose blockquote{border-left-color:var(--sh-acc)}
.theme-sheet .dg-prose code{background:#ecebdf}
.theme-sheet .dg-prose pre{background:#23251b}
.sh-downloads{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin-top:22px}
.sh-file{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;background:#fff;border:1px solid var(--sh-grid);border-radius:4px;text-decoration:none;color:var(--sh-ink);transition:border-color .15s}
.sh-file:hover{border-color:var(--sh-acc);color:var(--sh-ink)}
.sh-file__ext{height:44px;display:flex;align-items:center;justify-content:center;background:var(--sh-acc);color:#fff;font-family:var(--dg-mono);font-size:11px;font-weight:700;border-radius:3px}
.sh-file__name{font-weight:700;font-size:15px;line-height:1.3}
.sh-file__meta{font-family:var(--dg-mono);font-size:11px;color:#77786b}
.sh-file__dl{font-family:var(--dg-mono);font-size:18px;color:var(--sh-acc)}
.sh-tabs{display:flex;gap:2px;margin-top:0;font-family:var(--dg-mono);font-size:12px;overflow-x:auto}
.sh-tabs a{padding:8px 16px;background:var(--sh-head);border:1px solid var(--sh-grid);border-top:0;text-decoration:none;white-space:nowrap;color:#55564b}
.sh-tabs a.is-active{background:#fff;color:var(--sh-acc);font-weight:700;box-shadow:inset 0 2px 0 var(--sh-acc)}
.theme-sheet .dg-footer{background:#1c1d17}
