/* DGCloak landing — Material 3, light by default with a dark option; seed: brand blue #005FB8 (the colour of all project icons).
   Layout: top app bar → hero container with the three app icons → three filled cards → footer. */
@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/roboto-latin-400-normal.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:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/roboto-latin-500-normal.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:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/roboto-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/roboto-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

:root{
  /* Light by default (owner 2026-11-11); the visitor can switch to dark — choice kept in localStorage (assets/theme.js). */
  --primary:#005FB8; --on-primary:#FFFFFF;
  --primary-container:#D5E3FF; --on-primary-container:#001B3C;
  --secondary-container:#DAE2F9; --on-secondary-container:#131C2B;
  --tertiary-container:#C8F0C4; --on-tertiary-container:#032106;
  --surface:#F9F9FF; --surface-low:#F3F3FA; --surface-mid:#EDEDF4; --surface-high:#E7E8EE;
  --on-surface:#191C20; --on-surface-var:#43474E; --outline:#73777F; --outline-var:#C3C6CF;
  --shadow:0 1px 2px rgba(0,0,0,.18), 0 6px 18px rgba(0,27,60,.16);
  --font:"Roboto",system-ui,"Segoe UI",Arial,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --primary:#A7C8FF; --on-primary:#003061;
  --primary-container:#00468C; --on-primary-container:#D5E3FF;
  --secondary-container:#3E4759; --on-secondary-container:#DAE2F9;
  --tertiary-container:#1F4E21; --on-tertiary-container:#C8F0C4;
  --surface:#111318; --surface-low:#191C20; --surface-mid:#1D2024; --surface-high:#282A2F;
  --on-surface:#E2E2E9; --on-surface-var:#C3C6CF; --outline:#8D9199; --outline-var:#43474E;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 22px rgba(0,0,0,.45);
  color-scheme:dark;
}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--surface); color:var(--on-surface); font:400 16px/24px var(--font); letter-spacing:.15px; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
img{max-width:100%; display:block}
a{color:var(--primary)}
:focus-visible{outline:3px solid var(--primary); outline-offset:2px; border-radius:8px}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px}
.skip{position:absolute; left:16px; top:-48px; z-index:10; background:var(--primary); color:var(--on-primary); padding:8px 16px; border-radius:20px; text-decoration:none; font-weight:500}
.skip:focus{top:12px}

/* top app bar */
.appbar{display:flex; align-items:center; justify-content:space-between; gap:16px; height:64px}
.brand{display:flex; align-items:center; gap:12px; white-space:nowrap; color:var(--on-surface); text-decoration:none; font:400 22px/28px var(--font); letter-spacing:0}
.brand img{border-radius:8px}
.seg{display:inline-flex; border:1px solid var(--outline); border-radius:20px; overflow:hidden}
.seg a{display:inline-flex; align-items:center; gap:6px; height:40px; width:76px; justify-content:center; padding:0 8px; color:var(--on-surface); text-decoration:none; font:500 14px/20px var(--font); letter-spacing:.1px}
.seg a + a{border-left:1px solid var(--outline)}
.seg a[aria-current="page"]{background:var(--secondary-container); color:var(--on-secondary-container)}
.seg a:not([aria-current]):hover{background:var(--surface-high)}
.seg a:focus-visible{outline-offset:-3px; border-radius:20px}
.seg svg{width:18px; height:18px; display:none}
.seg a[aria-current="page"] svg{display:block}

.actions{display:flex; align-items:center; gap:8px}
.iconbtn{display:none; width:40px; height:40px; border-radius:20px; border:0; background:transparent; color:var(--on-surface-var); align-items:center; justify-content:center; cursor:pointer; padding:0}
.js .iconbtn{display:inline-flex}
.iconbtn:hover{background:var(--surface-high)}
.iconbtn svg{width:22px; height:22px}
.iconbtn .sun{display:none}
:root[data-theme="dark"] .iconbtn .moon{display:none}
:root[data-theme="dark"] .iconbtn .sun{display:block}
/* both languages take the same space: the other-language twin is invisible but sized */
.dual{display:inline-grid}
.dual.block{display:grid}
.dual > span{grid-area:1/1}
.dual .ghost{visibility:hidden}

/* hero */
.hero{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:32px; align-items:center; background:var(--surface-low); border-radius:28px; padding:48px 48px 48px 56px; margin-top:8px}
.chip{display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px 0 8px; border-radius:8px; border:1px solid var(--outline-var); font:500 14px/20px var(--font); letter-spacing:.1px; color:var(--on-surface-var); white-space:nowrap}
.chip svg{width:18px; height:18px; flex:none}
.chip.primary{background:var(--primary-container); color:var(--on-primary-container); border-color:transparent}
.chip.tonal{background:var(--secondary-container); color:var(--on-secondary-container); border-color:transparent}
.chip.green{background:var(--tertiary-container); color:var(--on-tertiary-container); border-color:transparent}
h1{font:400 57px/64px var(--font); letter-spacing:-.25px; margin:20px 0 12px; text-wrap:balance}
.lead{font:400 22px/30px var(--font); letter-spacing:0; color:var(--on-surface-var); margin:0; max-width:32ch}
.art{position:relative; height:220px}
.art img{position:absolute; width:132px; height:132px; border-radius:30px; box-shadow:var(--shadow)}
/* Svetovid in front (centre); OneBrainCell and IPMI FanCurve tuck under it by the same amount on both sides */
.art .i1{left:9%; top:46px; transform:rotate(-9deg); z-index:1}
.art .i2{left:36%; top:6px; z-index:2}
.art .i3{left:62%; top:52px; transform:rotate(9deg); z-index:1}

/* projects */
.projects{margin:40px 0 0}
.projects h2{font:500 16px/24px var(--font); letter-spacing:.15px; color:var(--on-surface-var); margin:0 0 12px 4px}
.cards{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.card{background:var(--surface-mid); border-radius:24px; padding:24px; display:flex; flex-direction:column; gap:14px; min-width:0}
.card img{width:56px; height:56px}
.card h3{font:400 22px/28px var(--font); margin:4px 0 0}
.card p{margin:0; color:var(--on-surface-var); font:400 14px/20px var(--font); letter-spacing:.25px; flex:1}
.chips{display:flex; flex-wrap:wrap; gap:8px}

/* footer */
.foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; padding:32px 0 40px; color:var(--on-surface-var); font:400 14px/20px var(--font)}
.foot .contact{display:inline-flex; align-items:center; gap:4px; flex-wrap:wrap}
.textbtn{display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 12px 0 8px; border-radius:20px; color:var(--primary); text-decoration:none; font:500 14px/20px var(--font); letter-spacing:.1px}
.textbtn:hover{background:var(--surface-high)}
.textbtn svg{width:18px; height:18px}
.foot .k{color:var(--on-surface-var)}

@media (max-width:900px){
  .hero{grid-template-columns:1fr; padding:36px 32px 28px}
  .art{height:170px; max-width:420px; width:100%; justify-self:center}
  .art img{width:104px; height:104px; border-radius:24px}
  .art .i1{left:14%; top:40px} .art .i3{left:57%; top:44px}
}
@media (max-width:760px){
  .cards{grid-template-columns:1fr}
}
@media (max-width:480px){
  .wrap{padding:0 16px}
  .hero{padding:28px 20px 20px; border-radius:24px}
  h1{font-size:45px; line-height:52px; margin-top:16px}
  .lead{font-size:18px; line-height:26px}
  .art{height:140px}
  .art img{width:84px; height:84px; border-radius:20px}
  .art .i1{left:14%; top:36px} .art .i2{left:37%} .art .i3{left:60%; top:38px}
  .brand{font-size:18px; gap:10px}
  .seg a{width:64px; padding:0 6px; gap:4px}
  .actions{gap:4px}
}
