/* Omat fontit (SIL Open Font License) */
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/dmmono-latin-ext-a17586.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/dmmono-latin-9ad76c.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/dmmono-latin-ext-6a5987.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/dmmono-latin-36c1af.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap; src: url('fonts/instrumentserif-latin-ext-7f7326.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap; src: url('fonts/instrumentserif-latin-253e49.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/manrope-cyrillic-84ddfc.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/manrope-latin-ext-59b5f9.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/manrope-latin-58ee19.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/manrope-cyrillic-84ddfc.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/manrope-latin-ext-59b5f9.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/manrope-latin-58ee19.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/manrope-cyrillic-84ddfc.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/manrope-latin-ext-59b5f9.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/manrope-latin-58ee19.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/manrope-cyrillic-84ddfc.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/manrope-latin-ext-59b5f9.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/manrope-latin-58ee19.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/manrope-cyrillic-84ddfc.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/manrope-latin-ext-59b5f9.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/manrope-latin-58ee19.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/unbounded-cyrillic-92a538.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/unbounded-latin-ext-770696.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/unbounded-latin-f2b2b2.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/unbounded-cyrillic-92a538.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/unbounded-latin-ext-770696.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/unbounded-latin-f2b2b2.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/unbounded-cyrillic-92a538.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/unbounded-latin-ext-770696.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/unbounded-latin-f2b2b2.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Hustech · yhteiset tyylit */
    :root{--bg:#05070d;--panel:#0a1022;--ink:#f4f6fb;--muted:#a9b2c8;--violet:#3d63ff;--violet2:#d4ff3a;--gold:#d4ff3a;--line:#ffffff1c;--max:1180px}
    *{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:radial-gradient(circle at 74% 0,#10235e 0,transparent 32%),var(--bg);color:var(--ink);font:16px/1.6 Manrope,system-ui,sans-serif;overflow-x:hidden}
    a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
    .wrap{width:min(var(--max),calc(100% - 40px));margin:auto}.mono{font:500 11px/1.2 'DM Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--violet2)}
    .skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--gold);color:#0a0d14;padding:10px 14px;border-radius:10px;font-weight:800}.skip:focus{top:12px}

    /* yläpalkki + mobiilivalikko */
    .nav{position:sticky;top:0;z-index:20;background:#05070de8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
    .navin{height:76px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.04em;margin-inline-end:auto}
    .brand img{width:42px;height:42px;object-fit:contain;border-radius:12px;background:#fff;padding:2px}
    .links{display:flex;gap:22px;color:var(--muted);font-size:14px;align-items:center}.links a:hover{color:#fff}
    .navcta{border:0;background:linear-gradient(135deg,#c6f432,#e4ff6b);color:#fff!important;padding:9px 14px;border-radius:12px;font-weight:700}
    .lang{position:relative}.lang>button,.menu{border:1px solid var(--line);background:#ffffff0c;color:var(--ink);padding:9px 12px;border-radius:12px;min-height:42px}
    .langs{display:none;position:absolute;inset-inline-end:0;top:48px;min-width:170px;padding:7px;background:#0d1430;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px #0008;z-index:30}
    .langs.show{display:grid}.langs a{display:block;color:var(--muted);text-align:start;padding:10px;border-radius:8px}.langs a:hover,.langs a[aria-current=true]{background:#ffffff14;color:#fff}
    .menu{display:none;align-items:center;gap:8px}.menu svg{width:18px;height:18px}
    .mnav{display:none;border-top:1px solid var(--line);padding:10px 0 18px}.mnav.show{display:block}.mnav a{display:block;padding:14px 4px;border-bottom:1px solid var(--line);font-weight:700;font-size:18px}.mnav a.navcta{display:block;text-align:center;border:0;margin-top:14px;font-size:16px}

    /* hero */
    .hero{min-height:calc(100svh - 76px);display:grid;align-items:center;position:relative;isolation:isolate;padding:72px 0;overflow:hidden}
    .stars,.stars:before,.stars:after{position:absolute;inset:0;pointer-events:none;content:"";background-image:radial-gradient(#ffffffbb 1px,transparent 1.5px);background-size:85px 85px;opacity:.35;z-index:-1}.stars:before{background-size:142px 142px;transform:rotate(18deg);opacity:.23}
    .heroGrid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:35px}
    .hero h1,.section h2{font:600 clamp(38px,6vw,76px)/.98 Unbounded,sans-serif;letter-spacing:-.075em;margin:18px 0}.hero h1 em{font-style:normal;color:var(--violet2)}
    .lead{font-size:clamp(17px,2vw,20px);max-width:52ch;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:30px}
    .btn{display:inline-block;border-radius:13px;padding:14px 20px;border:1px solid var(--line);color:var(--ink);font-weight:700;background:#ffffff0d;transition:transform .2s}.btn.primary{border:0;background:linear-gradient(135deg,#c6f432,#e4ff6b);box-shadow:0 18px 45px #b6e62a55}.btn:hover{transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:wait;transform:none}
    .trust{display:flex;flex-wrap:wrap;gap:17px;margin-top:25px;color:var(--muted);font-size:13px}.trust span:before{content:'✦';color:var(--gold);margin-inline-end:6px}
    .hero-art{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#05070d 0%,#05070def 34%,#05070d18 73%,#05070d00),url('hero-1672.webp') center/cover no-repeat;opacity:.88}
    [dir=rtl] .hero-art{background:linear-gradient(270deg,#05070d 0%,#05070def 34%,#05070d18 73%,#05070d00),url('hero-1672.webp') center/cover no-repeat}
    .orbitScene{min-height:420px;display:grid;place-items:center;position:relative;perspective:1000px}
    .orbit{position:absolute;width:min(520px,92vw);aspect-ratio:1;border:1px solid #6f8cff55;border-radius:50%;transform:rotateX(66deg) rotateZ(-23deg);box-shadow:inset 0 0 48px #3d63ff45}.orbit.b{width:75%;transform:rotateX(68deg) rotateZ(48deg);border-color:#d4ff3a55}
    .chip{width:min(310px,60vw);aspect-ratio:1;position:relative;transform:rotateX(54deg) rotateZ(-33deg);transform-style:preserve-3d;transition:transform .15s ease;filter:drop-shadow(0 36px 32px #000b)}
    .chip:before{content:"";position:absolute;inset:0;border-radius:34px;background:linear-gradient(135deg,#2b4bd6,#070b18 52%,#5b7cff);border:2px solid #dfe6ff;box-shadow:inset 0 0 0 13px #0f1a3d,inset 0 0 45px #4d6fff66,0 0 0 15px #1c2f80,0 0 50px #3d63ff}
    .chip:after{content:"";position:absolute;inset:16%;border-radius:25px;background:#fbf5e9 url('logo-ht-256.png') center/78% no-repeat;box-shadow:0 0 0 2px #d4ff3a,0 0 30px #d4ff3a99;transform:translateZ(14px)}
    .chipPins{position:absolute;inset:-26px;background:repeating-linear-gradient(90deg,transparent 0 28px,#d4ff3a 29px 38px,transparent 39px 73px);-webkit-mask:linear-gradient(90deg,#000,transparent 12%,transparent 88%,#000);mask:linear-gradient(90deg,#000,transparent 12%,transparent 88%,#000);opacity:.9}
    .scrollCue{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:var(--muted);font:11px 'DM Mono',monospace;letter-spacing:.15em}

    /* osiot */
    .section{padding:clamp(75px,11vw,140px) 0}.section h2{font-size:clamp(32px,5vw,58px);max-width:16ch}.sectionLead{max-width:62ch;color:var(--muted);margin-top:18px}
    .route{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:42px}
    .route button{min-height:232px;padding:22px;border:1px solid var(--line);border-radius:20px;color:var(--ink);text-align:start;background:linear-gradient(145deg,#0f1a3db8,#070b18);transition:.2s}
    .route button:hover,.route button.active{border-color:var(--violet2);transform:translateY(-6px);box-shadow:0 20px 40px #0005}
    .route i{display:block;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 20px var(--gold)}
    .route button:nth-child(2) i{background:#7be0f2;box-shadow:0 0 20px #7be0f2}.route button:nth-child(3) i{background:#5b7cff;box-shadow:0 0 20px #5b7cff}.route button:nth-child(4) i{background:#78e7b6;box-shadow:0 0 20px #78e7b6}
    .route strong{display:block;font:600 22px Unbounded,sans-serif;margin:33px 0 9px;letter-spacing:-.06em}.route p{margin:0;color:var(--muted);font-size:14px}
    .services{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}
    .service{border:1px solid var(--line);border-radius:22px;background:#ffffff08;overflow:hidden;transition:border-color .25s,transform .25s,box-shadow .25s}
    .service:hover,.service.picked{border-color:#d4ff3a88;transform:translateY(-5px);box-shadow:0 18px 38px #0004}.service.picked{border-color:var(--gold)}
    .service img{height:auto;width:100%}
    .service div{padding:25px}.service h3{font:600 25px Unbounded,sans-serif;letter-spacing:-.06em;margin:0}.service p{color:var(--muted);margin:12px 0 0}
    .tag{display:inline-block;border:1px solid var(--line);border-radius:999px;color:var(--violet2);padding:5px 9px;font:10px 'DM Mono',monospace;margin:17px 0 0;margin-inline-end:5px}
    .work{border:1px solid #3d63ff55;border-radius:26px;background:radial-gradient(circle at 85% 10%,#2f5bff55,transparent 30%),#0a1022;padding:clamp(25px,6vw,65px);margin-top:35px}
    .flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:30px}
    .flow button{position:relative;padding:15px;border-radius:14px;text-align:start;background:#ffffff0b;border:1px solid var(--line);font-size:13px;color:var(--ink);transition:transform .22s,border-color .22s,background .22s,box-shadow .22s}
    .flow button:hover,.flow button.active{transform:translateY(-4px);border-color:var(--violet2);background:#3d63ff1f;box-shadow:0 12px 28px #0004}.flow button.hot{animation:flowPulse .8s ease both}
    .flow b{display:block;color:var(--gold);font:11px 'DM Mono',monospace;margin-bottom:7px}
    .flow button+button:before{content:'→';position:absolute;left:-17px;top:17px;color:var(--violet2)}[dir=rtl] .flow button+button:before{content:'←';left:auto;right:-17px}
    @keyframes flowPulse{50%{box-shadow:0 0 0 7px #6f8cff22,0 0 34px #6f8cff88;transform:translateY(-6px)}}
    .flow-actions{display:flex;align-items:center;gap:13px;margin-top:18px;flex-wrap:wrap}.flow-run{border:0;border-radius:12px;padding:12px 15px;color:#0a0d14;background:linear-gradient(135deg,#d4ff3a,#8fa6ff);font-weight:800}.flow-run.running{opacity:.72;pointer-events:none}.flow-help{font-size:12px;color:var(--muted)}
    .control-room{margin-top:26px;display:grid;grid-template-columns:1.08fr .92fr;gap:22px;align-items:stretch}
    .control-room img{width:100%;height:100%;min-height:360px;object-fit:cover;border-radius:20px;border:1px solid var(--line);transition:filter .3s,transform .3s}.control-room.running img{filter:saturate(1.18) brightness(1.1);transform:scale(1.01)}
    .metrics{display:grid;gap:12px}.metric{border:1px solid var(--line);background:#ffffff0a;border-radius:18px;padding:18px;transition:border-color .3s,background .3s}.metric.flash{border-color:var(--gold);background:#d4ff3a13}
    .metric small{display:block;color:var(--muted);font:11px 'DM Mono',monospace;letter-spacing:.09em}.metric strong{display:block;font:600 clamp(22px,3vw,38px) Unbounded,sans-serif;margin:8px 0;color:#fff}.metric p{font-size:13px;margin:0;color:var(--muted)}
    .activity{overflow:hidden}.activity span{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted);transition:color .3s,transform .3s}.activity span span{border:0;padding:0}.activity span.live{color:#fff;transform:translateX(4px)}.activity i{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);flex:none}

    /* paketit + ukk */
    .packs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px;align-items:stretch}
    .pack{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:22px;background:#ffffff08;padding:28px}
    .pack.pop{border-color:var(--gold);background:radial-gradient(circle at 80% 0,#2f5bff40,transparent 45%),#ffffff0a;box-shadow:0 22px 50px #0005}
    .packBadge{position:absolute;top:-12px;inset-inline-start:24px;background:var(--gold);color:#0a0d14;font:700 11px 'DM Mono',monospace;letter-spacing:.1em;padding:5px 10px;border-radius:999px}
    .pack h3{font:600 28px Unbounded,sans-serif;letter-spacing:-.06em;margin:0}.packDesc{color:var(--muted);margin:8px 0 18px;font-size:15px}
    .pack ul{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:9px;flex:1}.pack li{display:flex;gap:10px;font-size:15px}.pack li:before{content:'✓';color:var(--gold);font-weight:800;flex:none}
    .pack .btn{text-align:center}
    .packInfo{margin-top:26px;display:grid;gap:8px;color:var(--muted);font-size:14px;max-width:80ch}.packInfo p{margin:0}.packInfo strong{color:var(--ink)}
    .faq{margin-top:34px;display:grid;gap:10px;max-width:860px}
    .faq details{border:1px solid var(--line);border-radius:16px;background:#ffffff08}.faq details[open]{border-color:#d4ff3a66}
    .faq summary{cursor:pointer;list-style:none;padding:18px 20px;font-weight:700;display:flex;justify-content:space-between;gap:14px}.faq summary::-webkit-details-marker{display:none}
    .faq summary:after{content:'+';color:var(--violet2);font-size:22px;line-height:1;flex:none}.faq details[open] summary:after{content:'–'}
    .faq details p{margin:0;padding:0 20px 18px;color:var(--muted)}
    .book{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;color:var(--muted);font-size:14px}.book[hidden]{display:none}

    /* yhteys */
    .contact{display:grid;grid-template-columns:1fr .9fr;gap:36px;align-items:start}.card{border:1px solid var(--line);border-radius:23px;background:#ffffff08;padding:28px}
    .contactInfo a{color:#fff;font-weight:700}.contactInfo p{margin:25px 0 0;line-height:1.9}
    .form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form .full{grid-column:1/-1}.form label{font-size:13px;color:var(--muted)}
    .form input,.form textarea,.form select{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#05070d;color:var(--ink)}
    .form select{appearance:none;background:#05070d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c4a3ff' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;padding-inline-end:36px}
    [dir=rtl] .form select{background-position:left 14px center}
    .form input[aria-invalid=true]{border-color:#ff7a9a}.form textarea{min-height:120px;resize:vertical}.form .btn{width:100%;font-size:16px}
    .hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
    .form .agree{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink);cursor:pointer}.form .agree a{text-decoration:underline;color:var(--violet2)}
    .form .agree input{width:20px;height:20px;margin:1px 0 0;padding:0;flex:none;accent-color:#e4ff6b;cursor:pointer}.form .agree input[aria-invalid=true]{outline:2px solid #ff7a9a;outline-offset:2px}
    .status{font-size:14px;margin:0;min-height:1.4em}.status.ok{color:#78e7b6}.status.err{color:#ff9db3}
    .socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.socials a{padding:9px 12px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.socials a:hover{color:#fff;border-color:var(--violet2)}
    footer{border-top:1px solid var(--line);padding:30px 0;color:var(--muted);font-size:13px}.foot{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center}.foot nav{display:flex;gap:16px;flex-wrap:wrap}.foot a:hover{color:#fff}

    .reveal-up{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal-up.in{opacity:1;transform:none}

    /* arabia: oikealta vasemmalle */
    [dir=rtl] body{font-family:Tahoma,'Segoe UI',Arial,sans-serif}[dir=rtl] .mono,[dir=rtl] .hero h1,[dir=rtl] .section h2,[dir=rtl] .route strong,[dir=rtl] .service h3{letter-spacing:0}
    [dir=rtl] .hero h1,[dir=rtl] .section h2{line-height:1.25}[dir=rtl] .activity span.live{transform:translateX(-4px)}

    @media(max-width:1000px){.links .hidemid{display:none}}
    @media(max-width:850px){
      .links{display:none}.menu{display:inline-flex}
      .heroGrid,.contact,.control-room{grid-template-columns:1fr;text-align:center}.hero .lead{margin:auto}.actions,.trust{justify-content:center}
      .hero-art{background:linear-gradient(180deg,#05070d55 0%,#05070dcc 45%,#05070d 75%),url('hero-900.webp') center top/cover no-repeat}
      [dir=rtl] .hero-art{background:linear-gradient(180deg,#05070d55 0%,#05070dcc 45%,#05070d 75%),url('hero-900.webp') center top/cover no-repeat}
      .orbitScene{order:-1;min-height:330px}.route{grid-template-columns:1fr 1fr}.services{grid-template-columns:1fr}
      .packs{grid-template-columns:1fr;gap:22px}.book{justify-content:center}
      .flow{grid-template-columns:1fr}.flow button+button:before{display:none}.control-room img{min-height:250px}
      .contact .card{text-align:start}.socials{justify-content:center}
    }
    @media(max-width:520px){.form{grid-template-columns:1fr}}
    @media(max-width:440px){.wrap{width:min(100% - 28px,var(--max))}.route{grid-template-columns:1fr}.route button{min-height:auto}.route strong{margin-top:18px}.hero{padding:35px 0 64px}.navin{height:68px;gap:10px}.brand img{width:36px;height:36px}.orbitScene{min-height:290px}.menu span{display:none}}
    @media(max-height:500px) and (orientation:landscape){.orbitScene{display:none}.hero{min-height:auto}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-up{opacity:1;transform:none}}

/* ===== alasivut ===== */
.more{display:inline-block;margin-top:14px;color:var(--violet2);font-weight:700;font-size:14px}.more:hover{color:#fff}.service .more{display:block}
.crumbs{font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.crumbs a:hover{color:#fff}
.pagehero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(56px,9vw,110px) 0 clamp(48px,7vw,80px)}
.pagehero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 80% at 85% 10%,#2f5bff55,transparent 60%),radial-gradient(40% 60% at 10% 90%,#d4ff3a14,transparent 60%)}
.pagehero h1{font:600 clamp(36px,6vw,72px)/1 Unbounded,sans-serif;letter-spacing:-.07em;margin:18px 0;max-width:16ch}.pagehero h1 em{font-style:normal;color:var(--violet2)}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}
.feat{border:1px solid var(--line);border-radius:20px;background:#ffffff08;padding:24px}.feat b{display:block;font:600 19px Unbounded,sans-serif;letter-spacing:-.05em;margin-bottom:8px}.feat p{margin:0;color:var(--muted);font-size:15px}
.feat i{display:block;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px var(--gold);margin-bottom:18px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px;counter-reset:st}
.steps li{list-style:none;border:1px solid var(--line);border-radius:20px;background:#ffffff08;padding:24px;counter-increment:st}
.steps li:before{content:"0" counter(st);display:block;font:500 12px 'DM Mono',monospace;color:var(--gold);margin-bottom:14px}.steps b{display:block;font-size:17px;margin-bottom:6px}.steps p{margin:0;color:var(--muted);font-size:14px}
.ctaBand{border:1px solid #3d63ff55;border-radius:26px;background:radial-gradient(circle at 85% 10%,#2f5bff55,transparent 35%),#0a1022;padding:clamp(28px,6vw,60px);text-align:center}
.ctaBand h2{margin:0 auto 12px;max-width:20ch}.ctaBand p{color:var(--muted);margin:0 0 24px}
@media(max-width:850px){.feats{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}.pagehero{text-align:center}.pagehero h1{margin-inline:auto}.crumbs{justify-content:center}}
@media(max-width:560px){.feats,.steps{grid-template-columns:1fr}}
.linkcard{cursor:pointer}.linkcard:hover h3{color:var(--violet2)}

/* ===== lime-teeman lisäykset ===== */
.btn.primary,.navcta,.mnav a.navcta{color:#0a0d14!important}
.btn.primary{box-shadow:0 14px 40px #c6f43240}
.hero h1 em,.pagehero h1 em,.section h2 em{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.02em;color:#d4ff3a}
.hero-art,.orbitScene,.control-room img{filter:hue-rotate(-38deg) saturate(1.2)}
.control-room.running img{filter:hue-rotate(-38deg) saturate(1.4) brightness(1.1)}
.chip:after{box-shadow:0 0 0 2px #d4ff3a,0 0 34px #d4ff3a88}
.pack.pop{box-shadow:0 22px 60px #2f5bff30}

/* ===== Palvelut-pudotusvalikko ===== */
.navdrop{position:relative}
.navdropbtn{display:inline-flex;align-items:center;gap:6px;padding:0;background:none;border:0;color:inherit;font:inherit;cursor:pointer}
.navdropbtn:hover,.navdropbtn[aria-expanded=true]{color:#fff}
.navdropbtn svg,.mnavdrop svg{width:13px;height:13px;transition:transform .2s}
.navdropbtn[aria-expanded=true] svg,.mnavdrop[aria-expanded=true] svg{transform:rotate(180deg)}
.navdropmenu{display:none;position:absolute;top:34px;inset-inline-start:-14px;min-width:210px;padding:7px;background:#0d1430;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px #0008;z-index:30}
.navdropmenu.show{display:grid}
.navdropmenu a{padding:10px 12px;border-radius:8px;color:var(--muted);font-size:14px}
.navdropmenu a:hover,.navdropmenu a:focus-visible,.navdropmenu a[aria-current]{background:#ffffff14;color:#fff}
.mnavdrop{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 4px;background:none;border:0;border-bottom:1px solid var(--line);color:inherit;font-weight:700;font-size:18px;text-align:start;cursor:pointer}
.mnavdrop svg{width:18px;height:18px}
.mnavsub{display:none;padding-inline-start:16px}
.mnavsub.show{display:block}
.mnav .mnavsub a{font-size:16px;font-weight:600;color:var(--muted)}
.service:target{border-color:var(--gold);box-shadow:0 18px 38px #0004}

/* ===== Palvelukortit: kuvat kokonaan, ei rajausta. Kaikki kuvat ovat 3:2. ===== */
@media(min-width:851px){
  .services{display:flex;flex-wrap:wrap}
  #verkkosivut,#markkinointi,#ai-agentit,#automaatio{width:calc((100% - 18px)*.5)}
}

/* ===== Hinnasto ===== */
.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.priceControls{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:30px}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:#ffffff08}
.seg button{border:0;background:none;color:var(--muted);padding:9px 14px;border-radius:10px;font-weight:700;font-size:14px;min-height:40px;cursor:pointer;transition:background .2s,color .2s}
.seg button:hover{color:#fff}
.seg button[aria-pressed=true]{background:linear-gradient(135deg,#c6f432,#e4ff6b);color:#0a0d14}
#paketit .packs{margin-top:26px}
.price{margin:0 0 20px;padding:16px 0;border-block:1px solid var(--line)}
.priceMain{font:600 clamp(30px,3.4vw,40px)/1.1 Unbounded,sans-serif;letter-spacing:-.05em;color:#fff;unicode-bidi:plaintext}
.priceNote{margin-top:8px;color:var(--ink);font-size:14px;font-weight:600;unicode-bidi:plaintext}
.priceVat{margin-top:2px;color:var(--muted);font-size:13px;unicode-bidi:plaintext}
.cmpHint{display:none;margin:0 0 10px;color:var(--muted);font-size:13px}
.cmpWrap{margin-top:30px;overflow-x:auto;border:1px solid var(--line);border-radius:20px;background:#ffffff06}
.cmp{width:100%;min-width:680px;border-collapse:collapse;font-size:14px}
.cmp th,.cmp td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp thead th{font:600 16px Unbounded,sans-serif;letter-spacing:-.04em;color:#fff}
.cmp thead th.popCol{color:var(--gold)}
.cmp th:first-child{position:sticky;inset-inline-start:0;z-index:1;width:36%;background:#0a1022;text-align:start;font:600 14px Manrope,system-ui,sans-serif;letter-spacing:0;color:var(--ink)}
.cmp td{color:var(--muted)}
.cmp td:nth-child(3){background:#d4ff3a08}
.cmp .yes{color:var(--gold);font-weight:800;font-size:17px}
.cmp .nope{color:#ffffff40}
.pays{grid-template-columns:repeat(3,1fr)}
.xVat{color:var(--gold);font-weight:700;white-space:nowrap}
.xGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px;align-items:start}
.xGroup{border:1px solid var(--line);border-radius:20px;background:#ffffff08;padding:22px 24px 12px}
.xGroup h3{font:600 19px Unbounded,sans-serif;letter-spacing:-.05em;margin:0 0 8px;color:#fff}
.xGroup ul{list-style:none;margin:0;padding:0}
.xGroup li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line);font-size:15px}
.xName{color:var(--ink);min-width:0}
.xPrice{flex:none;color:var(--gold);font-weight:700;white-space:nowrap;unicode-bidi:plaintext}
.xUnit{color:var(--muted);font-weight:500;font-size:13px}
[dir=rtl] .priceMain,[dir=rtl] .xGroup h3{letter-spacing:0}
@media(max-width:850px){.priceControls{justify-content:center}.seg{justify-content:center}.pays{grid-template-columns:1fr}.xGrid{grid-template-columns:1fr}.cmpHint{display:block;text-align:center}.cmp th:first-child{width:auto;min-width:150px}.pack .price{text-align:start}}
@media(max-width:440px){.seg button{padding:8px 11px;font-size:13px}.xGroup{padding:18px 18px 8px}.xGroup li{font-size:14px;gap:12px}}
[dir=rtl] .priceMain,[dir=rtl] .priceNote,[dir=rtl] .priceVat{text-align:right}
@media(max-width:440px){.cmp th:first-child{min-width:128px;font-size:13px;padding-inline:12px}}

/* ===== GEO-rivi ===== */
.service{position:relative}
.xAsk{color:var(--gold);text-decoration:underline;text-underline-offset:3px;font-weight:700}
.xAsk:hover{color:#fff}

/* ===== Asettelun varmistukset: pitkät sanat eivät veny näytön yli ===== */
.route>*,.packs>*,.feats>*,.steps>*,.xGrid>*,.services>*,.flow>*,.contact>*,.heroGrid>*,.control-room>*,.form>*{min-width:0}
.hero h1,.pagehero h1,.section h2,.service h3,.pack h3,.route strong,.feat b,.xGroup h3,.metric strong,.ctaBand h2{overflow-wrap:break-word;hyphens:auto}
.priceMain{overflow-wrap:break-word}
.cmp .nope{color:#ffffff99}
@media(max-width:1100px){.route{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.section h2,.ctaBand h2{font-size:clamp(25px,7.6vw,32px);max-width:none}.hero h1,.pagehero h1{font-size:clamp(32px,10vw,44px)}}
@media(max-width:440px){.route{grid-template-columns:minmax(0,1fr)}.priceMain{font-size:26px}.pack{padding:22px}}

/* ===== Pilottisivut ja pilottimerkintä ===== */
.pilotBadge{display:inline-block;margin-top:14px;padding:4px 9px;border:1px solid #d4ff3a66;border-radius:999px;color:var(--gold);font:500 10px 'DM Mono',monospace;letter-spacing:.04em}
.tag.pilotTag{color:var(--gold);border-color:#d4ff3a66}
.route button{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}.route button .pilotBadge{margin-top:auto}.route button p{margin-bottom:14px}
.pilotHero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:center}
.pilotHero>*{min-width:0}
.pilotHero h1{font-size:clamp(32px,4.4vw,58px);max-width:none}
.pilotHero img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:22px}
@media(max-width:850px){.pilotHero{grid-template-columns:minmax(0,1fr)}.pilotHero .lead{margin-inline:auto}.pilotHero .actions,.pilotHero .trust{justify-content:center}}

.xGroup .pilotBadge{margin:0 0 8px}
.xPilotNote{margin:0 0 8px;color:var(--muted);font-size:13px}
.xPilotLinks{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 12px;font-size:13px;font-weight:700}.xPilotLinks a{color:var(--gold)}

/* heroFade: yläosan kuva häipyy alareunastaan, jolloin raja seuraavaan osioon ei näy terävänä */
.hero-art{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 220px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 220px),transparent)}
