@font-face{font-family:'Outfit';src:url('/assets/fonts/outfit-latin.woff2') format('woff2');font-weight:300 800;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('/assets/fonts/instrument-serif-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('/assets/fonts/instrument-serif-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{
--bg:#07090C; --surface:#0E1318; --surface-2:#12181E; --card-dark:#0B1014;
--text:#EEF5F8; --text-lead:#C4CFD6; --text-body:#B7C3CB; --text-muted:#9AA8B2; --text-subtle:#8795A0;
--line:rgba(238,245,248,.08); --line-2:rgba(238,245,248,.12); --line-3:rgba(238,245,248,.14); --line-strong:rgba(238,245,248,.25);
--ice:#A8DDEE; --ice-hover:#C4E8F3; --ice-glow:rgba(168,221,238,.35); --ice-deep:#1F6F8B;
--frost:#F3F6F7; --frost-card:#E6ECEE; --ink:#0B1014; --ink-body:#3F4C55; --ink-muted:#56636C; --ink-line:#C5CFD4;
--font-sans:'Outfit',-apple-system,'Helvetica Neue',Helvetica,sans-serif;
--font-serif:'Instrument Serif',Georgia,serif;
--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
--gutter:24px; --pad-x:24px; --section-y:96px; --head-gap:40px; --radius-card:20px;
--ease-ice:cubic-bezier(.65,0,.35,1);
}
@media (min-width:768px){:root{--pad-x:48px;--section-y:112px;--head-gap:56px;--radius-card:24px}}
@media (min-width:1280px){:root{--pad-x:120px;--section-y:144px;--head-gap:72px}}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);color-scheme:dark;accent-color:var(--ice);scroll-behavior:smooth;scrollbar-color:#2A333B var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
::selection{background:var(--ice);color:var(--bg)}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#2A333B;border-radius:10px;border:2px solid var(--bg)}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,figure,blockquote,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
em{font-style:normal}
:focus-visible{outline:2px solid var(--ice);outline-offset:3px;border-radius:4px}
.frost :focus-visible{outline-color:var(--ice-deep)}
section{scroll-margin-top:96px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--ice);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:500}
.skip:focus{top:16px}
.container{max-width:1440px;margin-inline:auto;padding-inline:var(--pad-x)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
.section{padding-block:var(--section-y)}
.frost{background:var(--frost);color:var(--ink)}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);line-height:1.2}
.frost .eyebrow{color:var(--ink-muted)}
.h2{font-size:clamp(38px,4.45vw,64px);line-height:1.05;font-weight:600;letter-spacing:-.035em;text-wrap:balance}
.serif{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--ice)}
.frost .serif{color:var(--ice-deep)}
p{text-wrap:pretty}
@media (min-width:768px){.eyebrow{font-size:13px}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:56px;padding:0 28px;border-radius:999px;font-size:17px;font-weight:500;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn--primary,.btn--primary:link,.btn--primary:visited,.btn--primary:hover,.btn--primary:active,.btn--primary:focus-visible{background:var(--ice);color:#07090C;-webkit-text-fill-color:#07090C;font-weight:600;opacity:1}
.btn--primary:hover{background:var(--ice-hover)}
.btn--primary svg{stroke:currentColor}
.btn--ghost{border:1px solid var(--line-strong);color:var(--text)}
.btn--ghost:hover{border-color:var(--text)}
.btn--sm{height:44px;padding:0 22px;font-size:15px}
.header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);transition:background .2s,backdrop-filter .2s}
.header.is-scrolled{background:rgba(7,9,12,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.header__inner{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;height:44px;flex-shrink:0}
.brand .logo-mark{width:31px;height:36px}
.brand__word{display:flex;align-items:baseline;gap:1px;font-size:22px;letter-spacing:-.02em;line-height:1}
.brand__tag{font-weight:700;color:var(--text)}
.brand__isen{font-family:var(--font-serif);font-style:italic;font-size:26px;color:var(--ice)}
.nav{display:none;gap:40px;font-size:15px;color:var(--text-body);white-space:nowrap}
.nav a:hover{color:var(--text)}
.header__right{display:flex;align-items:center;gap:12px}
.lang{display:flex;gap:6px;font-size:13px;font-weight:500;letter-spacing:.06em;color:var(--text-subtle)}
.lang [aria-current]{color:var(--text)}
.header__cta{display:none;white-space:nowrap}
.menu-btn{width:44px;height:44px;border-radius:999px;border:1px solid rgba(238,245,248,.2);background:transparent;color:var(--text);display:grid;place-items:center;cursor:pointer}
.menu-btn svg{width:18px;height:18px}
.menu{position:fixed;inset:64px 0 0 0;z-index:49;background:var(--bg);padding:32px var(--pad-x) calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.menu.is-open{opacity:1;visibility:visible}
.menu a.menu__link{font-size:32px;font-weight:600;letter-spacing:-.02em}
.menu .btn{margin-top:auto;width:100%}
@media (min-width:768px){
.header__inner{height:80px}
.brand{gap:12px}.brand .logo-mark{width:36px;height:42px}.brand__word{font-size:26px}.brand__isen{font-size:30px}
.header__cta{display:inline-flex}.menu{inset:80px 0 0 0}
.header__right{gap:20px}
}
@media (min-width:1024px){
.nav{display:flex;gap:24px}.menu-btn,.menu{display:none}
.header__right{gap:28px}
}
@media (min-width:1280px){.nav{gap:40px}}
.hero{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(900px 600px at 78% 50%,rgba(168,221,238,.08),rgba(7,9,12,0) 70%),linear-gradient(180deg,#0A0F14 0%,#07090C 100%)}
.hero .sky{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero__inner{display:flex;flex-direction:column;gap:24px;padding-top:24px;padding-bottom:40px}
.hero__scene{display:flex;justify-content:center}
.hero__scene .isfall{width:270px;height:auto;flex-shrink:0;pointer-events:none}
.hero__text{display:flex;flex-direction:column;gap:24px}
.hero h1{font-size:clamp(76px,10.8vw,156px);line-height:.92;font-weight:700;letter-spacing:-.045em}
.hero h1 em{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.015em;color:var(--ice);text-shadow:0 0 60px var(--ice-glow)}
.hero__lead{font-size:18px;line-height:1.5;font-weight:300;color:var(--text-lead);max-width:560px}
.hero__ctas{display:flex;flex-direction:column;gap:12px}
.hero__ctas .btn{width:100%}
@media (min-width:768px){
.hero__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:center;min-height:min(820px,calc(100svh - 80px));padding-block:0}
.hero__text{grid-column:1/span 7;gap:32px;order:0}
.hero__scene{grid-column:8/span 5;order:1}
.hero__scene .isfall{width:450px}
.hero__lead{font-size:21px}
.hero__ctas{flex-direction:row;gap:12px;margin-top:8px}.hero__ctas .btn{width:auto}
}
@media (min-width:1280px){.hero__inner{min-height:820px}.hero__scene{grid-column:9/span 4}.hero__scene .isfall{width:576px}}
.head{display:grid;gap:16px;margin-bottom:var(--head-gap)}
@media (min-width:1024px){.head--split{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:end}
.head--split .eyebrow{grid-column:1/-1}.head--split .h2{grid-column:1/span 8}.head--split p{grid-column:9/span 4}}
.head p{font-size:18px;line-height:1.6;color:var(--ink-body)}
.dark .head p{color:var(--text-muted)}
.compare{display:grid;gap:16px}
.compare__card{padding:28px;border-radius:var(--radius-card);display:flex;flex-direction:column;gap:24px}
.compare__card--without{background:var(--frost-card);color:var(--ink-body)}
.compare__card--with{background:var(--card-dark);color:var(--text)}
.compare__top{display:flex;justify-content:space-between;align-items:flex-start}
.compare__label{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}
.compare__card--with .compare__label{color:var(--ice)}
.compare__glass{display:none;width:104px;height:124px}
.compare li{padding:14px 0;border-top:1px solid var(--ink-line);font-size:17px}
.compare__card--with li{border-top-color:var(--line-3)}
@media (min-width:768px){.compare{grid-template-columns:1fr 1fr;gap:24px}.compare__card{padding:40px}.compare__glass{display:block}.compare li{padding:18px 0;font-size:19px}}
@media (min-width:1280px){.compare__card{padding:48px}}
.cards{display:grid;gap:12px}
.card{padding:28px;border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.card__num{font-size:13px;font-weight:500;color:var(--ice)}
.card h3{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
.card p{font-size:16px;line-height:1.55;color:var(--text-body);max-width:460px}
.card__tags{margin-top:auto;padding-top:12px;font-size:13px;letter-spacing:.02em;color:var(--text-subtle)}
@media (min-width:768px){.cards{grid-template-columns:1fr 1fr;gap:24px}.card{padding:40px;gap:16px;min-height:300px}.card h3{font-size:32px}.card p{font-size:18px;line-height:1.6}.card__tags{font-size:14px;padding-top:24px}}
@media (min-width:1280px){.card{padding:48px}}
.steps{display:grid;gap:40px}
.step{border-top:2px solid var(--ink);padding-top:24px;display:flex;flex-direction:column;gap:14px}
.step__num{font-size:14px;font-weight:500;color:var(--ink-muted)}
.step h3{font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.15}
.step p{font-size:16px;line-height:1.6;color:var(--ink-body)}
@media (min-width:768px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.step{padding:32px 24px 0 0;gap:16px}.step h3{font-size:36px}.step p{font-size:18px}}
.about{display:grid;gap:32px}
.portrait{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;border-radius:var(--radius-card);background:var(--surface)}
.about__text{display:flex;flex-direction:column;gap:24px}
.about__text .h2{font-size:clamp(34px,3.9vw,56px)}
.about__text p{font-size:17px;line-height:1.6;color:var(--text-body)}
.stats{display:none;grid-template-columns:1fr 1fr;gap:24px;padding-top:32px;border-top:1px solid var(--line-2)}
.stat b{display:block;font-size:56px;line-height:1;font-weight:600;letter-spacing:-.03em}
.stat span{font-size:15px;color:var(--text-muted)}
.clients{margin-top:72px;padding-top:40px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:28px}
.clients ul{display:grid;grid-template-columns:1fr 1fr;gap:28px 16px}
.clients li{display:flex;flex-direction:column;gap:8px}
.clients__name{font-family:var(--font-serif);font-size:28px;line-height:1}
.clients__city{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-subtle)}
@media (min-width:768px){
.about{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:center}
.about__media{grid-column:1/span 5}.about__text{grid-column:7/span 6;gap:28px}.about__text p{font-size:18px}.stats{display:grid;margin-top:12px}
.clients{margin-top:120px;padding-top:72px;gap:40px}.clients ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 24px}
.clients__name{font-size:clamp(36px,3.4vw,48px)}.clients__city{font-size:13px}.clients li{gap:14px}
}
.contact{border-top:1px solid var(--line);background:radial-gradient(1000px 520px at 50% 34%,rgba(168,221,238,.12),rgba(7,9,12,0) 70%);padding-top:112px;padding-bottom:40px}
.contact__inner{display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center}
.contact__pre{font-size:19px;font-weight:300;color:var(--text-body)}
.kristall{width:139px;height:160px;overflow:visible;filter:drop-shadow(0 0 28px rgba(168,221,238,.45))}
.contact .btn{width:100%}
.contact__links{display:flex;flex-direction:column;gap:4px;font-size:16px;color:var(--text-body)}
.contact__links a{padding:10px}
.contact__links a:hover{color:var(--text)}
.footer{margin-top:72px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;font-size:13px;color:var(--text-subtle)}
.footer nav{display:flex;gap:24px}
.footer a:hover{color:var(--text)}
@media (min-width:768px){
.contact{padding-top:160px;padding-bottom:48px}.contact__inner{gap:32px}.contact__pre{font-size:22px}
.kristall{width:226px;height:260px}.contact .btn{width:auto;height:60px;padding:0 32px;font-size:18px}
.contact__links{flex-direction:row;gap:32px;font-size:17px}.contact__links a{padding:0}
.footer{margin-top:144px;padding-top:32px;flex-direction:row;justify-content:space-between;align-items:center;font-size:14px}.footer nav{gap:32px}
}
.kristall .draw{stroke-dasharray:1;stroke-dashoffset:1}
.kristall.is-playing .draw{animation:kr-draw 9s var(--ease-ice) infinite}
@keyframes kr-draw{0%{stroke-dashoffset:1}32%,88%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
.is-offscreen *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.menu{transition:none}
.kristall .draw{stroke-dashoffset:0;animation:none!important}
}
.sky .tw{animation-name:skyTwinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.sky .skyDrift{animation:skyDrift 90s ease-in-out infinite alternate;will-change:transform}
@keyframes skyTwinkle{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes skyDrift{from{transform:translate(0,0)}to{transform:translate(-24px,-14px)}}
@media (prefers-reduced-motion:reduce){.sky *{animation:none!important}}
.isfall .stage{animation:isfStage 25.2s linear infinite}
.isfall .camera{transform-box:view-box;transform-origin:0 0;animation:isfCam 25.2s infinite;will-change:transform}
.isfall .halfL,.isfall .halfR,.isfall .grow,.isfall .head{transform-box:view-box;transform-origin:center}
.isfall .seamPatch{opacity:0;animation:isfSeam 25.2s linear infinite}
@keyframes isfSeam{0%,19.8%{opacity:0}19.84%,86.91%{opacity:1}87.14%,100%{opacity:0}}
.isfall .fall{transform-box:view-box;transform-origin:200px 177px;animation:isfFall 25.2s infinite;will-change:transform}
.isfall .halfL{animation:isfHalfL 25.2s cubic-bezier(.65,0,.35,1) infinite}
.isfall .halfR{animation:isfHalfR 25.2s cubic-bezier(.65,0,.35,1) infinite}
.isfall .ice{animation:isfIce 25.2s cubic-bezier(.65,0,.35,1) infinite}
.isfall .grow{animation:isfGrow 25.2s cubic-bezier(.65,0,.35,1) infinite}
.isfall .head{animation:isfHead 25.2s cubic-bezier(.65,0,.35,1) infinite}
.isfall .shine{animation:isfShine 7s ease-in-out infinite}
.isfall .trail{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;animation:isfTrail 25.2s infinite}
.isfall .spark{transform-box:fill-box;transform-origin:center;opacity:0;animation:isfSpark 25.2s ease-out infinite}
.isfall .water{transform-box:view-box;transform-origin:200px 610px;animation:isfWater 25.2s ease-in-out infinite}
.isfall .drift{animation:isfDrift 2.4s linear infinite}
.isfall .bubble{opacity:0;animation:isfBubble 25.2s linear infinite}
@keyframes isfBubble{0%,36.9%{opacity:0;transform:translateY(0)}37.6%{opacity:.85}41.8%{opacity:0;transform:translateY(var(--rise))}100%{opacity:0;transform:translateY(var(--rise))}}
.isfall .ripple{transform-box:view-box;transform-origin:200px 608px;opacity:0;animation:isfRipple 25.2s ease-out infinite}
.isfall .flash{transform-box:view-box;transform-origin:200px 606px;opacity:0;animation:isfFlash 25.2s ease-out infinite}
.isfall .crown{transform-box:view-box;transform-origin:200px 610px;opacity:0;animation:isfCrown 25.2s ease-out infinite}
.isfall .drop{opacity:0;animation:isfDrop 25.2s infinite}
@keyframes isfStage{0%{opacity:0}4.77%,82.93%{opacity:1}86.91%,100%{opacity:0}}
@keyframes isfCam{
0%,23.02%{transform:translate(200px,330px) scale(1.6) translate(-200px,-177px);animation-timing-function:cubic-bezier(.45,0,.55,1)}
26.59%{transform:translate(200px,330px) scale(1.35) translate(-225px,-95px);animation-timing-function:cubic-bezier(.45,0,.55,1)}
30.16%{transform:translate(200px,300px) scale(1.15) translate(-180px,-55px);animation-timing-function:cubic-bezier(.45,0,.4,1)}
34.92%,44.44%{transform:translate(200px,380px) scale(1) translate(-200px,-380px);animation-timing-function:cubic-bezier(.65,0,.35,1)}
50%,55.95%{transform:translate(200px,360px) scale(1.35) translate(-200px,-590px);animation-timing-function:cubic-bezier(.5,0,.2,1)}
67.06%{transform:translate(200px,380px) scale(.36) translate(459px,-60px);animation-timing-function:cubic-bezier(.3,0,.7,1)}
86.9%{transform:translate(200px,380px) scale(.32) translate(459px,-40px)}
87.1%,100%{transform:translate(200px,330px) scale(1.6) translate(-200px,-177px)}
}
@keyframes isfIce{0%,12.69%{opacity:0}16.67%,86.91%{opacity:1}87.14%,100%{opacity:0}}
@keyframes isfHalfL{0%,15.07%{transform:translateX(0)}19.84%,86.91%{transform:translateX(49px)}87.14%,100%{transform:translateX(0)}}
@keyframes isfHalfR{0%,15.07%{transform:translateX(0)}19.84%,86.91%{transform:translateX(-49px)}87.14%,100%{transform:translateX(0)}}
@keyframes isfGrow{0%,15.87%{transform:translateY(0)}21.03%,86.91%{transform:translateY(-75.5px)}87.14%,100%{transform:translateY(0)}}
@keyframes isfHead{0%{opacity:0;transform:translateY(-70px)}4.77%,12.69%{opacity:1;transform:translateY(0)}17.46%,100%{opacity:0;transform:translateY(-70px)}}
@keyframes isfShine{0%,100%{opacity:.35}50%{opacity:.8}}
@keyframes isfFall{
0%,23.01%{transform:translate(0,0) scale(1) rotate(0);animation-timing-function:cubic-bezier(.3,.6,.4,1)}
26.58%{transform:translate(25px,-82px) scale(.85) rotate(-16deg);animation-timing-function:cubic-bezier(.45,0,.55,1)}
30.15%{transform:translate(-20px,-122px) scale(.78) rotate(10deg);animation-timing-function:cubic-bezier(.55,0,.9,.55)}
34.92%{transform:translate(0,428px) scale(.55) rotate(9deg);animation-timing-function:cubic-bezier(.15,.55,.35,1)}
37.2%{transform:translate(0,488px) scale(.55) rotate(-5deg);animation-timing-function:ease-out}
38%{transform:translate(0,490px) scale(.55) rotate(-4deg);animation-timing-function:cubic-bezier(.45,0,.25,1)}
40.6%{transform:translate(0,415px) scale(.55) rotate(3deg);animation-timing-function:ease-in-out}
42.6%{transform:translate(0,435px) scale(.55) rotate(-1.5deg);animation-timing-function:ease-in-out}
44.6%{transform:translate(0,426px) scale(.55) rotate(.8deg);animation-timing-function:ease-in-out}
46.83%{transform:translate(0,430px) scale(.55) rotate(0);animation-timing-function:ease-in-out}
51.27%{transform:translate(0,426px) scale(.55) rotate(0);animation-timing-function:ease-in-out}
55.55%{transform:translate(0,430px) scale(.55) rotate(0);animation-timing-function:ease-in-out}
82.86%,86.91%{transform:translate(0,427px) scale(.55) rotate(0)}
87.14%,100%{transform:translate(0,0) scale(1) rotate(0)}
}
@keyframes isfTrail{
0%,30.77%{stroke-dashoffset:1;opacity:0}
30.99%{stroke-dashoffset:.94;opacity:1;animation-timing-function:cubic-bezier(.55,0,.9,.55)}
34.92%{stroke-dashoffset:0;opacity:1;animation-timing-function:ease-out}
38.42%,100%{stroke-dashoffset:0;opacity:0}
}
@keyframes isfSpark{0%,32.19%{opacity:0;transform:scale(.2)}33.63%{opacity:1;transform:scale(1.4)}36.98%,100%{opacity:0;transform:scale(.3)}}
@keyframes isfFlash{0%,34.77%{opacity:0;transform:scale(.3)}35.41%{opacity:1;transform:scale(1)}38.48%,100%{opacity:0;transform:scale(1.7)}}
@keyframes isfCrown{0%,34.84%{opacity:0;transform:scaleY(0)}35.84%{opacity:.9;transform:scaleY(1)}38.05%,100%{opacity:0;transform:scaleY(0)}}
@keyframes isfDrop{
0%,34.84%{opacity:0;transform:translate(0,0) scale(.4)}
35.06%{opacity:1;transform:translate(0,0) scale(.6);animation-timing-function:cubic-bezier(.2,.8,.4,1)}
37.48%{opacity:1;transform:translate(calc(var(--dx) * .7),var(--dy)) scale(1);animation-timing-function:cubic-bezier(.6,0,.9,.4)}
39.92%{opacity:0;transform:translate(var(--dx),24px) scale(.5)}
100%{opacity:0;transform:translate(var(--dx),24px) scale(.5)}
}
@keyframes isfRipple{0%,34.92%{opacity:0;transform:scale(1)}35.56%{opacity:.8}43.41%,100%{opacity:0;transform:scale(5.5)}}
@keyframes isfWater{
0%,34.92%{transform:translateY(0) rotate(0)}
35.84%{transform:translateY(-7px) rotate(-5deg)}
37.27%{transform:translateY(-8px) rotate(4deg)}
38.92%{transform:translateY(-7px) rotate(-2.5deg)}
40.84%{transform:translateY(-7px) rotate(1.4deg)}
43.27%{transform:translateY(-7px) rotate(-.6deg)}
45.56%,86.91%{transform:translateY(-7px) rotate(0)}
87.14%,100%{transform:translateY(0) rotate(0)}
}
@keyframes isfDrift{from{transform:translateX(0)}to{transform:translateX(-40px)}}
.isfall .spaceLines{opacity:0;animation:isfSpaceLines 25.2s linear infinite}
.isfall .spaceStars{opacity:0;animation:isfSpaceStars 25.2s linear infinite}
.isfall .streak{animation-name:isfStreak;animation-timing-function:linear;animation-iteration-count:infinite}
.isfall .starDrift{animation:isfStarDrift 9s linear infinite}
.isfall .twinkle{transform-box:fill-box;transform-origin:center;animation-name:isfTwinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
@keyframes isfSpaceLines{0%,23.02%{opacity:0}25.02%,34.95%{opacity:1}40.49%,100%{opacity:0}}
@keyframes isfSpaceStars{0%,23.02%{opacity:0}26.17%,100%{opacity:1}}
@keyframes isfStreak{0%{transform:translate(153px,258px);opacity:0}15%,80%{opacity:1}100%{transform:translate(-153px,-258px);opacity:0}}
@keyframes isfStarDrift{0%{transform:translate(18px,30px)}100%{transform:translate(-18px,-30px)}}
@keyframes isfTwinkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:.9;transform:scale(1)}}
.isfall .binL{animation:isfBinL 16s linear infinite}
.isfall .binR{animation:isfBinR 21s linear infinite}
@keyframes isfBinL{from{transform:translateX(0)}to{transform:translateX(-120px)}}
@keyframes isfBinR{from{transform:translateX(-120px)}to{transform:translateX(0)}}
.isfall .termScroll{animation:isfTerm 14s linear infinite}
.isfall .cursor{animation:isfCursor 1s steps(1) infinite}
@keyframes isfTerm{from{transform:translateY(0)}to{transform:translateY(-800px)}}
@keyframes isfCursor{0%,50%{opacity:1}50.01%,100%{opacity:0}}
.isfall .devFloat{animation:isfDevFloat 3.2s ease-in-out infinite}
@keyframes isfDevFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.isfall .desk{opacity:0;animation:isfDesk 25.2s linear infinite}
@keyframes isfDesk{0%,55.95%{opacity:0}59.5%,86.9%{opacity:1}87.1%,100%{opacity:0}}
.isfall .deskGlow{opacity:0;animation:isfDeskGlow 25.2s linear infinite}
.isfall .moonLight{opacity:0;animation:isfDeskGlow 25.2s linear infinite}
@keyframes isfDeskGlow{0%,55.95%{opacity:0}67.06%,86.9%{opacity:1}87.1%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){
.isfall *{animation:none !important}
.isfall .spaceLines,.isfall .ice,.isfall .trail,.isfall .spark,.isfall .flash,.isfall .crown,.isfall .drop,.isfall .ripple{opacity:0 !important}
}
.network-section{background:radial-gradient(800px 560px at 72% 50%,rgba(168,221,238,.07),rgba(7,9,12,0) 70%),var(--bg);border-top:1px solid var(--line)}
.network-layout{display:flex;flex-direction:column;gap:32px}
.network-text{display:flex;flex-direction:column;gap:24px}
.network-text .h2{font-size:clamp(38px,3.9vw,56px)}
.network-lead{font-size:17px;line-height:1.6;color:var(--text-body)}
.network-points{display:flex;flex-direction:column;gap:18px}
.network-points li{display:flex;flex-direction:column;gap:6px;padding-top:16px;border-top:1px solid var(--line-2)}
.network-points b{font-size:17px;font-weight:600;letter-spacing:-.01em}
.network-points span{font-size:14px;line-height:1.55;color:var(--text-body)}
.network-text .btn{width:100%;margin-top:4px}
.network-visual{order:-1;display:flex;justify-content:center}
.network{width:100%;max-width:588px;height:auto}
@media (min-width:768px){
.network-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:center}
.network-text{grid-column:1/span 6;gap:28px;padding-right:24px;order:0}
.network-visual{grid-column:7/span 6;order:1}
.network-lead{font-size:18px}
.network-points{gap:20px}.network-points li{padding-top:18px}.network-points b{font-size:18px}.network-points span{font-size:15px}
.network-text .btn{width:auto;align-self:flex-start;margin-top:8px}
}
.network:not(.is-playing) *{animation-play-state:paused!important}
.network .hub{transform-box:view-box;animation:nwHub 14s cubic-bezier(.65,0,.35,1) infinite}
.network .nwGlow{animation:nwGlow 14s ease-in-out infinite}
.network .e1,.network .e2,.network .e3{stroke-dasharray:1;stroke-dashoffset:1}
.network .e1{animation:nwE1 14s ease-out infinite}
.network .e2{animation:nwE2 14s ease-out infinite}
.network .e3{animation:nwE3 14s ease-out infinite}
.network .n1,.network .n2{transform-box:view-box;opacity:0}
.network .n1{animation:nwN1 14s cubic-bezier(.2,.8,.3,1) infinite}
.network .n2{animation:nwN2 14s cubic-bezier(.2,.8,.3,1) infinite}
.network .pulses{opacity:0;animation:nwPulses 14s linear infinite}
.network .pulse{stroke-dasharray:.05 .95;stroke-dashoffset:1;animation-name:nwPulse;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes nwHub{0%,10.7%{transform:scale(2.3)}21.4%,94.6%{transform:scale(1)}100%{transform:scale(2.3)}}
@keyframes nwGlow{0%,10.7%{opacity:.5}30%,88%{opacity:1}100%{opacity:.5}}
@keyframes nwE1{0%,21.4%{stroke-dashoffset:1;opacity:1}31.4%,88%{stroke-dashoffset:0;opacity:1}95%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes nwE2{0%,34.3%{stroke-dashoffset:1;opacity:1}44.3%,88%{stroke-dashoffset:0;opacity:1}95%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes nwE3{0%,45%{stroke-dashoffset:1;opacity:1}52.1%,88%{stroke-dashoffset:0;opacity:1}95%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes nwN1{0%,27%{opacity:0;transform:scale(.5)}34.3%,88%{opacity:1;transform:scale(1)}95%,100%{opacity:0;transform:scale(.8)}}
@keyframes nwN2{0%,40%{opacity:0;transform:scale(.5)}47.1%,88%{opacity:1;transform:scale(1)}95%,100%{opacity:0;transform:scale(.8)}}
@keyframes nwPulses{0%,52%{opacity:0}56%,86%{opacity:.9}91%,100%{opacity:0}}
@keyframes nwPulse{from{stroke-dashoffset:1}to{stroke-dashoffset:-.05}}
@media (prefers-reduced-motion:reduce){.network *{animation:none !important}.network .e1,.network .e2,.network .e3{stroke-dashoffset:0}.network .n1,.network .n2{opacity:1}.network .pulses{opacity:0}}