@font-face{font-family:InterTight;src:url(assets/fonts/inter-tight/InterTight-Black.ttf) format('truetype');font-weight:900;font-display:swap}
.grain-hero{height:100svh;min-height:580px;position:relative;overflow:hidden;isolation:isolate;background:#0b121b}.light-field{position:absolute;inset:5.5% 4% 6%;border-radius:8%;filter:blur(29px);overflow:hidden;transform:scale(.98);background:#68e0da}.light-colors{position:absolute;inset:-7%;background:radial-gradient(ellipse at 22% 28%,#a5f1c9 0%,transparent 32%),radial-gradient(ellipse at 55% 22%,#2ec6e4 0%,transparent 37%),radial-gradient(ellipse at 97% 43%,#285bb8 0%,transparent 47%),radial-gradient(ellipse at 24% 104%,#ff4a16 0%,transparent 40%),radial-gradient(ellipse at 5% 55%,#fd9536 0%,transparent 35%),radial-gradient(ellipse at 65% 96%,#8b559a 0%,transparent 45%),linear-gradient(110deg,#9cdaa8 0%,#59bfd6 42%,#4171c6 70%,#402b62 100%);animation:light-breathe 16s ease-in-out infinite alternate}.atmosphere{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,13,22,.85),transparent 30%,transparent 83%,rgba(6,10,15,.6));z-index:1}.grain-nav{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:30px 4.5vw}.grain-nav a{color:#e8e9df;text-decoration:none;font-size:12px;letter-spacing:.015em}.grain-nav .wordmark{font-size:26px;font-weight:700;letter-spacing:-1.4px}.grain-nav span{font-size:21px;margin-left:14px}.grain-copy{position:absolute;left:5.5%;right:5.5%;top:44%;transform:translateY(-28%);z-index:3}.grain-title{margin:0;width:100%;font-family:InterTight,'Arial Black',sans-serif;font-weight:900;letter-spacing:-.065em;line-height:.94;color:#132033;filter:url(#soft-type) blur(var(--type-blur,28px));opacity:var(--type-opacity,0);text-shadow:var(--halo-x,8px) 0 var(--halo-blur,26px) rgba(127,83,146,.45),calc(var(--halo-x,8px) * -1) 0 var(--halo-blur,26px) rgba(33,118,140,.5);will-change:filter,opacity}.grain-title span{display:block;width:max-content;white-space:nowrap;transform-origin:left center}.grain-subtitle{max-width:530px;margin:30px 0 0;font-size:13px;line-height:1.7;letter-spacing:.045em;color:#dce8df;opacity:var(--sub-opacity,0);filter:blur(var(--sub-blur,6px));text-shadow:0 1px 10px rgba(7,24,41,.4)}#grain-hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;mix-blend-mode:soft-light;opacity:.48;image-rendering:auto}.vignette{position:absolute;inset:0;z-index:6;pointer-events:none;box-shadow:inset 0 0 70px 20px rgba(5,9,16,.65);background:linear-gradient(90deg,rgba(5,10,18,.2),transparent 14%,transparent 86%,rgba(5,10,18,.18))}.grain-footer{position:absolute;bottom:28px;left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;z-index:8;font-size:11px;letter-spacing:.06em;color:#bbc5ce}.approach{display:flex;gap:16px}.grain-button{border:1px solid #a4bcc33b;background:#23324255;color:#d3dbdd;border-radius:30px;padding:10px 16px;font:inherit;cursor:pointer;backdrop-filter:blur(12px)}.grain-button:hover{background:#51637066}.grain-button:focus-visible{outline:2px solid #b3dfdc;outline-offset:4px}.grain-button span{font-size:17px;margin-left:10px}.filter-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
@keyframes light-breathe{from{transform:translate(-1%,0) scale(1.01);filter:hue-rotate(-5deg)}to{transform:translate(1.5%,1.5%) scale(1.04);filter:hue-rotate(5deg)}}
@media(max-width:700px){.grain-hero{min-height:540px}.grain-nav{padding:24px 6vw}.grain-nav .wordmark{font-size:24px}.grain-copy{left:6%;right:6%;top:45%;transform:translateY(-20%)}.grain-title{line-height:1.03}.grain-subtitle{max-width:280px;font-size:11px;line-height:1.8;margin-top:28px}.light-field{inset:9% 5% 13%;filter:blur(21px);border-radius:11%}.grain-footer{left:6%;right:6%;bottom:24px;font-size:10px}.vignette{box-shadow:inset 0 0 45px 12px rgba(5,9,16,.65)}}
@media(prefers-reduced-motion:reduce){.light-colors,.grain-title{will-change:auto}}

#intro-veil{position:absolute;inset:0;z-index:20;background:#000;opacity:1;pointer-events:none;will-change:opacity}

.grain-hero{font-family:Arial,Helvetica,sans-serif}.grain-hero *{box-sizing:border-box}.grain-footer a{color:inherit;text-decoration:none}.hero-navbar{animation:grain-nav-fade 1.5s ease both}@keyframes grain-nav-fade{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.hero-navbar{animation:none}#intro-veil{opacity:0}}

.grain-title .grain-mobile-line{display:none}
@media (min-width:1025px){.grain-title{letter-spacing:-.365em}}
@media (max-width:700px){.grain-title .grain-desktop-line{display:none}.grain-title .grain-mobile-line{display:block}.grain-copy{top:50%;transform:translateY(-50%)}}

.grain-copy{left:7.5%;right:7.5%}.grain-subtitle{font-size:26px}@media(max-width:700px){.grain-copy{left:7%;right:7%}.grain-subtitle{font-size:22px;max-width:100%}}

.grain-subtitle{max-width:100%;padding-left:10px;font-family:"Stack Sans Notch",Arial,Helvetica,sans-serif}

/* The complete headline separates into RGB channels, then settles into focus. */
.grain-copy .rgb-layer{position:absolute;inset:0 auto auto 0;pointer-events:none;filter:blur(var(--rgb-blur,18px));text-shadow:none;opacity:0;mix-blend-mode:screen;will-change:transform,opacity,clip-path}
.grain-copy .rgb-red{color:#ff334d;animation:rgb-red 3s ease-in-out both}
.grain-copy .rgb-green{color:#40ff72;animation:rgb-green 3s ease-in-out both}
.grain-copy .rgb-blue{color:#3b65ff;animation:rgb-blue 3s ease-in-out both}
@keyframes rgb-red{0%{opacity:0;transform:translate(-2.2vw,0)}14%{opacity:.65}55%{opacity:.8;transform:translate(-.8vw,0)}68%{transform:translate(-.5vw,2px)}72%{transform:translate(.1vw,-1px)}76%{transform:translate(-.4vw,1px)}85%{opacity:.65;transform:translate(-.12vw,0)}100%{opacity:0;transform:translate(0,0)}}
@keyframes rgb-green{0%{opacity:0;transform:translate(2.2vw,0)}14%{opacity:.65}55%{opacity:.8;transform:translate(.8vw,0)}68%{transform:translate(.5vw,-1px)}72%{transform:translate(-.1vw,2px)}76%{transform:translate(.3vw,-1px)}85%{opacity:.65;transform:translate(.12vw,0)}100%{opacity:0;transform:translate(0,0)}}
@keyframes rgb-blue{0%{opacity:0;transform:translate(0,.8vw)}14%{opacity:.65}55%{opacity:.8;transform:translate(0,.25vw)}68%{transform:translate(2px,.2vw)}72%{transform:translate(-2px,0)}76%{transform:translate(1px,.1vw)}85%{opacity:.65;transform:translate(0,.08vw)}100%{opacity:0;transform:translate(0,0)}}
@media(prefers-reduced-motion:reduce){.grain-copy .rgb-layer{animation:none;display:none}}

