@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../assets/fonts/fraunces-latin-opsz-italic.woff2) format("woff2-variations"),url(../assets/fonts/fraunces-latin-opsz-italic.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}

/* Tokens: see DESIGN.md */
:root{--night:#06101f;--deep:#0b1d36;--snow:#eaf1f8;--mist:#9fb3c8;--fjord:#5aa0da;--ember:#f0585e;--aurora:#5ef0c0;
--paper:rgba(246,249,252,.96);--paper-line:#dce4ee;--paper-rule:#d5dde8;--paper-edge:#c9d4e2;--ink:#3a4658;--ink-soft:#4a5568;--navy:#14325c;--wave:#3d7fb8;--white:#fff;
--mono:'JetBrains Mono',ui-monospace,monospace;--display-scale:1}

body{margin:0;background:#06101f;-webkit-font-smoothing:antialiased}
a{color:#5aa0da}a:hover{color:#eaf1f8}
@keyframes nbRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes nbBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(.4deg)}}
@keyframes nbPulse{50%{opacity:.3}}
@keyframes nbBlink{50%{opacity:0}}
.nb-up{opacity:0;animation:nbRise 1.2s cubic-bezier(.2,.7,.2,1) forwards}
.nb-d1{animation-delay:.25s}.nb-d2{animation-delay:.45s}.nb-d3{animation-delay:.65s}.nb-d4{animation-delay:.85s}.nb-d5{animation-delay:1.05s}
.nb-ship{opacity:0;animation:nbRise 1.6s cubic-bezier(.2,.7,.2,1) .1s forwards,nbBob 6s ease-in-out 1.8s infinite}
.nb-pulse{animation:nbPulse 2s ease-in-out infinite}
.nb-cursor{animation:nbBlink 1s steps(1) infinite}
@media (prefers-reduced-motion: reduce){.nb-up,.nb-ship,.nb-pulse,.nb-cursor{animation:none!important;opacity:1}}
html{scroll-behavior:smooth;scroll-padding-top:120px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
.nb-skip{position:absolute;left:-9999px;top:8px;z-index:200;background:#eaf1f8;color:#06101f;padding:10px 16px;border-radius:8px;font-family:Inter,system-ui,sans-serif;font-weight:600}
.nb-skip:focus{left:12px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #5ef0c0;outline-offset:3px}
[hidden]{display:none!important}

/* Header (light) */
.nb-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--paper-line);backdrop-filter:blur(14px);box-shadow:0 12px 40px rgba(0,0,0,.28)}
.nb-nav{max-width:1240px;margin:0 auto;padding:10px 32px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.nb-home{display:flex;align-items:center;gap:12px;text-decoration:none}
.nb-logo{height:92px;width:auto;display:block}
.nb-tagline{margin-left:8px;padding-left:16px;border-left:1px solid var(--paper-rule);font-family:var(--mono);font-size:11px;line-height:1.35;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.nb-links{display:flex;flex-wrap:wrap;align-items:center;gap:30px;font-size:15px}
.nb-link,.nb-link:hover{color:var(--ink);text-decoration:none;font-weight:500;padding:8px 0;border-bottom:2px solid transparent}
.nb-link[aria-current="page"],.nb-link[aria-current="page"]:hover{color:var(--navy);font-weight:600;border-bottom-color:var(--wave)}
.nb-lang{display:flex;gap:4px;font-family:var(--mono);font-size:12px}
.nb-lang-link,.nb-lang-link:hover{color:var(--ink-soft);text-decoration:none;padding:6px 8px;border:1px solid transparent;border-radius:6px}
.nb-lang-current{color:var(--navy);padding:6px 8px;border:1px solid var(--paper-edge);border-radius:6px;font-weight:500}
.nb-cta,.nb-cta:hover{background:var(--navy);color:var(--white);text-decoration:none;font-weight:600;padding:11px 20px;border-radius:999px}
.nb-header-line{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--aurora) 20%,var(--fjord) 50%,#b48cff 80%,transparent);opacity:.85;pointer-events:none}

/* Tablet and phone: large headings scale down via --display-scale (used in the pages' font sizes of 40px and up) */
@media (max-width:1100px){:root{--display-scale:.8}}
@media (max-width:760px){
:root{--display-scale:.55}
h1,h2,h3{overflow-wrap:break-word}
:lang(nb) :is(h1,h2,h3){hyphens:auto}
/* Header: logo, language and call-to-action on the first row, page links on the second */
.nb-nav{padding:8px 16px;gap:8px 12px}
.nb-nav::after{content:"";order:3;flex-basis:100%}
.nb-logo{height:52px}
.nb-tagline{display:none}
.nb-links{display:contents}
.nb-lang{order:1;margin-left:auto}
.nb-cta,.nb-cta:hover{order:2;padding:9px 16px;font-size:14px}
.nb-link,.nb-link:hover{order:4;padding:4px 0;font-size:14px}
}
