

@font-face{ font-family:'Archivo'; src:url('/assets/fonts/archivo.woff2') format('woff2'); font-weight:100 900; font-display:swap; }

:root{
  --mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;
  --sans: 'Archivo', system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --r: 3px;
  --sidebar-w: 232px;
  --topbar-h: 56px;
}

:root[data-theme="dark"]{
  --bg:#0b0f16; --bg-2:#0e131c; --panel:#141b26; --panel-2:#1b2433; --chrome:#0e131c; --acc-soft:#243a5e;
  --line:#26303f; --line-2:#354150;
  --txt:#eef3fa; --txt-dim:#a4b4c6; --txt-faint:#6d7c8e;
  --accent:#5b9bff; --accent-dim:#243a5e; --warn:#f0b429; --warn-txt:#f0b429;
  --accent-txt:#6ea2ff; --accent-line:#2f5aa8;
  --ok:#46c08a; --ok-dim:#163a2c; --err:#f0726f; --err-dim:#3d1f22;
  --grid:rgba(255,255,255,.022); --shadow:0 1px 0 rgba(255,255,255,.03);
  
  --bg-grid-a:transparent; --bg-grid-b:transparent;
}
:root[data-theme="light"]{
  
  
  --bg:#f9fafb; --bg-2:#edeff2; --panel:#ffffff; --panel-2:#fafafb; --chrome:#ffffff; --acc-soft:#e4ecfa;
  --line:#ececef; --line-2:#dcdce1;
  --txt:#17181b; --txt-dim:#585860; --txt-faint:#8a8a90;
  --accent:#0151f9; --accent-dim:#cde0ff; --warn:#b67400; --warn-txt:#8f5c00;
  --accent-txt:#0140c8; --accent-line:#7aa2ff;
  --ok:#1c7541; --ok-dim:#d9f0e2; --err:#b4362a; --err-dim:#f7dcd8;
  --grid:rgba(0,0,0,.025); --shadow:0 1px 2px rgba(16,32,43,.04);
  
  --bg-grid-a:transparent; --bg-grid-b:transparent;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }

html,body{ overflow-x: clip; }
body{
  background-color:var(--bg); color:var(--txt);
  font-family:var(--sans); font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
  
  background-image:
    linear-gradient(var(--bg-grid-b) 1px, transparent 1px),
    linear-gradient(90deg, var(--bg-grid-b) 1px, transparent 1px),
    linear-gradient(var(--bg-grid-a) 1px, transparent 1px),
    linear-gradient(90deg, var(--bg-grid-a) 1px, transparent 1px);
  background-size:112px 112px, 112px 112px, 16px 16px, 16px 16px;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; }
.mono{ font-family:var(--mono); }
.eyebrow{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--txt-faint);
}

:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

@media (hover: none){
  a.brand, a.topbar-brand{ -webkit-tap-highlight-color:transparent; }
  a.brand:focus, a.brand:focus-visible,
  a.topbar-brand:focus, a.topbar-brand:focus-visible{ outline:none; }
}
.search input:focus-visible,
.field input:focus-visible,
.field textarea:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

.cta-btn.solid:focus-visible,
.pill.on:focus-visible,
.tool-stage .stage-launch .sl-open:focus-visible{
  
  outline:2px solid transparent; outline-offset:2px;
  box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent);
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
}

@media (prefers-reduced-motion: no-preference){
  html{ scroll-behavior:smooth; }
}
html{ scroll-padding-top:calc(var(--topbar-h) + 14px); }

.app{ display:grid; grid-template-columns:var(--sidebar-w) 1fr; min-height:100vh; }

@media (min-width:921px){
  .app{ background:linear-gradient(90deg, var(--chrome) 0, var(--chrome) calc(var(--sidebar-w) - 1px), var(--line) calc(var(--sidebar-w) - 1px), var(--line) var(--sidebar-w), transparent var(--sidebar-w)); }
}

.sidebar{
  border-right:1px solid var(--line); background:var(--chrome);
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
}
.brand{
  display:flex; align-items:center; gap:10px; padding:12px 16px;
  border-bottom:1px solid var(--line); height:var(--topbar-h);
  text-decoration:none; color:inherit;
}
a.brand{ cursor:pointer; }
a.brand:hover .brand-logo{ opacity:.82; }
.brand-logo{ transition:opacity .15s ease; }
.brand-mark{
  width:24px; height:24px; border:1px solid var(--accent); border-radius:var(--r);
  display:grid; place-items:center; color:var(--accent);
  font-family:var(--mono); font-weight:700; font-size:13px; flex:0 0 auto;
}
.brand-mark-img{ width:26px; height:26px; border-radius:6px; flex:0 0 auto; display:block; }
.brand-name{ font-weight:600; letter-spacing:-.01em; }
.brand-name b{ color:var(--accent); font-weight:600; }
.brand-name span{ color:var(--txt-faint); font-size:11px; display:block; font-family:var(--mono); letter-spacing:.08em; }

.brand-logo{ height:30px; width:auto; max-width:100%; display:block; }
.brand-logo-dark{ display:none; }
[data-theme="dark"] .brand-logo-light{ display:none; }
[data-theme="dark"] .brand-logo-dark{ display:block; }
.brand-sub{ color:var(--txt-faint); font-size:11px; font-family:var(--mono); letter-spacing:.08em; align-self:center; }

.nav{ padding:14px 10px; display:flex; flex-direction:column; gap:2px; }
.nav-section{ padding:14px 10px 6px; }

.nav-item + .nav-section{ margin-top:12px; padding-top:14px; border-top:1px solid var(--line); }
.nav-item{
  display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:var(--r);
  color:var(--txt-dim); font-size:14.5px; border:1px solid transparent; position:relative;
}
.nav-item:hover{ background:var(--panel); color:var(--txt); }
.nav-item.is-active{ background:var(--acc-soft); color:var(--txt); border-color:transparent; font-weight:600; }
.nav-item.is-active::before{
  content:""; position:absolute; left:0; top:0; bottom:0;
  width:3px; background:var(--accent); border-radius:var(--r) 0 0 var(--r);
}
.nav-item .ico{ width:16px; height:16px; flex:0 0 auto; stroke:currentColor; fill:none; stroke-width:1.7; }
.nav-item .count{ margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--txt-faint); }

.nav-group{ position:relative; }
.nav-toggle{
  position:absolute; top:6px; right:7px; width:24px; height:24px; padding:0;
  display:flex; align-items:center; justify-content:center;
  border:0; background:transparent; color:var(--txt-faint); cursor:pointer; border-radius:6px;
}
.nav-toggle:hover{ color:var(--accent); background:var(--panel); }
.nav-toggle svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s ease; }
.nav-group.open .nav-toggle svg{ transform:rotate(180deg); }
.nav-sub{ display:none; flex-direction:column; gap:1px; margin:2px 0 4px; padding-left:14px; }
.nav-group.open .nav-sub{ display:flex; }
.nav-subitem{
  display:flex; align-items:center; gap:8px; padding:7px 16px 7px 10px; border-radius:var(--r);
  color:var(--txt-dim); font-size:12.5px; text-decoration:none; border:1px solid transparent;
}

.nav-subitem .ico{ width:15px; height:15px; flex:0 0 auto; stroke:currentColor; fill:none; stroke-width:1.6; opacity:.7; }
.nav-subitem > span{ min-width:0; line-height:1.3; overflow-wrap:break-word; }
.nav-subitem:hover{ background:var(--panel); color:var(--txt); }
.nav-subitem:hover .ico, .nav-subitem.is-active .ico{ opacity:1; }

.nav-subitem.is-active{ color:var(--accent); font-weight:600; }
@media (prefers-reduced-motion: reduce){ .nav-toggle svg{ transition:none; } }

.sidebar-foot{
  margin-top:auto; border-top:1px solid var(--line); padding:14px 18px;
  font-family:var(--mono); font-size:11px; color:var(--txt-faint);
  display:flex; flex-direction:column; gap:6px;
}
.statusline{ display:flex; align-items:center; gap:8px; }
.dot{ width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px var(--accent-dim); }
.dot.warn{ background:var(--warn); box-shadow:none; }

.main{ display:flex; flex-direction:column; min-width:0; }
.topbar{
  height:var(--topbar-h); flex-shrink:0; border-bottom:1px solid var(--line); background:var(--chrome);
  display:flex; align-items:center; gap:16px; padding:0 22px; position:sticky; top:0; z-index:20;
}
.crumb{ font-family:var(--sans); font-size:13px; color:var(--txt-dim); letter-spacing:0; }
.crumb a{ color:var(--txt-dim); text-decoration:none; }
.crumb a:hover{ color:var(--accent); }
.crumb .sep{ color:var(--txt-faint); margin:0 5px; }
.crumb b{ color:var(--txt); font-weight:600; text-transform:capitalize; }
.topbar-spacer{ flex:1; }
.topbar-brand{ display:none; align-items:center; }

.clock{ display:none; font-family:var(--mono); font-size:12px; color:var(--txt-dim); letter-spacing:.04em;
  padding:5px 10px; border:1px solid var(--line); border-radius:var(--r); }

.seg{ display:inline-flex; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; }
.seg button{
  font-family:var(--mono); font-size:11px; letter-spacing:.06em; background:transparent;
  color:var(--txt-dim); border:0; padding:6px 10px; cursor:pointer;
}
.seg button.on{ background:var(--txt); color:var(--panel); font-weight:700; }
.seg button+button{ border-left:1px solid var(--line-2); }

.icon-btn{
  width:32px; height:32px; border:1px solid var(--line-2); border-radius:var(--r);
  background:transparent; color:var(--txt-dim); cursor:pointer; display:grid; place-items:center;
}
.icon-btn:hover{ color:var(--txt); border-color:var(--accent); }
.icon-btn .ico{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.7; }

.cta-btn{
  display:inline-flex; align-items:center; gap:8px; border:1px solid var(--accent);
  color:var(--bg); border-radius:var(--r); padding:7px 13px; font-size:13px;
  font-weight:600; cursor:pointer; background:var(--accent);
}
.cta-btn:hover{ filter:brightness(1.06); }
.cta-btn.solid{ background:var(--accent); color:var(--bg); }
.cta-btn.solid:hover{ filter:brightness(1.08); }
.cta-btn .ico{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.8; }

.content{ padding:24px 22px 0 32px; max-width:none; width:100%;
          display:flex; flex-direction:column; flex:1 0 auto; }   
.content.wide{ max-width:none; }

@media (min-width:1720px){
  .content, .content.wide{ max-width:1560px; }
}

.page-head{ margin:4px 0 20px; }
.page-title{
  font-size:clamp(22px,2.4vw,30px); font-weight:600; letter-spacing:-.02em;
  margin:8px 0 6px; line-height:1.15;
}
.page-title .accent{ color:var(--accent); }
.page-sub{ color:var(--txt-dim); max-width:64ch; }

.metabar{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
  border-block:1px solid var(--line); padding:11px 0; margin-bottom:22px;
}
.metabar .chip{
  font-family:var(--mono); font-size:11.5px; color:var(--txt-dim);
  display:inline-flex; align-items:center; gap:7px;
}
.metabar .chip b{ color:var(--txt); font-weight:600; }
.metabar .chip .ico{ width:14px; height:14px; stroke:var(--accent); fill:none; stroke-width:1.7; }
.metabar .chip+.chip{ padding-left:10px; border-left:1px solid var(--line); }
.metabar .grow{ flex:1; }

.grid{ display:grid; gap:16px; }
.grid.cols-2{ grid-template-columns:1.55fr 1fr; align-items:start; }
.panel{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r);
  display:flex; flex-direction:column; overflow:hidden; box-shadow:var(--shadow);
}
.panel-head{ display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid var(--line); }
.panel-head h2{ font-size:15px; font-weight:600; margin:0; letter-spacing:-.01em; }
.panel-head .ico{ width:15px; height:15px; stroke:var(--accent); fill:none; stroke-width:1.7; }
.panel-head .more{ margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--txt-dim); display:inline-flex; align-items:center; gap:5px; }
.panel-head .more:hover{ color:var(--accent); }
.panel-head .more .ico{ width:13px; height:13px; stroke:currentColor; }
.panel-body{ padding:16px; }

.toolbar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.pills{ display:flex; flex-wrap:wrap; gap:7px; }
.pill{
  font-family:var(--mono); font-size:11px; letter-spacing:.04em; border:1px solid var(--line-2);
  border-radius:99px; padding:5px 11px; color:var(--txt-dim); cursor:pointer; background:transparent;
}
.pill:hover{ color:var(--txt); border-color:var(--txt-faint); }
.pill.on{ color:var(--bg); background:var(--accent); border-color:var(--accent); }
.result-count{ font-family:var(--mono); font-size:11px; color:var(--txt-faint); margin-left:auto; }

.search{ display:flex; align-items:center; gap:8px; border:1px solid var(--line-2); border-radius:var(--r); padding:0 10px; background:var(--panel); }
.search .ico{ width:15px; height:15px; stroke:var(--txt-faint); fill:none; stroke-width:1.7; }
.search input{ border:0; background:transparent; color:var(--txt); font-family:var(--mono); font-size:12px; padding:7px 0; width:160px; outline:none; }

.cards{ display:grid; gap:12px; }
.cards.c3{ grid-template-columns:repeat(3,1fr); }
.cards.c4{ grid-template-columns:repeat(4,1fr); }
.card{
  border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  background:var(--panel-2); transition:border-color .12s, transform .12s; display:block;
}
.card:hover{ border-color:var(--accent); transform:translateY(-2px); }
.card-media{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--bg-2); }
.card-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.card-tag{
  position:absolute; top:8px; left:8px; font-family:var(--mono); font-size:9.5px;
  letter-spacing:.08em; text-transform:uppercase; background:rgba(8,11,15,.78);
  color:#e7edf3; border:1px solid rgba(255,255,255,.12); padding:3px 7px; border-radius:3px;
}
.card-count{
  position:absolute; bottom:8px; right:8px; font-family:var(--mono); font-size:9.5px;
  background:rgba(8,11,15,.7); color:#e7edf3; padding:2px 6px; border-radius:3px;
}
.card-body{ padding:10px 11px 12px; }
.card-title{ font-size:12.5px; font-weight:500; line-height:1.35; }
.card-meta{ font-family:var(--mono); font-size:10.5px; color:var(--txt-faint); margin-top:5px; }

.tool-row{ display:flex; align-items:center; gap:13px; padding:12px 16px; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.tool-row:last-child{ border-bottom:0; }
.tool-row:hover{ background:var(--panel-2); }
.tool-row:hover .tool-thumb{ border-color:var(--accent); }

.tool-thumb{ position:relative; width:128px; height:128px; flex:0 0 auto; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; background:#fff; transition:border-color .12s; }
.tool-thumb-view{ position:absolute; inset:0; overflow:hidden; }
.tool-thumb-view iframe{ position:absolute; top:0; left:0; width:500%; height:500%; transform:scale(.2); transform-origin:top left; border:0; pointer-events:none; background:#fff; }

@media (hover: none){
  .wd-thumb::after,
  .tool-thumb-view::after{ content:""; position:absolute; inset:0; z-index:3; }
}
.tool-thumb-empty{ position:absolute; inset:0; display:grid; place-items:center; color:var(--accent);
  background:radial-gradient(120% 120% at 70% 20%, var(--accent-dim), var(--panel-2)); }
.tool-thumb-empty .ico{ width:30px; height:30px; stroke:currentColor; fill:none; stroke-width:1.4; }
.tool-ico{ width:34px; height:34px; flex:0 0 auto; border:1px solid var(--line-2); border-radius:var(--r); display:grid; place-items:center; color:var(--accent); }
.tool-ico .ico{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:1.7; }
.tool-main{ min-width:0; flex:1; }
.tool-name{ font-size:13px; font-weight:600; line-height:1.3; }
.tool-desc{ font-family:var(--mono); font-size:11px; color:var(--txt-faint); margin-top:3px; line-height:1.35; }
.tool-row .badge{ margin-top:8px; }
.tool-status{ margin-left:auto; display:flex; align-items:center; gap:7px; font-family:var(--mono); font-size:10.5px; color:var(--txt-dim); }

.contact{
  margin-top:32px; border:1px solid var(--line); border-radius:var(--r);
  background:linear-gradient(180deg, var(--panel), var(--panel-2));
  padding:20px 22px; display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.contact h3{ margin:0 0 4px; font-size:16px; }
.contact p{ margin:0; color:var(--txt-dim); font-size:13px; }
.contact .contact-actions{ margin-left:auto; display:flex; gap:10px; }

.foot{
  margin-top:auto; padding-top:20px; border-top:1px solid var(--line);
  display:flex; flex-direction:column; align-items:center; gap:11px; text-align:center;
  font-family:var(--sans); font-size:13px; color:var(--txt-faint);
}
.foot-legal{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:7px 22px; }
.foot-legal a{ color:var(--txt-dim); }
.foot a:hover{ color:var(--accent); }
.foot-copy{ color:var(--txt-faint); letter-spacing:.02em; }

.foot{
  margin-left:-32px; margin-right:-22px;
  flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:6px 22px; font-size:12.5px;
  padding:13px 22px calc(13px + env(safe-area-inset-bottom, 0px));
  background:var(--chrome); border-top:1px solid var(--line);
}

.content > *:nth-last-child(2){ margin-bottom:52px; }
@media (max-width:920px){ .content > *:nth-last-child(2){ margin-bottom:36px; } }

.back-link{
  display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:11.5px;
  color:var(--txt-dim); margin-bottom:16px;
}
.back-link:hover{ color:var(--accent); }
.back-link .ico{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:1.8; }

.back-link.legal-back{ display:none; }

.back-link.back-btn{
  font-family:var(--sans); font-size:15px; font-weight:600; color:var(--txt);
  padding:10px 16px; border:1px solid var(--line-2); border-radius:var(--r);
  background:var(--panel); box-shadow:var(--shadow); margin-bottom:22px;
  
  align-self:flex-start; width:fit-content;
}
.back-link.back-btn:hover{ border-color:var(--accent); color:var(--accent-txt); }
.back-link.back-btn .ico{ width:17px; height:17px; stroke-width:1.9; }
@media (max-width:920px){ .back-link.legal-back{ display:inline-flex; } }

.detail{ display:grid; grid-template-columns:1.5fr 1fr; gap:24px; align-items:start; }

.gallery .main-fig{
  margin:0; border:1px solid var(--line-2); border-radius:9px; overflow:hidden; background:var(--panel-2);
  box-shadow:0 12px 34px rgba(10,20,40,.12), 0 2px 7px rgba(10,20,40,.07);
}
:root[data-theme="dark"] .gallery .main-fig{ box-shadow:0 14px 40px rgba(0,0,0,.5), 0 2px 8px rgba(0,0,0,.4); }
.gallery .vfig-bar{
  display:flex; align-items:center; gap:8px; padding:9px 12px; border-bottom:1px solid var(--line);
  background:var(--panel-2); font-family:var(--mono); font-size:11px; color:var(--txt-faint);
}
.gallery .vfig-bar .lights{ display:flex; gap:5px; flex:0 0 auto; }
.gallery .vfig-bar .lights i{ width:9px; height:9px; border-radius:50%; display:block; }
.gallery .vfig-bar .lights i:nth-child(1){ background:#e0655b; }
.gallery .vfig-bar .lights i:nth-child(2){ background:#e3b341; }
.gallery .vfig-bar .lights i:nth-child(3){ background:#3fb950; }
.gallery .vfig-bar .vfig-id{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gallery .vfig-bar .vfig-count{ margin-left:auto; flex:0 0 auto; }
.gallery .vfig-bar .vfig-zoom{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; padding:0; border:0; background:none; color:var(--txt-faint); cursor:pointer; border-radius:5px; }
.gallery .vfig-bar .vfig-zoom:hover{ color:var(--accent); background:var(--panel); }
.gallery .vfig-bar .vfig-zoom svg{ width:14px; height:14px; }
.gallery .vfig-img{ display:flex; align-items:center; justify-content:center; min-height:240px; background:var(--panel-2);
  padding:clamp(10px,1.6vw,20px); }
.gallery .vfig-img img{ width:auto; max-width:100%; max-height:72vh; object-fit:contain; display:block; cursor:zoom-in; border-radius:2px; }
.gallery .thumbs{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.gallery .thumb{
  width:62px; height:62px; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden;
  cursor:pointer; background:var(--panel-2); padding:0; flex:0 0 auto;
}
.gallery .thumb img{ width:100%; height:100%; object-fit:cover; }
.gallery .thumb.on{ border-color:var(--accent); }

.gallery.strip-side{ display:flex; gap:14px; align-items:flex-start; }
.gallery.strip-side .main-fig{ flex:1 1 auto; min-width:0; }
.gallery.strip-side .thumbs{ order:-1; flex:0 0 auto; flex-direction:column; flex-wrap:nowrap;
  gap:10px; margin-top:0; max-height:74vh; overflow-y:auto; overflow-x:hidden;
  scrollbar-width:thin; scrollbar-color:var(--line-2) transparent; padding-right:6px; }
.gallery.strip-side .thumb{ width:84px; height:84px; border-radius:10px; }
.gallery.strip-side.strip-right .thumbs{ order:1; padding-right:0; padding-left:6px; }
.gallery.strip-side .thumbs::-webkit-scrollbar{ width:8px; }
.gallery.strip-side .thumbs::-webkit-scrollbar-thumb{ background:var(--line-2); border-radius:8px; }
.gallery.strip-side .thumbs::-webkit-scrollbar-thumb:hover{ background:var(--txt-faint); }
.gallery.strip-side .thumbs::-webkit-scrollbar-track{ background:transparent; }
@media (max-width:720px){
  .gallery.strip-side{ display:block; }
  .gallery.strip-side .thumbs{ flex-direction:row; flex-wrap:wrap; max-height:none; overflow:visible; margin-top:10px; }
  .gallery.strip-side .thumb{ width:64px; height:64px; }
}

.detail-info .eyebrow{ display:block; margin-bottom:8px; }
.detail-info h1{ font-size:clamp(20px,2.2vw,28px); font-weight:600; letter-spacing:-.02em; margin:0 0 12px; line-height:1.18; }
.detail-info .desc{ color:var(--txt-dim); line-height:1.6; }
.rule{ border:0; border-top:1px solid var(--line); margin:20px 0; }
.detail-info h3{ font-size:12px; font-family:var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--txt-faint); margin:0 0 12px; }

.overview{ display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; margin:0; }
.overview .ov{ }
.overview dt{ font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--txt-faint); }
.overview dd{ margin:3px 0 0; font-size:13px; }

.tags{ display:flex; flex-wrap:wrap; gap:7px; }
.tag{ font-family:var(--mono); font-size:11px; border:1px solid var(--line-2); border-radius:99px; padding:4px 10px; color:var(--txt-dim); }

.demo-frame{ width:100%; border:1px solid var(--line); border-radius:var(--r); background:#fff; }

.lightbox{
  position:fixed; inset:0; z-index:100; display:none;
  align-items:center; justify-content:center; padding:48px;
  background:rgba(5,8,11,.93); backdrop-filter:blur(2px);
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:94vw; max-height:84vh; object-fit:contain; border-radius:var(--r); box-shadow:0 12px 60px rgba(0,0,0,.5); }
.lb-btn{
  position:absolute; width:42px; height:42px; border-radius:var(--r);
  border:1px solid rgba(255,255,255,.18); background:rgba(20,26,34,.6); color:#e7edf3;
  display:grid; place-items:center; cursor:pointer;
}
.lb-btn:hover{ border-color:var(--accent); color:var(--accent); }
.lb-btn .ico{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; }
.lb-close{ top:20px; right:20px; }
.lb-prev{ left:20px; top:50%; transform:translateY(-50%); }
.lb-next{ right:20px; top:50%; transform:translateY(-50%); }
.lb-caption{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  font-family:var(--mono); font-size:11.5px; color:#aeb9c5; text-align:center; max-width:80vw;
}
.lb-caption .lb-count{ color:var(--accent); margin-right:8px; }

.toolcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.tcard{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r);
  display:flex; flex-direction:column; box-shadow:var(--shadow); overflow:hidden;
  transition:border-color .12s, transform .12s; color:inherit;
}
.tcard:hover{ border-color:var(--accent); transform:translateY(-2px); }
.tcard.is-soon{ opacity:.62; }
.tcard.is-soon:hover{ transform:none; border-color:var(--line); }
.tcard-body{ padding:16px; display:flex; flex-direction:column; gap:12px; flex:1; }
.tcard-head{ display:flex; align-items:flex-start; gap:13px; }
.tcard-head .tool-ico{ width:42px; height:42px; flex:0 0 auto; }
.tcard-head .tool-ico .ico{ width:20px; height:20px; }
.tcard-head > div:not(.tool-ico){ min-width:0; flex:1; }
.tcard-name{ font-size:15px; font-weight:600; }
.tcard-cat{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--txt-faint); margin-top:3px; }

.tcard-lead{ font-size:12.5px; font-weight:500; color:var(--txt-dim); margin-top:4px; line-height:1.35; }

.tcard-chips{ margin-top:8px; }
.tcard-desc{ font-size:13px; color:var(--txt-dim); line-height:1.55; flex:1;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tcard-foot{ display:flex; align-items:center; gap:10px; }
.tcard-foot .cta{ font-family:var(--mono); font-size:11.5px; color:var(--accent); display:inline-flex; align-items:center; gap:5px; }
.tcard-foot .cta .ico{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2; }

.tprev{ position:relative; background:#fff; border-bottom:1px solid var(--line); }
.tprev-bar{ display:flex; align-items:center; gap:9px; padding:8px 11px; background:var(--panel-2);
  border-bottom:1px solid var(--line); font-family:var(--mono); font-size:10.5px; color:var(--txt-faint); }
.tprev-bar .lights{ display:flex; gap:5px; flex-shrink:0; }
.tprev-bar .lights i{ width:8px; height:8px; border-radius:50%; background:var(--line-2); display:block; }

.tprev-bar .lights i:nth-child(1){ background:#e0655b; }
.tprev-bar .lights i:nth-child(2){ background:#e3b341; }
.tprev-bar .lights i:nth-child(3){ background:#3fb950; }
.tprev-bar .url{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tprev-view{ position:relative; height:204px; overflow:hidden; background:#fff; }
.tprev-view iframe{ position:absolute; top:0; left:0; width:400%; height:400%; border:0;
  transform:scale(.25); transform-origin:top left; pointer-events:none; background:#fff; }
.tprev-img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.tprev-empty{ height:204px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:repeating-linear-gradient(45deg, var(--panel-2), var(--panel-2) 10px, var(--panel) 10px, var(--panel) 20px);
  color:var(--txt-faint); font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.tprev-empty .ico{ width:30px; height:30px; stroke:var(--txt-faint); fill:none; stroke-width:1.4; }

.tile-facade{ position:absolute; inset:0; cursor:pointer; overflow:hidden; background:#fff; }
.tile-facade > img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.tile-play{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:9px; background:rgba(12,17,28,.28); transition:background .15s ease; }
.tile-facade:hover .tile-play{ background:rgba(12,17,28,.42); }
.tile-play-btn{ width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.94);
  display:grid; place-items:center; box-shadow:0 4px 14px rgba(0,0,0,.28); }
.tile-play-btn .ico{ width:20px; height:20px; color:#141a24; fill:currentColor; stroke:none; margin-left:2px; }
.tile-play-label{ font-family:var(--mono); font-size:11px; letter-spacing:.03em; color:#fff; }

.tool-thumb .tile-play-btn{ width:34px; height:34px; box-shadow:0 3px 9px rgba(0,0,0,.3); }
.tool-thumb .tile-play-btn .ico{ width:14px; height:14px; }
.tool-thumb .tile-play-label{ display:none; }
@media (prefers-reduced-motion: reduce){ .tile-play{ transition:none; } }

.skip-link{ position:fixed; top:-64px; left:12px; z-index:200; padding:9px 16px; border-radius:var(--r);
  background:var(--accent); color:#fff; font-size:13px; font-weight:500; text-decoration:none;
  box-shadow:0 6px 22px rgba(0,0,0,.28); transition:top .16s ease; }
.skip-link:focus{ top:12px; outline:2px solid #fff; outline-offset:2px; }
main[tabindex="-1"]:focus{ outline:none; }
@media (prefers-reduced-motion: reduce){ .skip-link{ transition:none; } }

.badge{
  font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  padding:3px 8px; border-radius:99px; border:1px solid var(--line-2); color:var(--txt-dim);
  display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
}
.badge .dot{ width:6px; height:6px; box-shadow:none; }

.badge.livedemo{ color:var(--accent); border-color:var(--accent-dim); }
.badge.livedemo .dot{ background:var(--accent); }
.badge.inuse{ color:var(--ok); border-color:var(--ok-dim); }
.badge.inuse .dot{ background:var(--ok); }
.badge.request{ color:var(--warn-txt); border-color:var(--warn); }
.badge.request .dot{ background:var(--warn); }
.badge.dev{ color:var(--txt-faint); }
.badge.dev .dot{ background:var(--txt-faint); }

.tool-detail{ display:block; }
.tool-top{ display:flex; align-items:flex-start; gap:18px; margin-bottom:14px; flex-wrap:wrap; }
.tool-top .meta{ flex:1; min-width:240px; }
.tool-top .meta h1{ font-size:clamp(20px,2.2vw,28px); font-weight:600; letter-spacing:-.02em; margin:6px 0 10px; line-height:1.18; }
.tool-top .meta .eyebrow{ display:block; }
.tool-top .actions{ display:flex; gap:10px; align-items:center; flex-shrink:0; }

.tool-top .meta .tool-tagline{ font-size:clamp(16px,1.5vw,19px); font-weight:600; letter-spacing:-.01em; line-height:1.3; margin:0 0 8px; color:var(--txt); max-width:46ch; }
.tool-top .meta .tool-lede{ color:var(--txt-dim); line-height:1.62; font-size:15px; margin:2px 0 14px; max-width:74ch; }
.tool-top .meta .pp-chips{ margin-top:2px; }

.stage-empty{ padding:48px 24px; text-align:center; color:var(--txt-dim); }
.stage-empty .ico{ width:30px; height:30px; stroke:var(--txt-faint); fill:none; stroke-width:1.5; margin-bottom:10px; }

.tool-about{ margin-top:30px; }
.tool-info-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:18px; margin-top:18px; }
.tool-about .tool-info-grid{ margin-top:0; }
.tool-info-grid .col h3{ font-size:12px; font-family:var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--txt-faint); margin:0 0 10px; }
.tool-info-grid .desc{ color:var(--txt-dim); line-height:1.6; }
@media (max-width:860px){ .tool-info-grid{ grid-template-columns:1fr; } }

.pitch-bento{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:30px; }
.pitch-cell.is-wide{ grid-column:1 / -1; }
.pp-lead .panel-body{ display:flex; flex-direction:column; gap:14px; padding:18px 20px; }
.pp-lead .eyebrow{ display:block; }
.pp-lead h2{ font-size:clamp(18px,2vw,24px); font-weight:600; letter-spacing:-.02em; line-height:1.2; margin:2px 0 0; color:var(--txt); }
.pp-lead p{ color:var(--txt-dim); line-height:1.6; margin:0; max-width:72ch; }
.pp-chips{ display:flex; flex-wrap:wrap; gap:7px; margin-top:2px; }
.pp-chip{ font-family:var(--mono); font-size:11px; letter-spacing:.02em; border:1px solid var(--line-2); border-radius:99px; padding:4px 11px; color:var(--txt-dim); display:inline-flex; align-items:center; gap:6px; }
.pp-chip::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); flex:0 0 auto; }
.pp-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.pp-list li{ display:grid; grid-template-columns:18px 1fr; gap:10px; align-items:start; font-size:13.5px; color:var(--txt-dim); line-height:1.5; }
.pp-list li .ico{ width:15px; height:15px; margin-top:2px; stroke:var(--accent); fill:none; stroke-width:2.2; }
.pp-feat-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px 22px; }
.pp-feat-col h3{ font-size:11px; font-family:var(--mono); letter-spacing:.1em; text-transform:uppercase; margin:0 0 12px; display:inline-flex; align-items:center; gap:7px; }
.pp-feat-col h3 .ico{ width:13px; height:13px; fill:none; stroke-width:2; }
.pp-feat-col.is-avail h3{ color:var(--ok); }
.pp-feat-col.is-avail h3 .ico{ stroke:var(--ok); }
.pp-feat-col.is-plan h3{ color:var(--warn-txt); }
.pp-feat-col.is-plan h3 .ico{ stroke:var(--warn); }
.pp-feat-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.pp-feat-list li{ display:grid; grid-template-columns:15px 1fr; gap:8px; align-items:start; font-size:13px; color:var(--txt-dim); line-height:1.45; }
.pp-feat-list li .ico{ width:13px; height:13px; margin-top:2px; fill:none; stroke-width:2.2; }
.pp-feat-col.is-avail .pp-feat-list li .ico{ stroke:var(--ok); }
.pp-feat-col.is-plan .pp-feat-list li .ico{ stroke:var(--warn); }

.pp-feat-grid.has-gallery{ grid-template-columns:1fr 1fr 1.15fr; }
@media (max-width:860px){ .pp-feat-grid.has-gallery{ grid-template-columns:1fr; } }
.pp-feat-col.is-gallery h3{ color:var(--txt-dim); }
.pp-feat-col.is-gallery h3 .ico{ stroke:var(--txt-dim); }
.pp-gal{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.pp-gal-thumb{ display:block; padding:0; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; background:var(--panel-2); cursor:zoom-in; aspect-ratio:16 / 10; }
.pp-gal-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .18s ease; }
.pp-gal-thumb:hover img, .pp-gal-thumb:focus-visible img{ transform:scale(1.06); }

.gal-lb{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; gap:8px; background:rgba(8,11,16,.82); padding:40px; }
.gal-lb[hidden]{ display:none; }
.gal-lb-fig{ margin:0; max-width:92vw; max-height:86vh; display:flex; flex-direction:column; align-items:center; gap:12px; }
.gal-lb-fig img{ max-width:92vw; max-height:78vh; object-fit:contain; border-radius:var(--r); box-shadow:0 12px 60px rgba(0,0,0,.5); }
.gal-lb-fig figcaption{ font-family:var(--mono); font-size:12px; color:#cdd6e0; letter-spacing:.02em; }
.gal-lb-close, .gal-lb-nav{ border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; border-radius:var(--r); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.gal-lb-close:hover, .gal-lb-nav:hover{ background:rgba(255,255,255,.18); }
.gal-lb-close{ position:absolute; top:18px; right:18px; width:42px; height:42px; }
.gal-lb-close .ico{ width:20px; height:20px; stroke:#fff; fill:none; stroke-width:2; }
.gal-lb-nav{ font-size:34px; line-height:1; width:48px; height:64px; flex:0 0 auto; }
@media (max-width:620px){ .gal-lb{ padding:16px; } .gal-lb-nav{ width:40px; height:52px; font-size:28px; } }
.pp-foot{ display:flex; align-items:center; flex-wrap:wrap; column-gap:0; row-gap:16px; padding:18px 20px; }
.pp-foot p{ margin:0; color:var(--txt-dim); font-size:13px; line-height:1.55; flex:0 1 66%; min-width:240px; }
.pp-foot .cta-btn{ flex:0 0 auto; margin-inline:auto; }
@media (max-width:980px) and (min-width:861px){ .pitch-bento{ grid-template-columns:1fr; } }
@media (max-width:860px){ .pitch-bento{ grid-template-columns:1fr; } .pp-feat-grid{ grid-template-columns:1fr; } }

.pitch-bento.bento-thirds{ grid-template-columns:repeat(3,1fr); }
.pp-tool-2of3{ grid-column:span 2; grid-row:span 2; }
.pt-body{ display:flex; flex-direction:column; gap:12px; }
.pp-tool-2of3 .pt-body{ flex:1; }
.pv-frame{ position:relative; flex:1; min-height:260px; border:1px solid var(--line-2); border-radius:9px;
  overflow:hidden; background:#f6f8fc; box-shadow:0 6px 18px rgba(10,20,40,.10); }
:root[data-theme="dark"] .pv-frame{ background:#0f1620; box-shadow:0 8px 24px rgba(0,0,0,.45); }

.pv-frame .pv-img{ width:100%; height:100%; object-fit:contain; display:block; }
.pv-noimg{ width:100%; height:100%; min-height:260px; display:grid; place-items:center; background:var(--panel-2); }
.pv-noimg .ico{ width:42px; height:42px; stroke:var(--txt-faint); fill:none; stroke-width:1.4; }
.pp-tool-wide .pv-frame{ flex:none; height:min(52vh, 480px); }

.pp-tool-embed{ overflow:hidden; }
.pp-embed-newtab{ font-family:var(--mono); font-size:11.5px; color:var(--accent); text-decoration:none; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.pp-embed-newtab .ico{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:1.8; }
.pp-embed-frame{ display:block; width:100%; height:clamp(520px, 80vh, 900px); border:0; background:var(--panel); }
.pp-embed-foot{ display:flex; justify-content:flex-end; align-items:center; padding:8px 12px; border-top:1px solid var(--line); }

.pp-cta-card{ margin-top:22px; border-left:3px solid var(--accent); }

.pv-link{ display:block; text-decoration:none; cursor:pointer; }
.pv-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px;
  background:rgba(12,18,32,.42); opacity:0; transition:opacity .18s ease;
  
  pointer-events:none;
}
.pv-link:hover .pv-overlay, .pv-link:focus-visible .pv-overlay{ opacity:1; }
.pv-cta{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:14px; font-weight:600; color:#fff;
  background:var(--accent); border:1px solid var(--accent); border-radius:99px; padding:11px 22px;
  box-shadow:0 10px 24px rgba(1,81,249,.4); transform:translateY(6px); transition:transform .18s ease;
}
.pv-link:hover .pv-cta, .pv-link:focus-visible .pv-cta{ transform:none; }
.pv-cta .ico{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }

.pv-hint{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:11.5px;
  letter-spacing:.02em; color:rgba(255,255,255,.92); text-shadow:0 1px 4px rgba(0,0,0,.5); }
.pv-hint .ico{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:1.8; }

@media (hover: none){
  .pv-overlay{ opacity:1; background:rgba(12,18,32,.16); }
  .pv-cta{ transform:none; box-shadow:0 6px 16px rgba(1,81,249,.35); }
}
@media (prefers-reduced-motion: reduce){ .pv-overlay, .pv-cta{ transition:none; } }
@media (max-width:980px){
  .pitch-bento.bento-thirds{ grid-template-columns:1fr; }
  .pp-tool-2of3{ grid-column:auto; grid-row:auto; }
  
  .pp-tool-2of3 .pv-frame{ flex:none; height:auto; min-height:0; aspect-ratio:9 / 5; }
}

.tcard-usp{ list-style:none; margin:0 0 4px; padding:0; display:flex; flex-direction:column; gap:6px; }
.tcard-usp li{ display:grid; grid-template-columns:14px 1fr; gap:8px; align-items:start; font-size:12px; color:var(--txt-dim); line-height:1.4; }
.tcard-usp li .ico{ width:12px; height:12px; margin-top:2px; stroke:var(--accent); fill:none; stroke-width:2.2; }

.scroll-top{
  position:fixed; right:22px; bottom:22px; z-index:40;
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer;
  border:1px solid var(--line-2); color:var(--txt-dim);
  background:var(--panel);
  background:color-mix(in srgb, var(--panel) 60%, transparent);
  -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px);
  box-shadow:0 6px 18px rgba(10,20,40,.14);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, color .15s, border-color .15s;
}
.scroll-top.show{ opacity:.6; visibility:visible; transform:none; }
.scroll-top:hover{ opacity:1; color:var(--accent); border-color:var(--accent); }
.scroll-top:focus-visible{ opacity:1; outline:2px solid var(--accent); outline-offset:2px; }
.scroll-top svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
@media (prefers-reduced-motion: reduce){ .scroll-top{ transition:opacity .15s ease; } }
@media (max-width:920px){ .scroll-top{ right:16px; } }

.menu-btn{ display:none; }
.scrim{ display:none; }
@media (max-width:980px){
  .detail{ grid-template-columns:1fr; }
  .tool-detail{ grid-template-columns:1fr; }
  .toolcards{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:620px){
  .toolcards{ grid-template-columns:1fr; }
}
@media (max-width:920px){
  :root{ --topbar-h:64px; }              
  .app{ grid-template-columns:1fr; }
  .sidebar{ position:fixed; left:0; top:0; z-index:60; transform:translateX(-100%); transition:transform .2s; width:var(--sidebar-w); }
  .app.nav-open .sidebar{ transform:translateX(0); }
  .app.nav-open .scrim{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:50; }
  .menu-btn{ display:grid; order:99; }   
  .topbar .crumb{ display:none; }        
  .topbar .cta-btn{ display:none; }      
  .topbar-brand{ display:flex; }         
  .topbar-brand .brand-logo{ height:26px; }
  .seg{ flex-shrink:0; }                 
  .grid.cols-2{ grid-template-columns:1fr; }
  .cards.c3{ grid-template-columns:repeat(2,1fr); }
  .cards.c4{ grid-template-columns:repeat(3,1fr); }
  .clock{ display:none; }
}
@media (max-width:560px){
  .cards.c3, .cards.c4{ grid-template-columns:1fr 1fr; }
  .overview{ grid-template-columns:1fr; }
  .contact .contact-actions{ margin-left:0; width:100%; }
  .search input{ width:110px; }
}

.about-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:20px; align-items:start; }
.prose p{ color:var(--txt-dim); line-height:1.7; margin:0 0 16px; max-width:64ch; }

.about-grid .prose p{ max-width:none; font-size:15px; }   
.prose p:last-child{ margin-bottom:0; }

.prose #imp-kontakt, .prose #imp-vat{ line-height:1.5; }
.prose strong{ color:var(--txt); }
.prose h2{ font-size:15px; font-weight:600; color:var(--txt); margin:28px 0 10px; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:13.5px; font-weight:600; color:var(--txt); margin:20px 0 6px; }
.prose ul{ margin:0 0 16px; padding-left:20px; color:var(--txt-dim); line-height:1.7; max-width:64ch; }
.prose li{ margin:0 0 5px; }
.prose a{ color:var(--accent); text-decoration:none; }
.prose a:hover{ text-decoration:underline; }

.legal-meta{ font-size:15px; color:var(--txt-dim); line-height:1.7; margin:0 0 22px; }
.factlist{ margin:0; display:flex; flex-direction:column; gap:14px; }
.factlist .row{ display:flex; flex-direction:column; gap:2px; padding-bottom:13px; border-bottom:1px solid var(--line); }
.factlist .row:last-child{ border-bottom:0; padding-bottom:0; }
.factlist dt{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--txt-faint); }
.factlist dd{ margin:0; font-size:13.5px; color:var(--txt); }

.contact-grid{ display:grid; grid-template-columns:1.55fr 1fr; gap:20px; align-items:start; }
.contact-aside{ display:flex; flex-direction:column; gap:20px; }
.aside-lead{ font-size:13px; color:var(--txt-dim); line-height:1.55; margin:0 0 14px; }

.steps{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.step{ display:flex; gap:12px; align-items:flex-start; }
.step-no{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--mono); font-size:12px; font-weight:600; color:var(--accent);
  background:var(--accent-dim); border:1px solid var(--line-2); }
.step div{ display:flex; flex-direction:column; gap:2px; }
.step b{ font-size:13.5px; font-weight:600; color:var(--txt); }
.step span{ font-size:12.5px; color:var(--txt-dim); line-height:1.5; }

.hintlist{ display:flex; flex-direction:column; gap:14px; }
.hint{ display:flex; align-items:flex-start; gap:11px; font-size:13.5px; color:var(--txt-dim); }
.hint .ico{ width:18px; height:18px; flex:0 0 auto; stroke:var(--accent); fill:none; stroke-width:1.7; margin-top:1px; }
.contact-mail{ margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.contact-mail a{ font-family:var(--mono); font-size:13px; color:var(--accent); display:inline-flex; align-items:center; gap:8px; }
.contact-mail a .ico{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.7; }

.form{ display:flex; flex-direction:column; gap:15px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--txt-faint); }
.field label .opt{ color:var(--txt-faint); text-transform:none; letter-spacing:0; }
.field .req{ color:var(--accent); }
.field input, .field textarea{
  background:var(--panel-2); border:1px solid var(--line-2); border-radius:var(--r);
  color:var(--txt); font-family:var(--sans); font-size:14px; padding:10px 12px; outline:none; width:100%;
}
.field input::placeholder, .field textarea::placeholder{ color:var(--txt-faint); }
.field input:focus, .field textarea:focus{ border-color:var(--accent); }
.field textarea{ resize:vertical; min-height:170px; }

.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chips .chip{
  font-family:var(--sans); font-size:13px; color:var(--txt-dim);
  background:var(--panel-2); border:1px solid var(--line-2); border-radius:999px;
  padding:7px 14px; cursor:pointer; transition:border-color .12s, color .12s, background .12s;
}
.chips .chip:hover{ border-color:var(--accent); color:var(--txt); }
.chips .chip.is-on{ border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }

.dropzone{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:7px;
  border:1.5px dashed var(--line-2); border-radius:var(--r);
  padding:24px 18px; color:var(--txt-dim); cursor:pointer; transition:border-color .12s, background .12s;
}
.dropzone:hover{ border-color:var(--accent); }
.dropzone.is-drag{ border-color:var(--accent); background:var(--accent-dim); }
.dropzone.has-file{ border-style:solid; border-color:var(--accent); }
.dz-ico{ width:26px; height:26px; stroke:var(--accent); fill:none; stroke-width:1.6; }

.dz-text{ font-size:13.5px; color:var(--txt); font-family:var(--mono); overflow-wrap:anywhere; }
.dz-hint{ font-size:11.5px; color:var(--txt-faint); }
@media (max-width:560px){
  .dz-text{ font-size:12px; }  
}

.dropzone input[type=file]{ position:absolute; width:1px; height:1px; opacity:0; }
.dropzone:focus-within{ outline:2px solid var(--accent); outline-offset:2px; }

.dz-files{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.dz-file{ display:flex; align-items:center; gap:10px; border:1px solid var(--line); background:var(--panel-2); border-radius:var(--r); padding:6px 8px; }
.dz-thumb{ width:38px; height:38px; flex:0 0 auto; border-radius:4px; object-fit:cover; border:1px solid var(--line-2); background:var(--panel); }
.dz-thumb-ico{ display:grid; place-items:center; font-size:10px; font-weight:600; letter-spacing:.04em; color:var(--txt-dim); }
.dz-fmeta{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.dz-fmeta b{ font-size:12.5px; font-weight:600; color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dz-fmeta small{ font-family:var(--mono); font-size:10.5px; color:var(--txt-faint); }
.dz-rm{ flex:0 0 auto; width:26px; height:26px; font-size:16px; line-height:1; border:1px solid var(--line-2); border-radius:var(--r); background:var(--panel); color:var(--txt-dim); cursor:pointer; }
.dz-rm:hover{ border-color:var(--err); color:var(--err); }
.dz-warn{ border-color:var(--err); color:var(--err); font-size:12.5px; justify-content:flex-start; }

.form-status{ margin-bottom:14px; padding:11px 14px; border-radius:var(--r);
  font-size:13px; line-height:1.45; border:1px solid var(--line); }
.form-status.is-ok{  background:var(--ok-dim);  border-color:var(--ok);  color:var(--ok); }
.form-status.is-err{ background:var(--err-dim); border-color:var(--err); color:var(--err); }
.check{ display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--txt-dim); line-height:1.5; }
.check input{ margin-top:2px; accent-color:var(--accent); width:16px; height:16px; flex:0 0 auto; }
.check a, .check button.linklike{ color:var(--accent); background:none; border:0; padding:0; font:inherit; cursor:pointer; text-decoration:underline; }

.legal-lb{ position:fixed; inset:0; z-index:100; background:rgba(10,13,18,.6); display:flex; align-items:center; justify-content:center; padding:20px; }
.legal-lb[hidden]{ display:none; }
.legal-lb-panel{ width:min(840px,100%); height:min(84vh,900px); background:var(--bg); border:1px solid var(--line-2); border-radius:var(--r); display:flex; flex-direction:column; overflow:hidden; box-shadow:0 30px 80px -20px rgba(0,0,0,.55); }
.legal-lb-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 8px 8px 16px; border-bottom:1px solid var(--line); background:var(--chrome); }
.legal-lb-head b{ font-family:var(--mono); font-size:12.5px; font-weight:600; letter-spacing:.04em; color:var(--txt-dim); }
.legal-lb-x{ font-size:20px; line-height:1; width:34px; height:34px; border:1px solid var(--line-2); border-radius:var(--r); background:var(--panel); color:var(--txt); cursor:pointer; }
.legal-lb-x:hover{ border-color:var(--accent-line); color:var(--accent-txt); }
.legal-lb iframe{ flex:1; width:100%; border:0; background:var(--bg); }
@media (max-width:560px){ .legal-lb{ padding:10px; } .legal-lb-panel{ height:92dvh; } }

html.is-embed .sidebar, html.is-embed .topbar, html.is-embed .foot, html.is-embed .back-link, html.is-embed .scroll-top, html.is-embed .skip-link{ display:none !important; }
html.is-embed .app{ grid-template-columns:1fr; }
html.is-embed .content{ padding:20px 22px 40px; }
.form-note{ font-family:var(--mono); font-size:11px; color:var(--txt-faint); }
.btn-submit{ align-self:flex-start; }

@media (max-width:860px){
  .about-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .form-row{ grid-template-columns:1fr; }
}

html.im-rahmen .sidebar,
html.im-rahmen .topbar,
html.im-rahmen .scroll-top,
html.im-rahmen .skip-link,
html.im-rahmen .ts-sitefoot{ display:none !important; }
html.im-rahmen .app{ grid-template-columns:1fr !important; background:var(--bg); }
html.im-rahmen .main{ min-height:100vh; }
html.im-rahmen .content{ padding-top:14px; }

.v2 .page-head{ margin:4px 0 0; }

.v2 .page-head{ position:relative; z-index:0; padding-bottom:42px; margin-bottom:34px !important; }

.v2 .page-head::before{ content:""; position:absolute; z-index:-2;
  top:-28px; left:-32px; right:-22px; bottom:0;
  background:linear-gradient(to bottom, var(--bg-2) 62%, transparent 100%); }

.v2 .page-raster{ position:absolute; z-index:-1; top:-28px; left:-32px;
  width:calc(100% + 54px); height:calc(100% + 148px); display:block; pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom, #000 46%, rgba(0,0,0,.5) 78%, transparent 100%);
          mask-image:linear-gradient(to bottom, #000 46%, rgba(0,0,0,.5) 78%, transparent 100%); }
.v2 .page-head .eyebrow{ display:block; text-transform:none; letter-spacing:.05em;
  font-size:12.5px; color:var(--accent-txt); margin-bottom:10px; }
.v2 .page-title{ font-size:clamp(28px,3.6vw,42px); font-weight:600; line-height:1.12;
  letter-spacing:-.025em; max-width:21ch; margin:0; }

.v2 .page-title.pt-wide{ max-width:34ch; }
.v2 .page-title .accent{ color:var(--accent-txt); }
.v2 .page-sub{ margin-top:14px; font-size:16px; max-width:62ch; color:var(--txt-dim); }

.v2 .page-head + .panel{ margin-top:26px; }
.v2 .hcursor{ display:inline-block; width:3px; height:1.02em; background:var(--accent);
  vertical-align:-.13em; margin-left:.14em; border-radius:1px; animation:blink 1.1s steps(1) infinite; }

.v2 .page-title .nc{ white-space:nowrap; }
@keyframes blink{ 50%{ opacity:0; } }

.v2 .metaline{ margin-top:18px; display:inline-block; max-width:100%;
  padding:10px 15px; border:1px solid var(--line); border-radius:var(--r);
  background:var(--panel); font-family:var(--mono); font-size:12.5px; color:var(--txt-dim); line-height:1.9; }
.v2 .metaline b{ color:var(--txt); font-weight:600; }
.v2 .metaline .k{ color:var(--accent-txt); }
.v2 .metaline .ml-lead{ color:var(--txt-faint); margin-right:13px; }
.v2 .metaline a{ color:inherit; text-decoration:none; white-space:nowrap; border-radius:3px; }
.v2 .metaline a:hover, .v2 .metaline a:focus-visible{ text-decoration:underline; text-underline-offset:3px; }
.v2 .metaline a:hover .k, .v2 .metaline a:focus-visible .k{ color:var(--accent); }

.v2 .metaline a:not(:first-of-type){ margin-left:13px; }
.v2 .metaline a:not(:first-of-type)::before{ content:"·"; margin-right:13px; color:var(--txt-faint); }

@media (max-width:560px){
  .v2 .metaline{ text-align:center; font-size:11px; padding:9px 12px; }
  .v2 .metaline .ml-lead{ display:none; }
  .v2 .metaline .ml-funnels{ display:none; }
  .v2 .metaline a:not(:first-of-type){ margin-left:9px; }
  .v2 .metaline a:not(:first-of-type)::before{ margin-right:9px; }
}

.v2 .sec{ margin-top:44px; }
.v2 .sec-head{ display:flex; align-items:baseline; gap:12px;
  border-bottom:1px solid var(--line-2); padding-bottom:8px; margin-bottom:24px; }
.v2 .sec-head .no{ font-family:var(--mono); font-size:22px; font-weight:600; color:var(--accent-txt); }
.v2 .sec-head h2{ font-size:19px; font-weight:750; letter-spacing:-.015em; margin:0; color:var(--txt); }
.v2 .sec-head .more{ margin-left:auto; font-family:var(--mono); font-size:13px; color:var(--txt-dim);
  display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.v2 .sec-head .more:hover{ color:var(--accent-txt); }
.v2 .sec-more-m{ display:none; } 

.v2 .grid-visuals{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.v2 .grid-web{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.v2 .kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--accent-txt); }

.v2 .grid-visuals .card{ display:flex; flex-direction:column; background:var(--panel);
  box-shadow:var(--shadow); transition:border-color .15s ease, transform .15s ease; }
.v2 .grid-visuals .card:hover{ border-color:var(--accent-line); transform:translateY(-2px); }
.v2 .grid-visuals .card-media{ aspect-ratio:3/4; background:var(--bg-2); }
.v2 .grid-visuals .card-body{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:4px; flex:1; }
.v2 .grid-visuals .card-body h3{ font-size:16px; font-weight:650; letter-spacing:-.01em;
  line-height:1.3; color:var(--txt); margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.v2 .grid-visuals .card-meta{ font-family:var(--sans); font-size:13.5px; color:var(--txt-dim);
  text-transform:none; letter-spacing:0; margin-top:0; }

.v2 .grid-web .wd-card .card-body{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:4px; flex:1; }
.v2 .grid-web .wd-card .card-body h3{ font-size:16px; font-weight:650; letter-spacing:-.01em;
  line-height:1.3; color:var(--txt); margin:0; }
.v2 .grid-web .wd-card .card-meta{ font-family:var(--sans); font-size:13.5px; color:var(--txt-dim);
  text-transform:none; letter-spacing:0; margin-top:0; }

.wd-card, .grid-visuals .card, .hand-card{ position:relative; }
.grid-visuals .card, .hand-card{ overflow:hidden; }
.wd-card::after, .grid-visuals .card::after, .hand-card::after{
  content:""; position:absolute; inset:0 auto 0 0; width:60%; z-index:4;
  pointer-events:none; opacity:0; transform:translateX(-150%) skewX(-20deg);
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.05) 32%,
    rgba(255,255,255,.22) 50%, rgba(255,255,255,.05) 68%, rgba(255,255,255,0) 100%); }
.wd-card .wd-thumb img, .grid-visuals .card .card-media img{ transition:filter .4s ease, transform .55s ease; }
.wd-card.fx-swept::after, .grid-visuals .card.fx-swept::after, .hand-card.fx-swept::after{ animation:fxC-sweep .9s ease-out; }
@media (hover:hover) and (pointer:fine){
  .wd-card:hover .wd-thumb img, .grid-visuals .card:hover .card-media img{ filter:brightness(1.06); transform:scale(1.025); }
  .wd-card:hover::after, .grid-visuals .card:hover::after, .hand-card:hover::after{ animation:fxC-sweep .9s ease-out; }
}
@keyframes fxC-sweep{
  0%{ transform:translateX(-150%) skewX(-20deg); opacity:0; }
  12%{ opacity:1; } 85%{ opacity:1; }
  100%{ transform:translateX(275%) skewX(-20deg); opacity:0; } }
@media (prefers-reduced-motion:reduce){
  .wd-card .wd-thumb img, .grid-visuals .card .card-media img{ transition:none; }
  .wd-card.fx-swept::after, .grid-visuals .card.fx-swept::after, .hand-card.fx-swept::after,
  .wd-card:hover::after, .grid-visuals .card:hover::after, .hand-card:hover::after{ animation:none; }
  .wd-card:hover .wd-thumb img, .grid-visuals .card:hover .card-media img{ transform:none; } }

.v2 .tool-list{ display:flex; flex-direction:column; border:1px solid var(--line);
  border-radius:var(--r); background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.v2 .tool-list .tool-row{ display:flex; align-items:center; gap:18px; padding:14px 18px;
  border-bottom:1px solid var(--line); }
.v2 .tool-list .tool-row:last-child{ border-bottom:0; }
.v2 .tool-list .tool-row:hover{ background:var(--panel-2); }
.v2 .tool-list .tool-thumb{ position:relative; width:208px; height:117px; flex:0 0 auto;
  border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; background:#fff; transition:border-color .12s; }
.v2 .tool-list .tool-row:hover .tool-thumb{ border-color:var(--accent-line); }
.v2 .tool-list .tool-main{ min-width:0; flex:1; }
.v2 .tool-list .tool-name{ font-size:16px; font-weight:650; line-height:1.3; color:var(--txt); }
.v2 .tool-list .tool-name .cnt{ font-family:var(--mono); font-weight:400; font-size:12.5px; color:var(--txt-dim); }
.v2 .tool-list .tool-desc{ font-family:var(--sans); font-size:13.5px; color:var(--txt-dim); margin-top:3px;
  line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v2 .tool-list .badge{ margin-top:0; flex:0 0 auto; }
.v2 .tool-list .arrow{ font-family:var(--mono); font-size:14px; color:var(--txt-faint); flex:0 0 auto; }
.v2 .tool-list .tool-row:hover .arrow{ color:var(--accent-txt); }

.v2 .cta-card{ margin-top:40px; border:1px solid var(--accent-line); border-left:4px solid var(--accent);
  border-radius:var(--r); background:var(--panel); box-shadow:var(--shadow); padding:26px;
  display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.v2 .cta-card .lead{ flex:1; min-width:260px; }
.v2 .cta-card .prompt{ font-family:var(--mono); font-size:12px; color:var(--accent-txt); margin-bottom:6px; }
.v2 .cta-card h2{ font-size:21px; font-weight:750; letter-spacing:-.015em; max-width:32ch; color:var(--txt); margin:0; text-wrap:balance; }
.v2 .cta-card p{ margin:8px 0 0; font-size:15px; color:var(--txt-dim); max-width:60ch; }
.v2 .cta-card .cta-btn{ font-family:var(--mono); font-weight:600; font-size:14px; padding:11px 22px; }

.v2 .cta-card.cta-slim h2{ font-size:18px; max-width:none; }
.v2 .cta-card.cta-slim p{ font-size:14px; max-width:none; }

@media (max-width:1240px){ .v2 .grid-visuals{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:920px){
  .v2 .sec{ margin-top:34px; }
  .v2 .grid-visuals{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2 .grid-web{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2 .cta-card{ padding:20px 18px; }
}
@media (max-width:640px){
  .v2 .grid-web{ grid-template-columns:1fr; }
  
  .v2 .sec-head{ flex-wrap:wrap; row-gap:4px; }
  
  .v2 .sec-head .more{ display:none; }
  
  .v2 .sec-more-m{ display:flex; align-items:center; justify-content:center; gap:7px;
    margin:14px 0 2px; padding:13px 14px; border:1px solid var(--accent); border-radius:var(--r);
    background:var(--accent); color:var(--bg); font-family:var(--mono); font-size:13px; font-weight:600; text-decoration:none; }
  .v2 .sec-more-m:active{ filter:brightness(0.92); }
  
  .v2 .tool-list .tool-row{ flex-wrap:wrap; column-gap:14px; row-gap:8px; align-items:center; }
  .v2 .tool-list .tool-thumb{ width:120px; height:68px; }
  .v2 .tool-list .tool-main{ flex:1 1 auto; }
  .v2 .tool-list .tool-desc{ white-space:normal; }
  .v2 .tool-list .badge{ flex:0 0 100%; order:3; }
  .v2 .tool-list .arrow{ display:none; }
}
@media (max-width:380px){ .v2 .grid-visuals{ grid-template-columns:1fr; } }

.v2 .grid3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.v2 .grid2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }

.v2 .tool-detail .eyebrow{ display:block; text-transform:none; letter-spacing:.05em; font-size:12.5px; color:var(--accent-txt); margin-bottom:10px; }
.v2 .tool-detail h1{ font-size:clamp(28px,3.4vw,40px); font-weight:600; letter-spacing:-.02em; line-height:1.12; max-width:24ch; margin:0; color:var(--txt); }
.v2 .tool-tagline{ margin:14px 0 0; font-size:19px; font-weight:650; letter-spacing:-.012em; color:var(--txt); max-width:46ch; }
.v2 .tool-detail .pp-chips{ margin-top:14px; }
.v2 .tool-lede{ margin:14px 0 0; font-size:16px; line-height:1.6; color:var(--txt-dim); max-width:62ch; }

.v2 .stage-card{ margin-top:28px; }
.v2 a.stage{ position:relative; display:block; overflow:hidden; background:var(--panel-2); }
.v2 .stage .pv-img{ display:block; width:100%; height:auto; }
.v2 .stage .pv-noimg{ min-height:280px; display:grid; place-items:center; background:var(--panel-2); }
.v2 .stage .pv-noimg .ico{ width:44px; height:44px; stroke:var(--txt-faint); fill:none; stroke-width:1.4; }
.v2 .stage-cta{ position:absolute; right:14px; bottom:14px; z-index:2; }
.v2 .stage-cta .cta-btn{ font-family:var(--mono); font-weight:600; box-shadow:0 6px 18px rgba(1,81,249,.35); }
.v2 .stage-hint{ position:absolute; right:16px; bottom:54px; z-index:2; display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:11.5px; color:#fff; background:rgba(12,18,32,.62); padding:4px 9px; border-radius:var(--r); }
.v2 .stage-hint .ico{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:1.8; }
.v2 a.stage:hover .pv-img{ filter:brightness(.97); }
@media (prefers-reduced-motion: reduce){ .v2 a.stage:hover .pv-img{ filter:none; } }

.v2 .winbar{ display:flex; align-items:center; gap:6px; padding:7px 10px; border-bottom:1px solid var(--line); background:var(--panel-2); }
.v2 .winbar i{ width:8px; height:8px; border-radius:50%; display:block; }
.v2 .winbar i:nth-child(1){ background:#e0655b; } .v2 .winbar i:nth-child(2){ background:#e3b341; } .v2 .winbar i:nth-child(3){ background:#3fb950; }
.v2 .winbar .fname{ margin-left:6px; font-family:var(--mono); font-size:10.5px; color:var(--txt-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.v2 .tile-body{ padding:14px 16px 16px; display:flex; flex-direction:column; gap:11px; flex:1; }
.v2 .tile-head{ display:flex; align-items:center; gap:10px; }
.v2 .tile-head h3{ font-size:15.5px; font-weight:650; letter-spacing:-.01em; margin:0; color:var(--txt); }
.v2 .tico{ width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center;
  border:1px solid var(--accent-line); border-radius:var(--r); background:var(--accent-dim); color:var(--accent-txt); }
.v2 .tico .ico{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:1.8; }
.v2 .klist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.v2 .klist li{ position:relative; padding-left:16px; font-size:13.5px; color:var(--txt-dim); line-height:1.5; }
.v2 .klist li::before{ content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; background:var(--accent); border-radius:1px; }

.v2 .feat-body{ padding:14px 16px 16px; display:flex; flex-direction:column; gap:12px; }
.v2 .feat-head{ display:flex; align-items:center; gap:9px; }
.v2 .feat-head h3{ font-size:15.5px; font-weight:650; letter-spacing:-.01em; margin:0; color:var(--txt); }
.v2 .feat-head .fdot{ width:9px; height:9px; border-radius:50%; display:inline-block; flex:0 0 auto; }
.v2 .feat-head .fdot.ok{ background:var(--ok); }
.v2 .feat-head .fdot.plan{ background:var(--accent); }
.v2 .feat-head .count{ margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--txt-dim); }
.v2 .flist{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; }
.v2 .flist li{ display:flex; align-items:baseline; gap:9px; font-size:13.5px; color:var(--txt-dim); line-height:1.4; }
.v2 .flist .fmark{ font-family:var(--mono); font-size:12px; flex:0 0 auto; }
.v2 .flist.avail .fmark{ color:var(--ok); font-weight:700; }
.v2 .flist.plan{ grid-template-columns:1fr; }
.v2 .flist.plan .fmark{ color:var(--accent); }
.v2 .feat-note{ font-family:var(--mono); font-size:11.5px; color:var(--txt-dim); border-top:1px solid var(--line); padding-top:10px; }

.v2 .gal-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.v2 .gal-item{ display:flex; flex-direction:column; gap:7px; }
.v2 .gal-item figcaption{ font-size:12px; color:var(--txt-dim); line-height:1.35; }

.v2 .embed-card{ margin-top:28px; }

@media (max-width:1120px){ .v2 .grid3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:920px){
  .v2 .grid3, .v2 .grid2{ grid-template-columns:1fr; }
  .v2 .gal-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px){ .v2 .flist{ grid-template-columns:1fr; } }

.v2 .tool-rows{ display:flex; flex-direction:column; gap:26px; }
.v2 .trow{ display:grid; grid-template-columns:minmax(320px,420px) 1fr; background:var(--panel);
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden;
  text-decoration:none; color:inherit; transition:border-color .15s ease, transform .15s ease; }
.v2 a.trow:hover{ border-color:var(--accent-line); transform:translateY(-2px); }
.v2 .trow.is-soon{ opacity:.62; }
.v2 .trow.is-soon:hover{ transform:none; border-color:var(--line); }
.v2 .trow-prev{ position:relative; border-right:1px solid var(--line); background:#fff; min-width:0; }
.v2 .trow-prev .tprev-view{ position:relative; aspect-ratio:16/10; height:auto; overflow:hidden; background:#fff; }
.v2 .trow-prev .tprev-empty{ height:auto; aspect-ratio:16/10; }
.v2 .trow-meta{ padding:22px 26px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.v2 .trow-meta .eyebrow{ display:block; text-transform:uppercase; letter-spacing:.1em; font-size:11px; color:var(--accent-txt); }
.v2 .trow-meta .tname{ margin:0; font-size:19px; font-weight:700; letter-spacing:-.015em; line-height:1.2; color:var(--txt); }
.v2 .trow-meta .tlead{ font-size:14px; font-weight:600; color:var(--txt-dim); }
.v2 .trow-meta .tdesc{ font-size:13.5px; color:var(--txt-dim); line-height:1.55; max-width:70ch; }
.v2 .trow-meta .pp-chips{ margin-top:2px; }
.v2 .trow-foot{ margin-top:auto; padding-top:6px; }
.v2 .trow-foot .cta{ font-family:var(--mono); font-size:12.5px; color:var(--accent-txt); display:inline-flex; align-items:center; gap:5px; }
.v2 .trow-foot .cta .ico{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2; }
.v2 a.trow:hover .trow-foot .cta{ text-decoration:underline; }
.v2 .trow-foot .req{ font-family:var(--mono); font-size:12.5px; color:var(--warn-txt); }
.v2 .trow-foot .soon{ font-family:var(--mono); font-size:12.5px; color:var(--txt-faint); }
@media (min-width:921px) and (max-width:1120px){ .v2 .trow{ grid-template-columns:minmax(280px,340px) 1fr; } }
@media (max-width:920px){ .v2 .trow{ grid-template-columns:1fr; } .v2 .trow-prev{ border-right:0; border-bottom:1px solid var(--line); } }

@media (max-width:560px){ .v2 .trow .pp-chips, .v2 .trow-meta .eyebrow{ display:none; } }

.v2 .detail{ grid-template-columns:minmax(0,640px) minmax(320px,1fr); gap:28px; align-items:start; }
.v2 .gallery .vfig-img{ padding:11px; }
.v2 .detail-info .eyebrow{ display:block; text-transform:none; letter-spacing:.05em; font-size:12.5px; color:var(--accent-txt); margin-bottom:8px; }
.v2 .detail-info h1{ font-size:clamp(24px,2.6vw,34px); font-weight:600; letter-spacing:-.02em; line-height:1.15; margin:0 0 12px; color:var(--txt); }
.v2 .detail-info .desc{ font-size:15.5px; line-height:1.62; color:var(--txt-dim); max-width:62ch; }
.v2 .detail-info h3{ font-size:12px; color:var(--txt-dim); }   
.v2 .overview dt{ color:var(--txt-dim); }
.v2 .overview dd{ font-size:14px; }
.v2 .detail-info .pp-chips{ margin-top:2px; }
@media (max-width:980px){ .v2 .detail{ grid-template-columns:1fr; } }

.v2 .svc-body{ padding:16px 18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.v2 .svc-desc{ margin:0; font-size:14.5px; line-height:1.6; color:var(--txt-dim); flex:1; }
.v2 .svc-more{ margin-top:auto; padding-top:12px; border-top:1px solid var(--line);
  font-family:var(--mono); font-size:13.5px; color:var(--accent-txt); display:inline-flex; align-items:center; gap:6px; }
.v2 a.card:hover .svc-more, .v2 .svc-more:hover{ text-decoration:underline; }

.v2 .linkrows{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--r);
  background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.v2 .linkrow{ display:flex; align-items:center; gap:14px; padding:14px 18px; border-bottom:1px solid var(--line);
  color:inherit; text-decoration:none; }
.v2 .linkrow:last-child{ border-bottom:0; }
.v2 a.linkrow:hover{ background:var(--panel-2); }
.v2 .linkrow .lr-main{ flex:1; min-width:0; }
.v2 .linkrow .lr-main h3{ margin:0; font-size:15.5px; font-weight:650; color:var(--txt); }
.v2 .linkrow .lr-main p{ margin:2px 0 0; font-size:13.5px; color:var(--txt-dim); line-height:1.45; }
.v2 .linkrow .lr-count{ font-family:var(--mono); font-size:11.5px; color:var(--txt-faint); flex:0 0 auto; }
.v2 .linkrow .arrow{ font-family:var(--mono); font-size:14px; color:var(--txt-faint); flex:0 0 auto; }
.v2 a.linkrow:hover .arrow{ color:var(--accent-txt); }

.v2 .trust-row{ margin-top:28px; }

.v2 .prose .lead{ font-size:15px; color:var(--txt); font-weight:400; line-height:1.7; }   
.v2 .factlist dd{ font-size:14px; }

.v2 .wd-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1120px){ .v2 .wd-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .v2 .wd-grid{ grid-template-columns:1fr; } }
.v2 .wd-feature-body h3{ margin:0; font-size:17px; font-weight:700; letter-spacing:-.01em; color:var(--txt); }
.v2 .sec .wd-feature{ margin-top:0; }
.v2 .sec .wd-feature + .wd-feature{ margin-top:16px; }

.brand-pack{ display:flex; align-items:center; gap:3.5px; }
.topbar-brand .brand-pack{ gap:3px; }
.brand-io{ height:29.5px; width:auto; display:block; transform-origin:50% 88%; }
.topbar-brand .brand-io{ height:23.6px; }
@keyframes ioHop{
  0%{ transform:none; }
  20%{ transform:scaleY(.78) scaleX(1.14); }
  46%{ transform:translateY(-6px) scaleY(1.1) scaleX(.92); }
  68%{ transform:translateY(0) scaleY(.88) scaleX(1.1); }
  84%{ transform:translateY(-1.5px) scaleY(1.02) scaleX(.99); }
  100%{ transform:none; }
}
a.brand:hover .brand-io, a.topbar-brand:hover .brand-io, .brand-io.hop{
  animation: ioHop .62s cubic-bezier(.3,.1,.25,1);
}
@media (prefers-reduced-motion: reduce){
  a.brand:hover .brand-io, a.topbar-brand:hover .brand-io, .brand-io.hop{ animation:none; }
}

html.typo-l body{ font-size:16.5px; }
html.typo-l .v2 .page-title{ font-size:clamp(32px,4.2vw,48px); }
html.typo-l .v2 .page-sub{ font-size:18px; }
html.typo-l .v2 .sec-head h2{ font-size:26px; }
html.typo-l .v2 .sec-head .no{ font-size:13.5px; }
html.typo-l .v2 .sec-head .more{ font-size:14px; }
html.typo-l .v2 .kicker{ font-size:12.5px; }
html.typo-l .v2 .grid-visuals .card-body h3,
html.typo-l .v2 .grid-web .wd-card .card-body h3{ font-size:18px; }
html.typo-l .v2 .grid-visuals .card-meta{ font-size:15px; }
html.typo-l .v2 .metaline{ font-size:13.5px; }
html.typo-l .hand-card h3{ font-size:18px; }
html.typo-l .hand-card p{ font-size:15.5px; }
html.typo-l .v2 .cta-card h2{ font-size:26px; }
html.typo-l .v2 .cta-card p{ font-size:17px; }
html.typo-l .v2 .trow-meta .tname{ font-size:22px; }
html.typo-l .v2 .trow-meta .tlead{ font-size:15.5px; }
html.typo-l .v2 .trow-meta .tdesc{ font-size:15px; }
html.typo-l .v2 .tool-detail h1, html.typo-l .v2 .detail-info h1{ font-size:clamp(30px,3.6vw,40px); }
html.typo-l .v2 .prose p, html.typo-l .v2 .prose li{ font-size:16.5px; }

body{ font-size:16px; }
.v2 .page-sub{ font-size:17px; }
.v2 .sec-head h2{ font-size:22px; }
.v2 .svc-desc{ font-size:15px; }
.v2 .card p, .v2 .lr-main p{ font-size:14.5px; }
.v2 .cta-card p{ font-size:16px; }
.v2 .prose p, .v2 .prose li{ font-size:16px; }
.v2 .grid-visuals .card-meta, .v2 .grid-web .wd-card .card-meta{ font-size:14.5px; }

.v2 .klist li{ font-size:14.5px; }
.v2 .flist li{ font-size:14.5px; }
.pp-list li{ font-size:14.5px; }
.pp-feat-list li{ font-size:14.5px; }
.pp-foot p{ font-size:14.5px; }
.contact p{ font-size:14px; }
.aside-lead{ font-size:14px; }
.hint{ font-size:14px; }
.step span{ font-size:13.5px; }
.factlist dd{ font-size:14.5px; }
.overview dd{ font-size:14px; }
.tcard-desc{ font-size:14.5px; }
.prose h3{ font-size:15px; }
