html:root{--p-bg:#0e1116;--p-surface:#12171d;--p-ink:#e8ecf1;--p-muted:#9aa4b0;--p-accent:#4ade9a;--p-accent-ink:#06140d;--p-action:#4ade9a;--p-action-ink:#06140d;--p-inv-bg:#e8ecf1;--p-inv-surface:#d9dfe6;--p-inv-ink:#0e1116;--p-inv-muted:#4a525c;--p-inv-accent:#0e1116;--p-inv-accent-ink:#e8ecf1;--p-inv-action:#0e1116;--p-inv-action-ink:#e8ecf1;--font-display:"Inter", "Segoe UI", system-ui, sans-serif;--font-text:"Inter", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--display-weight:600;--display-tracking:-.03em;--display-tracking-xl:-.04em;--app-bg:#0e1116;--app-side:#12171d;--app-card:#151a21;--app-raised:#1e2630;--app-account:#1a2028;--app-line:#2a323d;--app-line-strong:#3a4553;--app-ink:#e6e9ee;--app-muted:#9aa3ad;--app-accent:#4ade9a;--app-accent-ink:#06140d;--app-dot:#40d977;--app-avatar:#26453a;--danger:#f87171;--danger-soft:#fca5a5;--warn:#fbbf24;--warn-soft:#fcd34d}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{-webkit-font-smoothing:antialiased;background:var(--p-bg)}button,select,input{font:inherit}button:not(:disabled),select{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.mono,code{font-family:var(--font-mono)}.nav .nav__logo{letter-spacing:.01em;gap:10px;font-size:24px;font-weight:700}.owl{object-fit:contain;flex-shrink:0}.project-link{align-items:center;gap:8px;display:inline-flex}.github-icon{filter:invert();object-fit:contain}.btn{gap:8px}.section .section-head p{color:var(--ink);max-width:62ch;margin-top:16px;font-size:18px;line-height:1.6}.section-head--row{justify-content:space-between;align-items:end;gap:24px;display:flex}.section-index{color:var(--muted);white-space:nowrap;font-size:13px}.status-dot{background:var(--app-dot);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 3px #40d97722}.hero--scene{background:#05080b;overflow:hidden}.hero-scene{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-scene:before,.hero-scene:after,.hero-scene__canvas{content:"";position:absolute;inset:0}.hero-scene:before{background-image:radial-gradient(circle,#84c4d699 1.1px,#0000 1.7px);background-size:7px 7px;transition:opacity 1s;-webkit-mask-image:radial-gradient(70% 80% at 55% -10%,#000 15%,#0000 75%);mask-image:radial-gradient(70% 80% at 55% -10%,#000 15%,#0000 75%)}.hero-scene__canvas{opacity:0;transition:opacity 1.2s}.hero-scene.is-ready .hero-scene__canvas{opacity:1}.hero-scene.is-ready:before{opacity:0}.hero-scene:after{z-index:1;background:linear-gradient(90deg, #05080bb8 0%, #05080b61 42%, #05080b00 66%), linear-gradient(180deg, #05080b00 62%, var(--p-bg) 100%)}.hero.hero--collage .hero__grid{align-items:start;height:calc(100% - 48px)}.hero.hero--collage .hero__text{align-self:start;padding-top:0}.hero.hero--collage h1{letter-spacing:-.045em;font-size:clamp(40px,4vw,58px);line-height:1.02}.hero .hero__kicker{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.hero .hero__lead{max-width:36ch;font-size:19px;line-height:1.55}.hero .btn-row{flex-wrap:wrap;gap:12px}.hero .btn-row .btn{padding-inline:16px}.hero .hero__proof{color:var(--muted);margin-top:16px;font-size:13px}.hero .install-command{margin-top:36px}.command-label{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:14px;display:flex}.command-label .mono{font-size:13px}.command-field{border:1px solid var(--app-line);border-radius:var(--r-md);background:#0e1116d9;align-items:center;gap:12px;padding:14px 16px;display:flex}.command-field code{overflow-wrap:anywhere;color:#cfd6de;-webkit-user-select:all;user-select:all;flex:1;font-size:13px;line-height:1.7}.command-field .copy-button{flex-shrink:0;width:44px;height:44px;padding:0}.copy-status{min-height:20px;color:var(--accent);margin-top:4px;font-size:13px;display:block}.hero-scroll{color:var(--muted);align-items:center;gap:12px;height:48px;font-size:14px;display:flex;position:relative}.hero-scroll>.mono{margin-left:auto;font-size:13px}.hero.hero--collage .hero__art{background:0 0;border-radius:0;flex-direction:column;justify-content:flex-start;gap:16px;height:100%;min-height:0;display:flex;position:relative;overflow:visible}.hero-app .app-window{box-shadow:0 18px 40px #00000059,0 0 0 1px #ffffff05}.app-window{background:var(--app-bg);color:var(--app-ink);border:1px solid var(--app-line);font-family:var(--font-text);text-align:left;border-radius:12px;grid-template-columns:196px minmax(0,1fr);display:grid;position:relative;overflow:hidden}.app-side{background:var(--app-side);border-right:1px solid var(--app-line);flex-direction:column;gap:22px;min-width:0;padding:20px 12px 12px;display:flex}.app-brand{letter-spacing:.01em;align-items:center;gap:12px;padding:0 6px;font-size:28px;font-weight:700;display:flex}.app-nav{flex-direction:column;gap:4px;display:flex}.app-nav__item{width:100%;min-height:40px;color:var(--app-muted);text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:8px 12px;font-size:14px;font-weight:500;display:flex;position:relative}.app-nav__item.is-active{background:var(--app-raised);color:var(--app-ink)}.app-nav__item.is-active>svg{color:var(--app-accent)}button.app-nav__item:hover{color:var(--app-ink);background:#ffffff0d}button.app-nav__item:focus-visible{outline:2px solid var(--app-accent);outline-offset:-2px}.app-dot{background:var(--app-dot);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.app-account{background:var(--app-account);border:1px solid var(--app-line);border-radius:10px;align-items:center;gap:10px;margin-top:auto;padding:10px;font-size:14px;font-weight:600;display:flex}.app-account>svg:last-child{color:var(--app-muted);margin-left:auto}.app-avatar{background:var(--app-avatar);width:30px;height:30px;color:var(--app-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.app-avatar--sm{width:28px;height:28px}.app-main{min-width:0;padding:36px 28px 24px;position:relative}.app-controls{color:var(--app-muted);gap:18px;display:flex;position:absolute;top:10px;right:14px}.app-title{letter-spacing:-.01em;margin:0 0 18px;font-size:24px;font-weight:600;line-height:1.2;display:block}.app-label{margin:16px 0 8px;font-size:14px;font-weight:600;display:block}.app-recipient{gap:10px;display:flex}.app-input{background:var(--app-card);border:1px solid var(--app-line);min-width:0;min-height:42px;color:var(--app-ink);border-radius:8px;flex:1;align-items:center;gap:10px;padding:0 12px;font-size:14px;display:flex}.app-input>svg{color:var(--app-muted);flex-shrink:0}.app-input.is-focus{border-color:var(--app-accent);box-shadow:inset 0 0 0 1px var(--app-accent)}.app-input__chev{margin-left:auto}.app-badge{color:var(--app-accent);white-space:nowrap;background:#4ade9a1a;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.app-btn{background:color-mix(in oklab, var(--p-ink) 8%, var(--p-bg));min-height:42px;color:var(--app-ink);white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:600;transition:filter .15s,transform .1s,background-color .15s;display:inline-flex}button.app-btn:not(:disabled):hover{filter:brightness(1.12)}button.app-btn:not(:disabled):active{transform:translateY(1px)}.app-btn:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.app-btn--accent,.app-btn--send:not(:disabled),.app-btn--send.is-ready{background:var(--app-accent);color:var(--app-accent-ink);border-color:#0000}.app-btn--send{width:50%;color:var(--app-muted);margin-top:18px}.app-btn--wide{width:100%;margin-top:12px}.app-btn--ghost{min-height:36px;margin-top:12px;padding:0 12px;font-size:13px}.app-drop{border:2px dashed var(--app-line-strong);background:var(--app-side);color:var(--app-muted);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:22px 12px;font-size:14px;font-weight:600;display:flex}.app-drop small{font-size:12px}.app-drop--empty{padding:40px 12px}.app-files{flex-direction:column;gap:6px;display:flex}.app-file{border:1px solid var(--app-line);background:var(--app-card);width:100%;min-height:44px;color:var(--app-ink);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:flex}.app-file>svg:first-child{color:var(--app-accent);flex-shrink:0}.app-file>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-file small{color:var(--app-muted);white-space:nowrap;margin-left:auto;font-size:12px}.app-file>svg:last-child:not(:first-child){color:var(--app-accent);flex-shrink:0}button.app-file:hover{border-color:var(--app-line-strong)}.app-file.is-selected{border-color:var(--app-accent);background:#4ade9a12}button.app-file:focus-visible{outline:2px solid var(--app-accent);outline-offset:1px}.app-sending{color:var(--app-muted);gap:8px;margin-top:18px;font-size:13px;display:grid}.app-progress{background:var(--app-raised);border-radius:3px;height:6px;overflow:hidden}.app-progress>i{background:var(--app-accent);height:100%;transition:width .5s;display:block}.app-note{border:1px solid var(--app-line);background:var(--app-card);border-radius:8px;align-items:flex-start;gap:8px;margin-top:18px;padding:10px 12px;font-size:13px;line-height:1.45;display:flex}.app-note--ok>svg{color:var(--app-accent);flex-shrink:0;margin-top:1px}.app-note--error{color:#fecaca;background:#f8717114;border-color:#f8717173}.app-note--error>svg{color:var(--danger);flex-shrink:0;margin-top:1px}.app-card{background:var(--app-card);border:1px solid var(--app-line);border-radius:14px;padding:18px}.app-card__name{font-size:18px;font-weight:600;display:block}.app-card__sub{color:var(--app-muted);margin:4px 0 12px;font-size:12px;font-weight:600;display:block}.app-incoming__row{align-items:center;gap:10px;font-size:14px;display:flex}.app-incoming__row small{color:var(--app-muted);margin-top:2px;font-size:12px;display:block}.fp-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.fp-cell{background:var(--app-bg);color:var(--app-ink);font:700 15px/1 var(--font-mono);letter-spacing:.05em;text-align:center;border:1px solid #0000;border-radius:8px;padding:10px 0}.fp-cell--focus{border-color:var(--app-accent);color:var(--app-accent);box-shadow:inset 0 0 0 1px var(--app-accent)}.app-dialog{z-index:2;border:1px solid var(--app-line-strong);background:#151a21f7;border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex;position:absolute;inset:10px;overflow:auto;box-shadow:0 20px 50px #00000080}.app-dialog .app-dialog__title{color:var(--app-ink);align-items:center;gap:8px;margin:0;font-size:17px;font-weight:600;display:flex}.app-dialog p:not(.app-dialog__title){color:var(--app-muted);margin:0;font-size:13px;line-height:1.5}.app-dialog--warn{border-color:#fbbf2480}.app-dialog--warn .app-dialog__title>svg{color:var(--warn)}.app-field{gap:6px;font-size:13px;font-weight:600;display:grid}.app-field input{background:var(--app-bg);border:1px solid var(--app-line-strong);width:8.5em;min-height:42px;color:var(--app-ink);font:700 16px var(--font-mono);letter-spacing:.2em;text-transform:uppercase;border-radius:8px;padding:0 12px}.app-field input:focus{outline:2px solid var(--app-accent);outline-offset:1px}.app-field input[aria-invalid=true]{border-color:var(--danger)}.app-dialog .app-error{color:var(--danger-soft);align-items:center;gap:6px;display:flex}.app-dialog__actions{justify-content:flex-end;gap:8px;margin-top:auto;padding-top:4px;display:flex}.app-checkbox{background:var(--app-accent);width:18px;height:18px;color:var(--app-accent-ink);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.glance{border:1px solid var(--app-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12171de6;border-radius:12px;padding:16px 64px 14px 12px;position:relative}.glance-track{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:44px;display:grid;position:relative}.glance-node{text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:13px;display:flex}.glance-node small{color:var(--app-muted);font-size:12px}.glance-icon{background:var(--app-raised);border:1px solid var(--app-line-strong);width:36px;height:36px;color:var(--app-accent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex}.glance-node--server .glance-icon{color:var(--app-muted)}.glance-rail{background:linear-gradient(90deg, var(--app-accent), var(--app-line-strong) 18%, var(--app-line-strong) 82%, var(--app-accent));height:2px;position:absolute;bottom:14px;left:16.67%;right:16.67%}.glance-packet{background:var(--app-raised);border:1px solid var(--app-line-strong);font:500 12px/1.3 var(--font-mono);white-space:nowrap;border-radius:999px;padding:4px 10px;animation:4s ease-in-out infinite glance-move;display:grid;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.glance-packet>span{grid-area:1/1;justify-content:center;align-items:center;gap:6px;display:inline-flex}.glance-plain{color:var(--app-ink);animation:4s linear infinite glance-plain}.glance-cipher{color:var(--app-accent);opacity:0;animation:4s linear infinite glance-cipher}.glance.is-paused :is(.glance-packet,.glance-plain,.glance-cipher){animation-play-state:paused}.glance-pause{border:1px solid var(--app-line-strong);background:var(--app-raised);width:44px;height:44px;color:var(--app-ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.glance-pause:hover{border-color:var(--app-accent)}.glance-pause:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}@keyframes glance-move{0%,8%{left:0}44%,56%{left:50%}92%,to{left:100%}}@keyframes glance-plain{0%,11%{opacity:1}15%,85%{opacity:0}89%,to{opacity:1}}@keyframes glance-cipher{0%,11%{opacity:0}15%,85%{opacity:1}89%,to{opacity:0}}#protocolli{overflow:clip}#protocolli .mo-la__type{font-size:var(--t-h2);max-width:100%;line-height:1.1}.protocol-row{border-bottom:1px solid var(--app-line);padding:20px 0;display:block}.protocol-row:first-child{padding-top:0}.protocol-row h3{margin-bottom:8px;font-size:20px;line-height:1.2}.protocol-row p{color:#c9d0d8;font-size:16px;line-height:1.5}.identity-visual{flex-direction:column;gap:20px;display:flex}.identity-card{padding:22px}.identity-card__head{justify-content:space-between;align-items:start;display:flex}.identity-card__head>svg{color:var(--app-accent)}.identity-card .fp-cell{padding:14px 0;font-size:17px}.identity-match{align-items:start;gap:12px;font-size:16px;line-height:1.55;display:flex}.identity-match>svg{color:var(--accent);flex-shrink:0;margin-top:2px}.vault-line{border-top:1px solid var(--app-line);color:var(--muted);align-items:start;gap:12px;padding-top:16px;font-size:14px;line-height:1.5;display:flex}.vault-line>svg{color:var(--accent);flex-shrink:0}.server-grid{align-items:stretch}.server-card.card{background:var(--app-side);border:1px solid var(--app-line);border-radius:var(--r-lg);flex-direction:row;align-items:center;gap:20px;margin-bottom:16px;padding:28px;display:flex}.server-card.card:hover{border-color:var(--app-line-strong)}.server-card__icon{background:var(--app-raised);width:52px;height:52px;color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.server-card h3{margin:0;font-size:20px;line-height:1.2}.server-packages-label{color:var(--muted);margin-bottom:16px;font-size:14px}.server-card p{color:var(--muted);margin-top:6px;font-size:13px}.server-card>svg{color:var(--accent);flex-shrink:0;margin-left:auto}.hosting-note{color:#d3d9e0;align-items:center;gap:8px;margin:24px 0;font-size:16px;display:flex}.server-downloads .link{align-items:center;gap:8px;min-height:44px;display:inline-flex}.server-visual{background:radial-gradient(ellipse 80% 70% at 50% 0%, #4ade9a14, transparent 70%), var(--app-side);border:1px solid var(--app-line);border-radius:var(--r-lg);justify-content:center;align-items:center;padding:40px;display:flex}.login-window{background:radial-gradient(ellipse 90% 60% at 50% 0%, #14201c, var(--app-bg) 70%);border:1px solid var(--app-line);width:100%;max-width:432px;color:var(--app-ink);border-radius:12px;padding:36px 28px 14px;position:relative;box-shadow:0 30px 80px #00000073}.login-brand{justify-content:center;align-items:center;gap:12px;margin-bottom:22px;font-size:32px;font-weight:700;display:flex}.login-card{background:var(--app-card);border:1px solid var(--app-line);border-radius:14px;padding:24px}.login-card>strong{margin-bottom:16px;font-size:26px;font-weight:700;display:block}.login-fields{grid-template-columns:96px minmax(0,1fr);gap:10px;display:grid}.login-fields span{color:var(--app-muted);margin-bottom:6px;font-size:13px;display:block}.login-check{color:var(--app-muted);align-items:center;gap:10px;margin:16px 0 6px;font-size:14px;display:flex}.login-foot{color:var(--app-muted);justify-content:space-between;margin-top:14px;font-size:13px;display:flex}.login-foot>span:last-child{align-items:center;gap:6px;display:inline-flex}@media (min-width:1024px) and (max-width:1279px){.hero.hero--collage h1{font-size:44px}.hero .hero__lead{font-size:17px}.hero .install-command{margin-top:20px}.app-window{grid-template-columns:64px minmax(0,1fr)}.hero-app :is(.app-brand>span,.app-nav__text,.app-account__name,.app-account>svg:last-child){display:none}.hero-app .app-side{align-items:center;padding-inline:8px}.hero-app .app-brand{padding:0}.hero-app .app-nav__item{justify-content:center;width:44px;padding:0}.hero-app .app-nav__item .app-dot{position:absolute;top:9px;right:9px}.hero-app .app-account{background:0 0;border:0;padding:6px}.hero-app .app-main{padding:30px 20px 18px}.server-card.card{gap:16px;padding:22px}.protocol-row{padding:16px 0}}@media (max-width:1023px){.hero.hero--collage .hero__text{align-self:start;width:100%}.hero .hero__lead{max-width:52ch}.hero .install-command{margin-top:24px}.hero.hero--collage .hero__grid{align-items:stretch;height:calc(100% - 44px)}.hero.hero--collage .hero__art{flex:1;justify-content:end;height:auto;min-height:0;margin-top:24px}.hero-app{display:none}.hero-scene:after{background:linear-gradient(180deg, #05080b8c 0%, #05080bc7 45%, var(--p-bg) 100%)}.protocol-grid{row-gap:32px}#protocolli{--h:1}.server-grid{gap:24px}.server-downloads{grid-template-columns:1fr 1fr;gap:16px 24px;display:grid}.server-card.card{gap:12px;margin:0;padding:22px}.server-card__icon{width:40px;height:40px}.hosting-note{align-items:start;margin:0}.server-downloads>.link{justify-self:end}.server-packages-label{grid-column:1/-1;margin-bottom:0}.server-visual{padding:32px 24px}}@media (max-width:639px){.hero.hero--collage h1{font-size:40px}.hero .hero__lead{font-size:17px;line-height:1.5}.hero .hero__text>*+*{margin-top:16px}.hero .hero__text>.btn-row{gap:8px;margin-top:24px}.hero .btn-row .btn{min-height:44px}.hero .hero__proof{font-size:13px;line-height:1.5}.hero .install-command{display:none}.hero.hero--collage .hero__grid{height:100%}.hero.hero--collage .hero__art{margin-top:16px}.glance{padding:12px 56px 12px 8px}.glance-node strong{font-size:12px}.glance-node small{font-size:11px}.glance-icon{width:32px;height:32px}.glance-packet{padding:3px 8px;font-size:11px}.glance-pause{right:6px}.hero-scroll{display:none}.section .section-head p{font-size:16px}.section-head--row{display:block}.section-index{display:none}.app-dialog{padding:12px;inset:6px}.protocol-row h3{font-size:20px}.identity-card{padding:16px}.identity-card .fp-cell{padding:11px 0;font-size:14px}.server-downloads{flex-direction:column;gap:12px;display:flex}.server-card.card{flex-wrap:nowrap;padding:20px}.server-card h3{font-size:18px}.hosting-note{margin-top:12px;font-size:14px}.hosting-note svg{flex-shrink:0}.server-downloads .link{align-self:start;font-size:14px}.server-visual{padding:20px 12px}.login-window{padding:30px 16px 12px}.login-card{padding:16px}.login-fields{grid-template-columns:84px minmax(0,1fr)}#server{--hm:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.glance-packet,.glance-plain,.glance-cipher,.flow-dot{animation:none!important}.glance-packet{left:50%}.glance-plain{opacity:0}.glance-cipher{opacity:1}.glance-pause{display:none}.glance{padding-right:12px}}@media (max-width:639px){.hero-scene{top:var(--nav)}}.flow{column-gap:var(--gutter);--row:43px;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;display:grid}.flow-diagram{background:radial-gradient(ellipse 70% 50% at 50% 0%, #4ade9a12, transparent 70%), var(--app-side);border:1px solid var(--app-line);border-radius:var(--r-lg);grid-column:span 8;padding:16px 16px 14px;position:relative;overflow:hidden}.flow--mitm .flow-diagram{background:radial-gradient(ellipse 50% 40% at 37.5% 0%, #f8717114, transparent 70%), radial-gradient(ellipse 70% 50% at 50% 0%, #4ade9a0d, transparent 70%), var(--app-side)}.flow-panel{flex-direction:column;grid-column:span 4;gap:20px;min-width:0;margin-top:-10px;display:flex}.flow-heads{grid-template-columns:repeat(var(--lanes), minmax(0, 1fr));text-align:center;display:grid}.flow-head{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.flow-head .iso{filter:drop-shadow(0 10px 18px #00000059);width:96px;height:96px}.flow-head strong{font-size:14px}.flow-head small{color:var(--muted);font-size:12px}.flow-head--mitm{animation:.45s both lane-in}.flow-head--mitm strong{color:var(--danger-soft)}@keyframes lane-in{0%{opacity:0;transform:translateY(8px)scale(.94)}to{opacity:1;transform:none}}.flow-body{margin-top:10px;padding-bottom:40px;position:relative}.flow-lifeline{border-left:1.5px dashed #9aa4b04d;width:0;position:absolute;top:0;bottom:36px}.flow-lifeline--mitm{border-left-color:#f8717173}.flow-rows{min-height:calc(9 * var(--row));margin:0;padding:0;list-style:none;position:relative}.flow-row{height:var(--row);--c:#9aa4b04d;--glow:transparent;position:relative}.flow-row.is-done{--c:#4ade9a8c}.flow-row.is-active{--c:#4ade9a;--glow:#4ade9a8c}.flow-row.tone-attack:not(.is-pending){--c:#f87171;--glow:#f871718c}.flow-row.tone-detect:not(.is-pending),.flow-row.tone-warn:not(.is-pending){--c:#fbbf24;--glow:#fbbf2480}.flow-label{top:0;left:calc(var(--left) + var(--width) / 2);background:var(--app-side);white-space:nowrap;color:var(--muted);border-radius:6px;align-items:center;gap:6px;padding:0 6px;font-size:12.5px;line-height:18px;transition:color .3s,opacity .3s;display:flex;position:absolute;transform:translate(-50%)}.flow-row.is-pending .flow-label,.flow-row.is-pending .flow-box{color:#8a939e}.flow-row.is-done .flow-label,.flow-row.is-done .flow-box{color:#b9c1ca}.flow-row.is-active .flow-label,.flow-row.is-active .flow-box{color:var(--ink)}.flow-protos{gap:4px;display:inline-flex}.flow-proto{border:1px solid color-mix(in oklab, var(--c) 60%, transparent);color:color-mix(in oklab, var(--c) 85%, var(--ink));font:600 10.5px/16px var(--font-mono);white-space:nowrap;border-radius:4px;padding:0 6px}.flow-row.is-pending .flow-proto{color:var(--muted);border-color:var(--app-line-strong)}.flow-arrow{left:var(--left);width:var(--width);height:12px;position:absolute;bottom:4px}.flow-line{border-top:1.5px dashed var(--c);filter:drop-shadow(0 0 3px var(--glow));transition:border-color .3s;position:absolute;top:50%;left:4px;right:4px}.flow-arrow:after{content:"";border-top:1.5px solid var(--c);border-right:1.5px solid var(--c);width:7px;height:7px;position:absolute;top:50%;right:4px;transform:translateY(-50%)rotate(45deg)}.flow-row.is-rtl .flow-arrow:after{left:4px;right:auto;transform:translateY(-50%)rotate(-135deg)}.flow-tap{left:var(--tap);background:var(--app-side);border:1.5px solid #f87171;border-radius:50%;width:11px;height:11px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px #f8717180}.flow-dot{width:7px;height:7px;box-shadow:0 0 6px 2px var(--c), 0 0 16px 5px var(--glow);opacity:0;background:#f0fff7;border-radius:50%;animation:1.5s linear infinite flow-dot;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.flow-dot:nth-of-type(2){animation-delay:.5s}.flow-dot:nth-of-type(3){animation-delay:1s}.flow-row.is-rtl .flow-dot{animation-direction:reverse}@keyframes flow-dot{0%{opacity:0;left:2%}12%{opacity:1}88%{opacity:1}to{opacity:0;left:98%}}.flow-node{left:var(--at);background:var(--app-side);border:1.5px solid var(--c);width:11px;height:11px;box-shadow:0 0 10px var(--glow);border-radius:2px;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg)}.flow-row--local.is-active .flow-node{background:var(--c);animation:1.4s ease-in-out infinite node-pulse}@keyframes node-pulse{50%{box-shadow:0 0 18px 4px var(--glow)}}.flow-box{top:50%;left:calc(var(--at) + 16px);max-width:calc(100% - var(--at) - 16px);border:1px solid color-mix(in oklab, var(--c) 70%, transparent);background:var(--app-card);white-space:nowrap;color:var(--muted);border-radius:7px;align-items:center;gap:6px;padding:3px 8px;font-size:12.5px;line-height:18px;display:flex;position:absolute;transform:translateY(-50%)}.flow-box>svg{color:var(--c);flex-shrink:0}.flow-row--local.is-end .flow-box{left:auto;right:calc(100% - var(--at) + 16px);max-width:calc(var(--at) - 16px)}.flow-text{text-overflow:ellipsis;overflow:hidden}.flow-result{white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.flow-result--ok{color:var(--accent);background:#4ade9a1f;border:1px solid #4ade9a66}.flow-result--detect{color:var(--warn-soft);background:#fbbf241f;border:1px solid #fbbf2466}.switch{cursor:pointer;align-items:center;gap:12px;min-height:44px;font-size:15px;font-weight:600;display:inline-flex}.switch input{appearance:none;border:1px solid var(--app-line-strong);background:radial-gradient(circle at 11px 50%, var(--app-muted) 7px, transparent 8px), var(--app-raised);cursor:pointer;border-radius:999px;flex-shrink:0;width:42px;height:24px;margin:0;transition:background .2s,border-color .2s}.switch input:checked{border-color:var(--danger);background:radial-gradient(circle at 29px 50%, var(--danger) 7px, transparent 8px), #f8717133}.switch input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch:hover input{border-color:var(--app-muted)}.flow-controls-top{flex-direction:column;gap:10px;display:flex}.flow-attack{background:var(--app-side);border:1px solid var(--app-line);border-radius:10px;gap:4px;padding:4px;display:flex}.flow-attack>button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:7px;flex:1;font-size:13px;font-weight:600}.flow-attack>button:hover{color:var(--ink)}.flow-attack>button.is-current{color:#fecaca;background:#f8717124}.flow-attack>button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.flow-step{color:var(--accent);margin-bottom:8px;font-size:13px;display:block}.flow-step.is-detect{color:var(--warn-soft)}.flow-explain h3{margin-bottom:8px;font-size:22px;line-height:1.2}.flow-explain .flow-sees{border:1px solid var(--app-line);background:var(--app-side);color:var(--muted);border-radius:8px;margin-top:12px;padding:10px 12px;font-size:13px;line-height:1.5}.flow-sees>.mono{letter-spacing:.06em;text-transform:uppercase;color:var(--warn-soft);margin-bottom:2px;font-size:11px;display:block}.flow-controls{gap:8px;margin-top:auto;display:flex}.flow-icon-btn{flex-shrink:0;justify-content:center;width:44px;padding:0}.site-footer{border-top:1px solid var(--app-line);background:#0a0d11;padding:48px 0 20px}.site-footer__top{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px 48px;display:flex}.site-footer .nav__logo{align-items:center;gap:10px;min-height:44px;font-size:22px;font-weight:700;display:inline-flex}.site-footer__top>p{color:var(--muted);font-size:15px;line-height:1.6}.site-footer nav{flex-wrap:wrap;gap:0 24px;display:flex}.site-footer nav a,.site-footer .footer__legal a{align-items:center;gap:4px;min-height:44px;display:inline-flex}.site-footer .footer__legal{border-top:1px solid var(--app-line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 24px;margin-top:24px;padding-top:12px;font-size:13px;display:flex}@media (max-width:1279px){.flow{display:block}.flow-panel{gap:16px var(--gutter);grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:24px;display:grid}.flow-controls-top{grid-column:1}.flow-explain{grid-area:1/2/span 2}.flow-controls{grid-column:1;align-self:start;margin-top:0}}@media (min-width:1024px) and (max-width:1279px){#flusso{--h:2}}@media (max-width:767px){.flow-panel{display:flex}}@media (max-width:639px){.flow{--row:66px}.flow-diagram{padding:12px 8px}.flow-head .iso{width:54px;height:54px}.flow-head strong{font-size:12px}.flow-head small{display:none}.flow-label{white-space:normal;text-align:center;background:0 0;flex-wrap:wrap;justify-content:center;gap:2px 6px;font-size:12px;line-height:16px;left:0;right:0;transform:none}.flow-label .flow-text{overflow:visible}.flow-row--local .flow-node{top:auto;bottom:4px;transform:translate(-50%)rotate(45deg)}.flow-box,.flow-row--local.is-end .flow-box{white-space:normal;text-align:center;flex-wrap:wrap;justify-content:center;gap:2px 6px;max-width:none;font-size:12px;line-height:16px;top:2px;left:0;right:0;transform:none}.flow-box .flow-text{overflow:visible}.flow-result{white-space:normal;text-align:center;max-width:100%}.flow-explain h3{font-size:20px}.site-footer__top{flex-direction:column}.site-footer nav{grid-template-columns:1fr 1fr;display:grid}.site-footer .footer__legal{flex-direction:column;align-items:start}}footer.closing.site-footer{height:auto;min-height:0;padding:48px 0 20px}footer.closing.site-footer>.wrap{height:auto}@media (max-width:1279px){.flow-panel{margin-top:24px}}@media (max-width:639px){.flow-controls{flex-wrap:wrap}.flow-controls .btn--primary{flex:100%}.flow-controls .flow-icon-btn{flex:1 1 0}}@media (min-width:1280px){.hero.hero--collage .hero__grid{padding-top:28px}}main,.site-footer{transition:opacity .18s}html.is-switching-lang main,html.is-switching-lang .site-footer,html[data-lang=en]:not([data-lang-ready]) body{opacity:0}body{transition:opacity .2s}.lang-switch{gap:4px;display:inline-flex}.lang-switch>button{border:1px solid var(--app-line);background:var(--app-side);min-width:40px;min-height:34px;color:var(--muted);font:600 12px/1 var(--font-mono);letter-spacing:.04em;border-radius:999px;padding:0 10px}.lang-switch>button:hover{color:var(--ink)}.lang-switch>button.is-current{background:var(--app-raised);color:var(--accent);border-color:#4ade9a73}.lang-switch>button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.flow-panel{gap:16px}.switch{font-size:14px}.flow-attack>button{font-size:12.5px}.flow-step{margin-bottom:6px;font-size:12px}.flow-explain h3{margin-bottom:6px;font-size:18px}.flow-explain p{font-size:14px;line-height:1.55}.flow-explain .flow-sees{font-size:12.5px}.flow-controls{gap:10px}@media (min-width:1280px){.flow-controls .btn{min-height:38px;padding-inline:14px;font-size:13px}}.flow-controls .btn--primary{flex:0 auto}.flow-controls .flow-icon-btn{width:38px;padding:0}.flow-label,.flow-box{font-size:13px}.flow-proto{font-size:11px}.flow-diagram{padding:18px 20px 14px}.identity-visual{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:28px;display:grid}.tofu{border:1px solid var(--app-line);color:var(--app-ink);background:#0f1317;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px #00000073}.tofu-bar{border-bottom:1px solid var(--app-line);color:var(--app-ink);justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;display:flex}.tofu-bar>span{align-items:center;gap:8px;display:inline-flex}.tofu-bar>svg{color:var(--app-muted)}.tofu-body{flex-direction:column;gap:10px;padding:16px 18px 18px;display:flex}.tofu-title{color:var(--app-accent);font-size:22px;font-weight:700;line-height:1.2}.tofu-text{font-size:13.5px;line-height:1.45}.tofu-label{color:var(--app-muted);margin-top:4px;font-size:14px;font-weight:600}.tofu-fp{background:var(--app-card);border:1px solid var(--app-line);font:600 15px/1.35 var(--font-mono);border-radius:10px;gap:4px;padding:12px 14px;display:grid}.tofu-fp>span{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.tofu-fp b{font-weight:600}.tofu-fp b.is-hidden{color:var(--app-accent);letter-spacing:.12em}.tofu-enter{font-size:13px}.tofu-actions{align-items:center;gap:8px;display:flex}.tofu-input{border:1.5px solid var(--app-accent);min-height:44px;font:700 16px var(--font-mono);letter-spacing:.1em;color:var(--app-ink);border-radius:10px;flex:1;align-items:center;padding:0 12px;display:flex}.tofu-input>i{background:var(--app-ink);width:1.5px;height:18px;margin-left:3px}.tofu-actions .app-btn{min-height:44px}.tofu-steps__title{color:var(--muted);margin-bottom:14px;font-size:12px}.tofu-steps ol{gap:16px;margin:0;padding:0;list-style:none;display:grid}.tofu-steps li{grid-template-columns:28px minmax(0,1fr);gap:12px;font-size:15px;line-height:1.5;display:grid}.tofu-num{border:1px solid var(--app-line-strong);width:28px;height:28px;color:var(--accent);font:600 13px var(--font-mono);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tofu-note{border-top:1px solid var(--app-line);color:var(--muted);gap:10px;margin-top:20px;padding-top:16px;font-size:13.5px;line-height:1.55;display:flex}.tofu-note>svg{color:var(--accent);flex-shrink:0;margin-top:2px}@media (max-width:1023px){.identity-visual{margin-top:8px}}@media (max-width:639px){.lang-switch>button{min-width:38px;min-height:36px;padding:0 8px}.identity-visual{grid-template-columns:1fr;gap:24px}.tofu-fp{padding:10px 12px;font-size:14px}}@media (prefers-reduced-motion:reduce){main,.site-footer,body{transition:none}}@media (max-width:1023px){.nav:not(.is-open) .nav__actions{margin-left:auto;display:flex}.nav:not(.is-open) .nav__actions>:not(.lang-switch){display:none}.nav:not(.is-open) .nav__actions+.nav__toggle{margin-left:8px}.nav.is-open .nav__actions .lang-switch{order:3;align-self:center}}@media (min-width:1024px){.identity-visual{column-gap:var(--gutter);grid-template-columns:repeat(7,minmax(0,1fr))}.identity-visual>.tofu{grid-column:span 4}.identity-visual>.tofu-steps{grid-column:span 3}}@media (max-width:1279px){.flow-panel{flex-direction:column;gap:16px;display:flex}}@media (max-width:1023px){.identity-visual{grid-template-columns:minmax(0,1fr)}}@media (max-width:639px){#protocolli .protocol-row{padding:14px 0}#protocolli .protocol-row p{font-size:15px}.tofu-body{gap:8px;padding:14px}.tofu-steps__title,.tofu-note{display:none}.tofu-steps li{font-size:14px}.tofu-steps ol{gap:12px}}@media (min-width:640px) and (max-width:1023px){.identity-visual{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr))}.identity-visual>.tofu{grid-column:span 7}.identity-visual>.tofu-steps{grid-column:span 5}#protocolli{--h:1}}@media (min-width:640px) and (max-width:799px){#protocolli{--h:2}}@media (max-width:1023px){.nav.nav--centre:not(.is-open) .nav__actions>.lang-switch{display:inline-flex}}.server-downloads .server-readme{align-self:start;margin-top:8px}@media (max-width:639px){.server-downloads .server-readme{width:100%}}@media (min-width:1440px){html{zoom:1.125;--zoom:1.125}}@media (min-width:1600px){html{zoom:1.25;--zoom:1.25}}@media (min-width:1440px){:root{--ly-screen:calc(100svh / var(--zoom) - var(--ly-nav));--ly-fit:calc(100svh / var(--zoom) - var(--padt,120px) - var(--padb,72px) - var(--bar,0px));--ly-hero-h:calc(100svh / var(--zoom) - var(--nav,72px) - var(--hgap,48px) - var(--hpadb,64px) - var(--bar,0px))}main>:is(section,.section):not(.hero){height:auto;min-height:calc(var(--h,1) * 100svh / var(--zoom))}main>:is(section,.section):not(.hero)>:is(.wrap,.container){height:auto}main>:is(.hero,.section--hero){height:calc(100svh / var(--zoom))}}@media (max-width:639px){html main>:is(section,.section):not(.hero,.section--hero){height:auto;min-height:0;padding:80px 0 40px}html main>:is(section,.section):not(.hero,.section--hero)>:is(.wrap,.container){height:auto}html main>:is(.hero,.section--hero){height:auto;min-height:0;padding-bottom:32px}html main>:is(.hero,.section--hero)>.wrap,.hero.hero--collage .hero__grid{height:auto}.hero.hero--collage .hero__art{flex:none;justify-content:flex-start;margin-top:28px}.section-head{margin-bottom:24px}.flow{--row:58px}.flow-head .iso{width:50px;height:50px}.flow-panel{margin-top:20px}.site-footer{padding-top:40px}.flow-rows{min-height:0}.flow-row{height:auto;padding:8px 0 6px}.flow-row--msg .flow-label{position:relative;top:auto;left:auto;right:auto}.flow-row--msg .flow-arrow{bottom:auto;left:var(--left);width:var(--width);height:12px;margin-top:4px;display:block;position:relative}.flow-row--local .flow-box,.flow-row--local.is-end .flow-box{position:relative;top:auto;left:auto;right:auto}.flow-row--local .flow-node{display:none}.flow-body{padding-bottom:52px}.flow-result{white-space:nowrap;max-width:none;padding:6px 12px;font-size:12.5px}}
