/* Valkunt public site: shared visual language for tools and publications. */
:root {
  color-scheme: dark;
  --bg:#081520;
  --bg-soft:#0c1d29;
  --card:#112631;
  --card-border:#31515e;
  --surface:#112631;
  --border:#31515e;
  --text:#f2f7f5;
  --muted:#b1c4ca;
  --accent:#82d7ee;
  --accent-2:#d5ed91;
  --ok:#d5ed91;
  --warning:#f6d48e;
  --danger:#ff9ba3;
  --code:#0a1c27;
  --shadow:0 18px 42px #00000028;
  --radius:13px;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
}
html{scroll-behavior:smooth}
body[data-valkunt-page]{
  min-width:320px;
  margin:0;
  background:radial-gradient(ellipse 65% 30% at 102% 2%,#1c4b5869,transparent 72%),#081520;
  color:var(--text);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
}
body[data-valkunt-page] :focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}
body[data-valkunt-page] ::selection{background:var(--accent-2);color:#081520}
body[data-valkunt-page] .container{width:min(1200px,calc(100% - 48px));max-width:none;margin-inline:auto}
body[data-valkunt-page] a{color:inherit}
body[data-valkunt-page] .site-header{
  position:sticky;top:0;z-index:30;
  background:#081520f2;backdrop-filter:blur(16px);
  border-bottom:1px solid var(--card-border);
}
body[data-valkunt-page] .site-header .nav{
  min-height:78px;display:flex;align-items:center;justify-content:space-between;
  gap:22px;padding:0;
}
body[data-valkunt-page] .site-header .brand{
  flex:none;display:flex;align-items:center;gap:11px;
  color:var(--text);font-weight:800;letter-spacing:-.055em;
  text-decoration:none;font-size:23px;line-height:1;
}
body[data-valkunt-page] .site-header .brand img{
  width:40px;height:40px;object-fit:contain;filter:none;
}
body[data-valkunt-page] .brand-name b{color:var(--accent-2)}
body[data-valkunt-page] .brand-sub{
  display:block;margin-top:4px;color:#91aab5;
  font:10px var(--mono);letter-spacing:.11em;
}
body[data-valkunt-page] .site-header .nav-links{
  display:flex;align-items:center;justify-content:flex-end;
  flex-wrap:wrap;gap:24px;
}
body[data-valkunt-page] .site-header .nav-links a{
  font-size:14px;font-weight:650;color:var(--muted);
  background:transparent;border:0;border-radius:0;padding:8px 0;
  text-decoration:none;
}
body[data-valkunt-page] .site-header .nav-links a:hover{color:var(--accent-2)}
body[data-valkunt-page] .site-header .nav-links a.nav-return{
  color:var(--accent-2);border-left:1px solid var(--card-border);
  padding-left:22px;
}
body[data-valkunt-page] .site-header .nav-links a.nav-return:hover{text-decoration:underline}
body[data-valkunt-page] .breadcrumb{
  width:min(1200px,calc(100% - 48px));margin:0 auto;
  padding:21px 0 0;color:#93aeb8;font:12px var(--mono);
  letter-spacing:.055em;
}
body[data-valkunt-page] .breadcrumb a{color:var(--accent);text-decoration:none}
body[data-valkunt-page] .breadcrumb a:hover{text-decoration:underline}
body[data-valkunt-page="tool"] .hero{
  padding:54px 0 50px;
  border-bottom:1px solid var(--card-border);
  background:radial-gradient(ellipse 44% 80% at 90% 12%,#26556556,transparent 75%);
}
body[data-valkunt-page="tool"] .hero .container{position:relative}
body[data-valkunt-page="tool"] .badge{
  display:inline-flex;align-items:center;border:1px solid #51717a;
  background:#143441;color:var(--accent-2);border-radius:6px;
  padding:8px 11px;font:12px var(--mono);letter-spacing:.02em;margin-bottom:20px;
}
body[data-valkunt-page="tool"] .hero h1{
  max-width:950px;margin:0 0 17px;
  font-size:clamp(38px,5.4vw,65px);line-height:1.07;
  letter-spacing:-.065em;
}
body[data-valkunt-page="tool"] .hero p{
  max-width:800px;margin:0;color:var(--muted);
  font-size:17px;line-height:1.62;
}
body[data-valkunt-page="tool"] .pack-count{
  color:#89aab6;font:12px var(--mono);letter-spacing:.11em;
  margin:0 0 18px;
}
body[data-valkunt-page="tool"] .quick-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));
  gap:12px;margin:36px 0 0;
}
body[data-valkunt-page="tool"] .quick-card{
  display:block;min-width:0;
  background:#112936;border:1px solid #3a5965;
  border-radius:10px;padding:19px 21px;
  text-decoration:none;
  transition:transform .18s,border-color .18s,background .18s;
}
body[data-valkunt-page="tool"] .quick-card:hover{
  transform:translateY(-3px);border-color:var(--accent);
  background:#173440;
}
body[data-valkunt-page="tool"] .quick-card strong{
  color:var(--text);font-size:16px;letter-spacing:-.025em;margin-bottom:7px;
}
body[data-valkunt-page="tool"] .quick-card span{
  color:var(--muted);font-size:14px;line-height:1.5;
}
body[data-valkunt-page="tool"] main.container{padding:45px 0 75px}
body[data-valkunt-page="tool"] .tool{
  position:relative;
  background:var(--card);border:1px solid var(--card-border);
  border-radius:13px;padding:30px;margin:0 0 17px;
  box-shadow:var(--shadow);
}
body[data-valkunt-page="tool"] .tool::before{
  content:"";position:absolute;left:0;top:28px;bottom:28px;
  width:2px;background:var(--accent);
}
body[data-valkunt-page="tool"] .tool h2{
  margin:0 0 8px;
  font-size:clamp(25px,2.8vw,32px);line-height:1.17;
  letter-spacing:-.048em;
}
body[data-valkunt-page="tool"] .tool .desc{
  color:var(--muted);font-size:15px;line-height:1.55;
}
body[data-valkunt-page="tool"] .pill{
  background:#193744;border:1px solid #426573;
  color:var(--accent);font:12px var(--mono);
  border-radius:6px;padding:8px 11px;
  white-space:normal;
}
body[data-valkunt-page="tool"] label{color:var(--muted);font-size:14px}
body[data-valkunt-page="tool"] input,
body[data-valkunt-page="tool"] textarea,
body[data-valkunt-page="tool"] select{
  min-width:0;background:#0b1d28;color:var(--text);
  border:1px solid #3a5661;border-radius:8px;
  padding:12px 13px;font-size:15px;
}
body[data-valkunt-page="tool"] input:focus,
body[data-valkunt-page="tool"] textarea:focus,
body[data-valkunt-page="tool"] select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px #82d7ee29;
}
body[data-valkunt-page="tool"] button{
  background:var(--accent-2);color:#102631;
  border:1px solid var(--accent-2);border-radius:7px;
  font-size:14px;min-height:42px;
}
body[data-valkunt-page="tool"] button.secondary{
  background:#203642;border-color:#48636d;color:var(--text);
}
body[data-valkunt-page="tool"] button.danger{
  background:#4e2b38;border-color:#8b5a62;color:#fff;
}
body[data-valkunt-page="tool"] button:hover{filter:brightness(1.07)}
body[data-valkunt-page="tool"] .output,
body[data-valkunt-page="tool"] .result-box,
body[data-valkunt-page="tool"] pre{
  background:#0b1d28;border-color:#36515c;border-radius:8px;
}
body[data-valkunt-page="tool"] .hash-value,
body[data-valkunt-page="tool"] .result-box{color:#e4f2f3}
body[data-valkunt-page="tool"] .algo,
body[data-valkunt-page="tool"] .key{color:var(--accent)}
body[data-valkunt-page="tool"] .notice{color:var(--muted)}
body[data-valkunt-page="tool"] .example,
body[data-valkunt-page="tool"] .record-tag,
body[data-valkunt-page="tool"] .tag{
  border:1px solid #3d5c68;border-radius:6px;
  background:#1b3541;color:var(--muted);
}
body[data-valkunt-page="tool"] .table-wrap{overflow-x:auto}
body[data-valkunt-page="tool"] table{min-width:580px}
body[data-valkunt-page="tool"] .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
body[data-valkunt-page="tool"] .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
body[data-valkunt-page] .site-footer{
  border-top:1px solid var(--card-border);
  color:var(--muted);padding:31px 0 43px;
  font-size:14px;background:#081520;
}
body[data-valkunt-page] .site-footer a{color:var(--accent-2);text-decoration:none}
body[data-valkunt-page] .site-footer a:hover{text-decoration:underline}
body[data-valkunt-page] .site-footer .footer-row{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
/* The publication uses the same masthead and surface colors, with article typography. */
body[data-valkunt-page="article"] .container{width:min(860px,calc(100% - 48px))}
body[data-valkunt-page="article"] .site-header .container,
body[data-valkunt-page="article"] .breadcrumb{width:min(1200px,calc(100% - 48px))}
body[data-valkunt-page="article"] main{padding:52px 0 90px}
body[data-valkunt-page="article"] .kicker{color:var(--accent-2);font:12px var(--mono);letter-spacing:.12em}
body[data-valkunt-page="article"] h1{
  font-size:clamp(39px,5.4vw,64px);line-height:1.08;
  letter-spacing:-.065em;margin:17px 0 18px;
}
body[data-valkunt-page="article"] .lead{
  color:var(--muted);font-size:19px;line-height:1.58;
}
body[data-valkunt-page="article"] .meta{
  color:#95adb5;font:12px var(--mono);letter-spacing:.02em;
}
body[data-valkunt-page="article"] .download{
  background:#15323f;border:1px solid #4b6c75;
  border-radius:12px;padding:22px 24px;margin:34px 0 42px;
}
body[data-valkunt-page="article"] .download strong{font-size:17px}
body[data-valkunt-page="article"] .download small{font-size:14px;color:var(--muted)}
body[data-valkunt-page="article"] .button{
  background:var(--accent-2);color:#102631;
  border-radius:7px;padding:12px 17px;font-size:14px;
}
body[data-valkunt-page="article"] article{padding-top:2px}
body[data-valkunt-page="article"] article h2{
  font-size:clamp(25px,3vw,32px);line-height:1.2;
  letter-spacing:-.045em;margin:48px 0 13px;
}
body[data-valkunt-page="article"] article p,
body[data-valkunt-page="article"] article li{
  color:#c5d6d8;font-size:17px;line-height:1.72;
}
body[data-valkunt-page="article"] article a{color:var(--accent)}
body[data-valkunt-page="article"] pre{
  padding:20px;background:#0b1d28;border:1px solid #34535f;
  border-radius:9px;overflow:auto;
}
body[data-valkunt-page="article"] code{background:#1a3541;color:#e6f6f2}
body[data-valkunt-page="article"] pre code{background:none}
body[data-valkunt-page="article"] .note{
  background:#14303c;color:#c5d6d8;
  border-left:3px solid var(--accent-2);
}
body[data-valkunt-page="article"] .sources{border-top:1px solid var(--card-border)}
@media(max-width:900px){
  body[data-valkunt-page="tool"] .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-valkunt-page="tool"] .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  body[data-valkunt-page] .container,
  body[data-valkunt-page="article"] .container,
  body[data-valkunt-page="article"] .site-header .container,
  body[data-valkunt-page] .breadcrumb{width:min(100% - 32px,1200px)}
  body[data-valkunt-page] .site-header .nav{
    min-height:72px;align-items:center;flex-direction:row;
    gap:12px;padding:10px 0;
  }
  body[data-valkunt-page] .site-header .brand{font-size:20px}
  body[data-valkunt-page] .site-header .brand img{width:32px;height:32px}
  body[data-valkunt-page] .brand-sub{display:none}
  body[data-valkunt-page] .site-header .nav-links{gap:12px}
  body[data-valkunt-page] .site-header .nav-links a{font-size:13px}
  body[data-valkunt-page] .site-header .nav-links a:nth-child(2),
  body[data-valkunt-page] .site-header .nav-links a:nth-child(3){display:none}
  body[data-valkunt-page] .site-header .nav-links a.nav-return{padding-left:12px}
  body[data-valkunt-page="tool"] .hero{padding:38px 0 44px}
  body[data-valkunt-page="tool"] .hero h1{font-size:clamp(37px,10vw,52px)}
  body[data-valkunt-page="tool"] .hero p{font-size:16px}
  body[data-valkunt-page="tool"] .quick-grid,
  body[data-valkunt-page="tool"] .grid-2,
  body[data-valkunt-page="tool"] .grid-3{grid-template-columns:1fr}
  body[data-valkunt-page="tool"] main.container{padding:32px 0 55px}
  body[data-valkunt-page="tool"] .tool{padding:22px 19px;border-radius:11px}
  body[data-valkunt-page="tool"] .tool-header{flex-direction:column}
  body[data-valkunt-page="tool"] .output-row{grid-template-columns:1fr}
  body[data-valkunt-page="article"] main{padding:38px 0 65px}
  body[data-valkunt-page="article"] .download{flex-direction:column;align-items:flex-start}
  body[data-valkunt-page="article"] .button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
