/* 3FS — site-wide frosted liquid-glass layer. Loaded after each page's own styles.
   Light: pure white field, vivid liquid color underneath, bright frosted panels with sheen and tinted depth.
   Dark: smoked glass over the same liquid. Reduced motion respected. Solid fallback without backdrop-filter. */
:root{
  --g-bg:linear-gradient(135deg,rgba(255,255,255,.80) 0%,rgba(255,255,255,.52) 55%,rgba(255,255,255,.66) 100%);
  --g-flat:rgba(255,255,255,.62);--g-bg2:rgba(255,255,255,.66);
  --g-line:rgba(255,255,255,.96);--g-edge:rgba(30,50,110,.07);--g-hi:#ffffff;
  --g-shadow:inset 0 -2px 0 rgba(30,50,110,.05),inset 0 0 0 1px rgba(255,255,255,.45),0 1px 2px rgba(20,30,60,.06),0 26px 60px -14px rgba(30,50,110,.22);
  --g-shadow-lg:inset 0 -2px 0 rgba(30,50,110,.05),inset 0 0 0 1px rgba(255,255,255,.5),0 2px 4px rgba(20,30,60,.06),0 40px 90px -16px rgba(163,13,34,.20),0 30px 60px -20px rgba(30,50,110,.28);
  --g-r:20px;--g-r-sm:13px;--g-blur:26px;
  --orb1:rgba(179,18,46,.62);--orb2:rgba(60,120,235,.55);--orb3:rgba(255,170,60,.62);--orb4:rgba(40,190,150,.40);--orb5:rgba(140,70,230,.42);--orb6:rgba(110,7,23,.40);
}
:root[data-theme="dark"]{
  --g-bg:linear-gradient(135deg,rgba(30,33,40,.68) 0%,rgba(22,24,30,.50) 55%,rgba(26,28,34,.60) 100%);
  --g-flat:rgba(24,26,32,.60);--g-bg2:rgba(24,26,32,.52);
  --g-line:rgba(255,255,255,.14);--g-edge:rgba(0,0,0,.4);--g-hi:rgba(255,255,255,.18);
  --g-shadow:inset 0 -2px 0 rgba(0,0,0,.25),inset 0 0 0 1px rgba(255,255,255,.05),0 1px 2px rgba(0,0,0,.4),0 26px 60px -14px rgba(0,0,0,.7);
  --g-shadow-lg:inset 0 -2px 0 rgba(0,0,0,.25),inset 0 0 0 1px rgba(255,255,255,.07),0 2px 4px rgba(0,0,0,.4),0 40px 90px -16px rgba(224,51,74,.35),0 30px 60px -20px rgba(0,0,0,.8);
  --orb1:rgba(224,51,74,.30);--orb2:rgba(72,120,255,.26);--orb3:rgba(255,186,80,.14);--orb4:rgba(56,200,160,.14);--orb5:rgba(150,90,255,.18);
}
:root:not([data-theme="dark"]) body{background:linear-gradient(160deg,#eef0f7 0%,#f3e9ee 38%,#e9eef8 66%,#f5efe6 100%)}

/* Liquid underlayer: a mesh of vivid soft color plus one morphing blob that slowly changes shape. */
body{position:relative;isolation:isolate}
body::before{content:"";position:fixed;inset:-15vmax;z-index:-2;pointer-events:none;filter:blur(48px) saturate(160%);
  background:
    radial-gradient(42vmax 34vmax at 10% 12%,var(--orb1),transparent 62%),
    radial-gradient(38vmax 30vmax at 90% 8%,var(--orb2),transparent 62%),
    radial-gradient(44vmax 36vmax at 72% 82%,var(--orb3),transparent 64%),
    radial-gradient(32vmax 28vmax at 18% 92%,var(--orb4),transparent 62%),
    radial-gradient(30vmax 26vmax at 55% 45%,var(--orb5),transparent 62%),
    radial-gradient(26vmax 22vmax at 92% 58%,var(--orb6,transparent),transparent 62%);
  animation:g-drift 42s ease-in-out infinite alternate}
body::after{content:"";position:fixed;z-index:-1;pointer-events:none;width:64vmax;height:64vmax;left:38%;top:-18vmax;opacity:.72;
  background:conic-gradient(from 200deg at 50% 50%,var(--orb1),var(--orb3),var(--orb2),var(--orb5),var(--orb1));
  filter:blur(44px) saturate(150%);border-radius:46% 54% 62% 38% / 44% 40% 60% 56%;
  animation:g-morph 34s ease-in-out infinite alternate,g-spin 90s linear infinite}
@keyframes g-drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(3vw,-3vh,0) scale(1.08)}}
@keyframes g-morph{0%{border-radius:46% 54% 62% 38% / 44% 40% 60% 56%;transform:translate3d(0,0,0) scale(1)}
  50%{border-radius:60% 40% 36% 64% / 56% 62% 38% 44%;transform:translate3d(-8vw,6vh,0) scale(1.12)}
  100%{border-radius:38% 62% 54% 46% / 60% 36% 64% 40%;transform:translate3d(4vw,10vh,0) scale(.96)}}
@keyframes g-spin{to{filter:blur(44px) saturate(150%) hue-rotate(360deg)}}
@media (prefers-reduced-motion:reduce){body::before,body::after{animation:none}}

/* Glass primitive: frosted, bright, with a diagonal sheen and tinted depth */
.g-glass,header,.term,.facts>div,.stack>div,.mech>div,.emb,.tags span,.card,.grid>div,.filters>*,.search input,input,select,textarea,
.hits>*,table,.tw,.note,.list li,.cta,form,.sig,.card-doc,.mono-box{
  background:var(--g-bg);-webkit-backdrop-filter:blur(var(--g-blur)) saturate(190%) brightness(1.04);backdrop-filter:blur(var(--g-blur)) saturate(190%) brightness(1.04);
  border:1px solid var(--g-line);box-shadow:inset 0 1px 0 var(--g-hi),0 0 0 1px var(--g-edge),var(--g-shadow);border-radius:var(--g-r)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :root{--g-bg:rgba(255,255,255,.94);--g-bg2:rgba(255,255,255,.9);--g-flat:rgba(255,255,255,.94)}
  :root[data-theme="dark"]{--g-bg:rgba(24,26,30,.95);--g-bg2:rgba(24,26,30,.92);--g-flat:rgba(24,26,30,.95)}}

/* Header: floating glass bar */
header{position:sticky;top:10px;margin:10px 16px 0;border-radius:999px;z-index:20;background:var(--g-bg2)}
header .wrap{padding:10px 22px}
header nav a{border-radius:999px;padding:8px 12px;transition:background .2s}
header nav a:hover{background:rgba(163,13,34,.08)}
:root[data-theme="dark"] header nav a:hover{background:rgba(224,51,74,.14)}
header button{border-radius:999px}

/* Sections: drop the hairlines; space carries the rhythm */
section{border-top:0}
.hero{padding-top:64px}

/* Grids that used shared borders become spaced cards */
.facts,.stack,.grid{gap:14px;border:0;background:transparent;box-shadow:none}
.facts>div,.stack>div,.grid>div,.card{border-right:1px solid var(--g-line)!important;padding:22px 24px}
.mech{gap:18px}
.mech>div{padding:26px 24px}
.two{gap:32px}

/* Depth: hover lifts and tilts toward the light */
.facts>div,.stack>div,.mech>div,.card,.grid>div,.emb,.term,.sig,.list li,.cta,form{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}
.facts>div:hover,.stack>div:hover,.mech>div:hover,.card:hover,.grid>div:hover,.list li:hover{transform:translateY(-5px) scale(1.012);box-shadow:inset 0 1px 0 var(--g-hi),0 0 0 1px var(--g-edge),var(--g-shadow-lg)}
.sig{overflow:hidden;padding:0}
.sig video,.sig img{display:block;border-radius:inherit}

/* Buttons: soft pills with a gloss */
.btn,.sbtn,button,a.btn{border-radius:999px;position:relative;overflow:hidden;transition:transform .15s ease,box-shadow .2s ease,background .2s ease}
.btn.primary,.sbtn,button.primary,button.btn,#verify,.search .btn{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 48%),var(--ink);box-shadow:0 14px 30px -8px rgba(17,18,20,.45),inset 0 1px 0 rgba(255,255,255,.28)}
a.btn:not(.primary){background:var(--g-bg);border:1px solid var(--g-line);box-shadow:inset 0 1px 0 var(--g-hi),0 0 0 1px var(--g-edge),0 12px 26px -10px rgba(30,50,110,.28);-webkit-backdrop-filter:blur(var(--g-blur)) saturate(180%);backdrop-filter:blur(var(--g-blur)) saturate(180%)}
.btn:hover,.sbtn:hover,button:hover{transform:translateY(-2px)}
.btn.primary:hover,.sbtn:hover{background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,0) 48%),var(--crimson);box-shadow:0 18px 36px -8px rgba(163,13,34,.55),inset 0 1px 0 rgba(255,255,255,.3)}

/* Inputs */
input,select,textarea,.search input{border-radius:var(--g-r-sm);background:var(--g-flat);box-shadow:inset 0 1px 0 var(--g-hi),0 0 0 1px var(--g-edge),0 8px 20px -10px rgba(30,50,110,.25)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--crimson);box-shadow:0 0 0 4px rgba(163,13,34,.14),inset 0 1px 0 var(--g-hi)}
label{gap:8px}
form{padding:26px;gap:14px}
.consent input{box-shadow:none;border-radius:6px}

/* Small chips, lists, tables */
.tags span,.filters>*,.hits>*{border-radius:999px;padding:9px 14px;box-shadow:inset 0 1px 0 var(--g-hi),0 0 0 1px var(--g-edge),0 8px 18px -8px rgba(30,50,110,.25)}
.list{columns:2}
.list li{border-bottom:0;margin:0 0 10px;padding:12px 16px;border-radius:var(--g-r-sm)}
.term{padding:20px 22px}
.term .t{border-bottom:1px solid var(--g-line)}
table{border-collapse:separate;border-spacing:0;overflow:hidden;width:100%}
table th{background:var(--g-bg2);position:sticky;top:0}
table th,table td{border-bottom:1px solid var(--g-line);padding:12px 14px}
table tr:last-child td{border-bottom:0}
.tw{padding:6px}
.note{padding:14px 18px;margin-top:16px}
.cta{padding:28px 30px}
.emb{overflow:hidden}
.emb img{border-radius:inherit}

/* Docs page + footer */
.mono,code{background:rgba(163,13,34,.06);padding:2px 6px;border-radius:6px}
:root[data-theme="dark"] .mono,:root[data-theme="dark"] code{background:rgba(224,51,74,.14)}
footer.site,footer{border-top:0;margin-top:40px}
footer.site .wrap,footer .wrap{background:var(--g-bg);-webkit-backdrop-filter:blur(var(--g-blur)) saturate(180%);backdrop-filter:blur(var(--g-blur)) saturate(180%);border:1px solid var(--g-line);border-radius:var(--g-r);padding:26px 28px;box-shadow:inset 0 1px 0 var(--g-hi),0 0 0 1px var(--g-edge),var(--g-shadow)}

/* Crimson rule glow on the hero statement */
.hero h1{position:relative}
.hero h1::after{content:"";position:absolute;left:-4px;top:0;bottom:0;width:4px;background:var(--crimson);border-radius:4px;box-shadow:0 0 28px rgba(163,13,34,.55)}

@media (max-width:720px){header{margin:8px 8px 0;top:8px}header nav a{padding:6px 8px}.list{columns:1}.facts>div,.stack>div,.card,.grid>div{padding:16px 18px}body::after{width:90vmax;height:90vmax;left:10%}}
