/* Portal Next V3 — monofilament field gateway. */
:root{--portal-paper:#e8eeef;--portal-paper-bright:#f9fbfb;--portal-ink:#26383d;--portal-muted:rgba(43,63,68,.60);--portal-line:rgba(255,255,255,.62);--home-pad:clamp(22px,4.7vw,88px);--ease:cubic-bezier(.16,1,.3,1)}
[hidden]{display:none!important}
body.route-home{height:100dvh;overflow:hidden;background:#e6ecee;color:var(--portal-ink)}body.route-auth{background:#edf1f3;color:#273039}
.site-shell{position:relative;z-index:2;display:none;min-height:100dvh}.route-home .site-shell{display:block}.route-home .app-shell,.route-auth .app-shell{display:none}.route-app .site-shell{display:none}.route-app .app-shell{display:grid}.route-home #prismCanvas,.route-auth #prismCanvas{display:none}.marketing-main{height:100dvh;min-height:560px;background:#e6ecee}
.portal-home{position:relative;height:100dvh;min-height:560px;overflow:hidden;isolation:isolate;background:#e6ecee;cursor:default}.portal-home:before{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 36%,rgba(91,120,124,.06) 100%),radial-gradient(ellipse at 51% 46%,transparent 35%,rgba(83,107,111,.08) 100%)}.portal-home:after{content:"";position:absolute;z-index:12;inset:0;pointer-events:none;opacity:.022;mix-blend-mode:multiply;background-image:radial-gradient(rgba(33,52,57,.62) .42px,transparent .58px);background-size:5px 5px}.portal-home:focus-visible{outline:2px solid rgba(38,56,61,.55);outline-offset:-8px}
.freedom-field{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none;background:#e6ecee;opacity:0;transition:filter .66s var(--ease)}.freedom-field:before,.freedom-field:after{content:"";position:absolute;z-index:2;inset:-12%;pointer-events:none;will-change:transform,opacity}.freedom-field:before{background:linear-gradient(103deg,transparent 30%,rgba(255,255,255,.04) 41%,rgba(255,255,255,.42) 50%,rgba(255,255,255,.05) 60%,transparent 72%);mix-blend-mode:screen;opacity:.56;animation:fibre-sheen 13s cubic-bezier(.45,0,.55,1) infinite alternate}.freedom-field:after{background:radial-gradient(ellipse at 50% 52%,rgba(255,255,255,.34),transparent 24%),radial-gradient(ellipse at 75% 35%,rgba(167,209,210,.09),transparent 35%);mix-blend-mode:screen;opacity:.72;animation:fog-breathe 11s ease-in-out infinite alternate}@keyframes fibre-sheen{0%{transform:translate3d(-8%,1%,0) skewX(-3deg);opacity:.34}100%{transform:translate3d(8%,-1%,0) skewX(-3deg);opacity:.68}}@keyframes fog-breathe{0%{transform:scale(1);opacity:.46}100%{transform:scale(1.035);opacity:.78}}
.freedom-canvas,.freedom-fallback{position:absolute;z-index:0;inset:0;width:100%;height:100%}.freedom-canvas{display:block}.freedom-fallback{display:none;background:#e6ecee url("./assets/monofilament-network-v1.webp") center/cover no-repeat;animation:fallback-flow 16s ease-in-out infinite alternate}@keyframes fallback-flow{0%{transform:scale(1.015) translate3d(-.6%,.2%,0);filter:saturate(.88) contrast(1.02)}100%{transform:scale(1.045) translate3d(.7%,-.4%,0);filter:saturate(.98) contrast(1.04)}}.freedom-field.is-fallback .freedom-canvas{display:none}.freedom-field.is-fallback .freedom-fallback{display:block}
.portal-copy{position:absolute;z-index:10;left:50%;bottom:clamp(34px,7vh,80px);width:min(720px,88vw);transform:translateX(-50%);text-align:center;pointer-events:none;color:#2f4246;text-shadow:0 1px 28px rgba(255,255,255,.82)}.portal-copy h1{margin:0;font-family:"SF Pro Display","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;font-size:clamp(24px,2.15vw,38px);font-weight:460;line-height:1.3;letter-spacing:.095em}.portal-cta{width:max-content;min-width:174px;height:52px;margin:22px auto 0;padding:0 8px 0 21px;display:flex;align-items:center;justify-content:space-between;gap:22px;border:1px solid rgba(255,255,255,.82);border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.60),rgba(225,236,237,.34));box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 15px 42px rgba(64,88,92,.13);-webkit-backdrop-filter:blur(22px) saturate(118%);backdrop-filter:blur(22px) saturate(118%);appearance:none;color:#3b5357;cursor:pointer;pointer-events:auto;font:inherit;font-size:12px;font-weight:560;letter-spacing:.09em;transition:transform .42s var(--ease),background .4s,border-color .4s,box-shadow .4s}.portal-cta:focus-visible{outline:2px solid rgba(54,87,92,.65);outline-offset:4px}.portal-cta b{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.58);box-shadow:inset 0 1px 0 #fff,0 5px 16px rgba(73,98,102,.08);font-size:16px;font-weight:420;line-height:1;transition:transform .42s var(--ease),background .35s}.portal-cta:hover{transform:translateY(-2px);background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(226,238,239,.48));border-color:rgba(255,255,255,.98);box-shadow:inset 0 1px 0 #fff,0 19px 52px rgba(65,89,93,.16)}.portal-cta:hover b{transform:translateX(3px);background:rgba(255,255,255,.78)}.portal-cta:active{transform:translateY(0) scale(.985)}
.portal-home.journey-active .freedom-field{filter:brightness(1.08) saturate(.78)}.portal-home.journey-active .portal-copy{pointer-events:none}
.launch-screen{position:fixed;z-index:220;inset:0;display:grid;place-items:center;background:#e6ecee;overflow:hidden;transition:opacity .44s var(--ease),visibility .44s}.launch-screen.done{opacity:0;visibility:hidden;pointer-events:none}.launch-slit{position:relative;width:1px;height:28vh;background:rgba(255,255,255,.98);box-shadow:0 0 34px 9px rgba(255,255,255,.8),0 0 140px 36px rgba(126,169,172,.18);animation:launch-light .72s var(--ease) both}.launch-slit i{position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 34px 15px rgba(255,255,255,.96)}@keyframes launch-light{0%{height:0;opacity:0}55%{height:28vh;opacity:1}100%{height:54vh;opacity:.22}}
.preview-static .launch-screen{display:none}
.route-transition{position:fixed;z-index:210;inset:0;visibility:hidden;pointer-events:none;overflow:hidden;background:transparent}.route-transition.active{visibility:visible}.transition-bloom,.transition-wash{position:absolute;display:block;opacity:0;will-change:clip-path,transform,opacity}.transition-bloom{z-index:1;inset:-30% -18%;background:repeating-linear-gradient(101deg,transparent 0 9%,rgba(255,255,255,.86) 10%,rgba(153,193,195,.16) 11%,transparent 13% 22%);filter:blur(9px);transform:translate3d(-10%,0,0) scaleX(1.05)}.transition-wash{z-index:2;inset:-4%;background:radial-gradient(ellipse at 50% 51%,rgba(255,255,255,.98) 0 8%,rgba(235,242,243,.92) 25%,rgba(221,231,233,.24) 53%,transparent 72%);transform:scale(.72)}.route-transition.active .transition-bloom{animation:fibre-converge .76s cubic-bezier(.45,0,.18,1) both}.route-transition.active .transition-wash{animation:fog-crossfade .76s cubic-bezier(.45,0,.2,1) both}@keyframes fibre-converge{0%{opacity:0;clip-path:inset(0 48% 0 48%);transform:translate3d(-10%,0,0) scaleX(1.08)}38%{opacity:.76;clip-path:inset(0 17% 0 17%)}65%{opacity:.92;clip-path:inset(0)}100%{opacity:0;clip-path:inset(0);transform:translate3d(8%,0,0) scaleX(1.02)}}@keyframes fog-crossfade{0%,16%{opacity:0;transform:scale(.72)}49%,64%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.16)}}
@media(max-width:1100px){.portal-copy{bottom:6vh}}
@media(max-width:760px){.marketing-main,.portal-home{min-height:600px}.portal-copy{bottom:max(24px,4.2vh);width:92vw}.portal-copy h1{font-size:clamp(20px,5.7vw,27px);letter-spacing:.06em}.portal-cta{margin-top:16px;min-width:166px;height:49px;padding-left:19px;gap:19px}.portal-cta b{width:34px;height:34px}}
@media(max-height:700px) and (min-width:761px){.portal-copy{bottom:23px}.portal-copy h1{font-size:27px}.portal-cta{margin-top:13px;height:48px;min-width:166px}.portal-cta b{width:33px;height:33px}}
@media(prefers-reduced-motion:reduce){.launch-screen{display:none}.route-transition.active,.route-transition.active *{animation-duration:.22s!important}.freedom-field:before,.freedom-field:after,.freedom-fallback{animation:none!important}.portal-home{cursor:default}}@media(hover:none){.portal-home{cursor:default}}
.preview-static .portal-copy>*{opacity:1!important;transform:none!important;filter:none!important}.preview-static .freedom-canvas{display:none!important}.preview-static .freedom-fallback{display:block!important}.preview-static .freedom-field{opacity:1!important}

/* The auth flow and member console continue the same pearl-silver material language. */
.auth-stage{background:rgba(235,240,243,.88);color:#303a42;backdrop-filter:blur(28px) saturate(110%)}
.auth-close{color:#4c5760;border-color:rgba(66,78,88,.16);background:rgba(255,255,255,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.auth-visual{background:#e8edf1;isolation:isolate}.auth-visual:before{z-index:1;background:linear-gradient(105deg,transparent 36%,rgba(255,255,255,.38),transparent 63%);animation:visual-sweep 12s linear infinite}.auth-light-field{position:absolute;z-index:0;inset:-7%;background:url("./assets/monofilament-network-v1.webp") center/cover no-repeat;filter:saturate(.78) brightness(.98);animation:auth-field-breathe 20s ease-in-out infinite alternate}.auth-light-field:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(234,239,242,.18),transparent 48%,rgba(234,239,242,.1))}.auth-copy{z-index:2;color:#3b4650;text-shadow:0 1px 18px rgba(255,255,255,.8)}.auth-copy h2{font-weight:460;letter-spacing:.03em}.auth-copy>span{color:rgba(51,64,74,.62)}@keyframes auth-field-breathe{to{transform:scale(1.07) translateY(-.6%);filter:saturate(.84) brightness(1.04)}}
.auth-panel{background:linear-gradient(150deg,rgba(247,249,250,.74),rgba(218,226,231,.64));border-left:1px solid rgba(255,255,255,.72)}.auth-card{background:linear-gradient(145deg,rgba(255,255,255,.54),rgba(231,237,240,.28));border-color:rgba(255,255,255,.72);box-shadow:inset 0 1px 0 #fff,0 30px 90px rgba(79,95,106,.14)}.auth-switch{border-color:rgba(65,77,86,.14);background:rgba(225,232,236,.42)}.auth-switch>span{background:linear-gradient(135deg,#fff,#e4eaed);box-shadow:0 9px 25px rgba(84,101,113,.13)}.auth-switch button{color:#737e86}.auth-switch button.active{color:#29333b}.auth-heading h2{color:#303a42}.auth-heading>span,.auth-card form>label>span,.auth-options label{color:rgba(46,59,68,.62)}.auth-card form>label>div{border-color:rgba(67,80,89,.14);background:rgba(255,255,255,.3)}.auth-card form>label>div:focus-within{border-color:rgba(98,116,128,.38);box-shadow:0 0 0 4px rgba(255,255,255,.34)}.auth-card input{color:#2c3740}.auth-card input::placeholder{color:rgba(66,79,88,.42)}.reveal-password,.auth-options button{color:#5c6b75}.auth-submit{background:linear-gradient(120deg,#fff,#e5ebee 54%,#c9d2d7);color:#29333b;box-shadow:inset 0 1px 0 #fff,0 16px 38px rgba(78,95,106,.14)}.auth-legal{color:rgba(54,66,75,.44)}

/* Registration controls need ink-level contrast on the pearl surface. */
.auth-card .turnstile-wrap{border-color:rgba(58,75,84,.18);background:rgba(255,255,255,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.82)}
.auth-card .turnstile-wrap>p{color:#53636c;font-size:11px;font-weight:560}
.auth-card .code-request{border-color:rgba(64,91,98,.24);background:linear-gradient(130deg,rgba(255,255,255,.88),rgba(204,220,223,.72));color:#293e43;box-shadow:inset 0 1px 0 #fff,0 12px 28px rgba(68,89,95,.11);font-size:13px}
.auth-card .code-request:hover{border-color:rgba(55,80,87,.36);background:linear-gradient(130deg,#fff,rgba(194,214,218,.88));transform:translateY(-1px)}
.auth-card .code-request:disabled{color:#526168;opacity:.68}
.auth-card .code-sent-note{border-color:rgba(55,120,91,.22);background:rgba(220,241,231,.72);color:#315c49;font-size:11px;font-weight:620;box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}
.auth-card .code-sent-note button{color:#315d69;font-weight:760;text-decoration:underline;text-decoration-color:rgba(49,93,105,.3);text-underline-offset:3px}
.auth-card.code-sent #authEmail,.auth-card input:read-only{color:#33444c;opacity:1;-webkit-text-fill-color:#33444c}
.auth-card form>label>span{font-size:11px;font-weight:620;color:#596870}
.auth-card input::placeholder{color:rgba(57,72,81,.5)}
.auth-card .auth-legal{color:#65727a;font-size:10px}

body.route-app{color-scheme:light;--bg:#e7eeee;--bg-deep:#d8e3e4;--surface:rgba(255,255,255,.34);--surface-solid:rgba(247,249,250,.9);--line:rgba(64,77,87,.13);--line-hot:rgba(255,255,255,.82);--text:#28323a;--muted:#68757e;--cyan:#789fa1;--violet:#96a9aa;--pink:#b7aaa0;--mint:#5b8b78;--shadow:0 28px 80px rgba(68,84,95,.12);--module-line:rgba(69,82,91,.12);--module-soft:rgba(255,255,255,.3);--module-card:linear-gradient(145deg,rgba(255,255,255,.51),rgba(221,229,233,.26));background:linear-gradient(150deg,#f7f9f8 0%,#e5edee 52%,#d8e4e5 100%);color:var(--text)}
.route-app:before{content:"";position:fixed;z-index:0;inset:0;background:radial-gradient(ellipse at 77% 0%,rgba(255,255,255,.8),transparent 36%),radial-gradient(ellipse at 20% 100%,rgba(255,248,231,.2),transparent 42%);pointer-events:none}.route-app #prismCanvas{opacity:.08;filter:grayscale(1) brightness(1.7)}.route-app .app-shell{position:relative;z-index:1}.route-app .liquid-surface,.route-app .device-card,.route-app .pricing-card,.route-app .metric-card,.route-app .setting-card,.route-app .table-card,.route-app .referral-card,.route-app .commission-card,.route-app .profile-card,.route-app .subscription-summary,.route-app .import-panel,.route-app .traffic-panel,.route-app .help-card,.route-app .notice-card,.route-app .guide-steps{background:linear-gradient(145deg,rgba(255,255,255,.54),rgba(224,231,235,.23));border-color:rgba(255,255,255,.76);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(67,80,88,.04),0 24px 65px rgba(68,84,95,.11);backdrop-filter:blur(28px) saturate(120%)}.route-app .liquid-surface:after{background:linear-gradient(115deg,rgba(255,255,255,.3),transparent 27%,transparent 74%,rgba(196,207,213,.08))}
.route-app .rail{background:linear-gradient(160deg,rgba(255,255,255,.54),rgba(219,227,231,.31));border-color:rgba(255,255,255,.8)}.route-app .brand-orbit{background:radial-gradient(circle at 40% 32%,#fff 0 8%,#e9edef 20%,#aeb9bf 58%,#6e7b83 100%);box-shadow:0 0 34px rgba(255,255,255,.45)}.route-app .brand-copy strong,.route-app .rail-status b{color:#34404a}.route-app .brand-copy small,.route-app .nav-group-label{color:rgba(53,66,76,.48)}.route-app .nav-lens{background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(198,209,215,.55));box-shadow:0 13px 30px rgba(81,98,109,.11),inset 0 1px 1px #fff}.route-app .nav-item{color:#73808a}.route-app .nav-item:hover{color:#2e3942}.route-app .nav-item.active{color:#27313a}.route-app .topbar-title h1,.route-app .topbar-title h1 em,.route-app .card-top h2,.route-app .section-toolbar h2,.route-app .panel-heading h3,.route-app .device-card h3,.route-app .pricing-card h3,.route-app .setting-card h3,.route-app .help-card h3,.route-app .subscription-summary h3,.route-app .subscription-tools h3,.route-app .metric-card strong,.route-app .referral-card h3,.route-app .commission-card h3,.route-app .profile-card h3{color:#2e3942;background:none;-webkit-text-fill-color:currentColor}.route-app .eyebrow,.route-app .muted,.route-app .section-toolbar p,.route-app .device-card p,.route-app .pricing-card p,.route-app .setting-card p,.route-app .help-card p,.route-app .notice-card p{color:rgba(51,64,73,.57)}.route-app .eyebrow>span{background:#8d9aa2;box-shadow:none}.route-app .login-button,.route-app .glass-button,.route-app .signal-bar>button,.route-app .period-pill,.route-app .secure-label,.route-app .active-chip{background:rgba(255,255,255,.32);color:#4e5d67;border-color:rgba(62,74,83,.13)}.route-app .register-button,.route-app .manage-button,.route-app .section-primary{background:linear-gradient(130deg,#fff,#dfe6e9);color:#2b353d;box-shadow:0 13px 35px rgba(78,95,107,.12)}.route-app .access-card,.route-app .pricing-card.featured{background:linear-gradient(150deg,rgba(251,252,252,.64),rgba(204,215,221,.36));border-color:rgba(255,255,255,.8)}.route-app .prism-bloom{background:radial-gradient(circle,#fff,rgba(188,200,207,.38),transparent 69%);opacity:.55;filter:blur(36px)}.route-app .access-hero span,.route-app .access-hero b,.route-app .access-meta small{color:#6f7b83}.route-app .access-hero strong,.route-app .access-meta b{color:#2f3a42}.route-app .access-meta>div,.route-app .usage-insights>div,.route-app .quick-actions button,.route-app .subscription-stats div,.route-app .guide-steps li{background:rgba(255,255,255,.25);border-color:rgba(64,77,86,.09)}.route-app .subscription-link,.route-app .masked-link{background:rgba(255,255,255,.3);border-color:rgba(62,75,84,.1);color:#59666f}.route-app .subscription-link code{color:#59666f}.route-app .node-list>button,.route-app .usage-insights>div,.route-app .table-row,.route-app .account-details div{border-color:rgba(60,73,82,.09)}.route-app .node-list b,.route-app .usage-insights strong,.route-app .account-details b,.route-app .subscription-stats strong{color:#34404a}.route-app .node-flag{background:rgba(255,255,255,.31);color:#586771;border-color:rgba(65,78,87,.11)}.route-app .orbital-meter:before,.route-app .orbital-meter:after{border-color:rgba(62,75,84,.1)}.route-app .orbital-meter:after{background:radial-gradient(circle at 36% 28%,rgba(255,255,255,.76),rgba(201,211,217,.46))}.route-app .meter-track{stroke:rgba(58,72,81,.09)}.route-app .meter-value{stroke:#7c8b94;filter:drop-shadow(0 0 7px rgba(255,255,255,.65))}.route-app .flow-chart{border-color:rgba(60,73,82,.08);background:linear-gradient(180deg,transparent,rgba(255,255,255,.18))}.route-app .flow-chart path{stroke:#87969f;filter:none}.route-app .flow-chart>span{background:#fff;box-shadow:0 0 10px rgba(92,109,120,.35)}
@media(max-width:900px){.auth-visual{opacity:.26}.auth-panel{background:rgba(236,241,244,.74)}}

/* Authentication is a clean destination, not the homepage left behind. */
.route-auth .auth-stage{grid-template-columns:1fr;place-items:center;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.92),transparent 46%),linear-gradient(150deg,#f6f8f9,#e5ebee 58%,#dce4e8)}
.route-auth .auth-visual{display:none}
.route-auth .auth-panel{width:100%;min-height:100vh;border:0;background:transparent;padding:70px 24px}
.route-auth .auth-card{width:min(520px,calc(100vw - 32px))}

/* Layout 4 — centre the invitation inside the orbit of glass. */
.route-home .portal-copy{top:50%;bottom:auto;width:min(680px,70vw);transform:translate(-50%,-45%)}
@media(max-width:900px){.route-home .portal-copy{top:60%;width:min(700px,90vw);transform:translate(-50%,-50%)}}
@media(max-width:620px){.route-home .portal-copy{top:76%;width:94vw}}
