:root{--lp-ink: #0c1620;--lp-ink-2: #0f1e2b;--lp-ink-3: #13212d;--lp-paper: #e7ecf1;--lp-paper-2: #f4f7fa;--lp-accent: #e5482a;--lp-accent-dim: rgba(229, 72, 42, .14);--lp-blue: #2c6cb4;--lp-green: #1f8a52;--lp-slate: #43525e;--lp-slate-2: #8fa3b3;--lp-hair: #c2cdd7;--lp-sans: "IBM Plex Sans", "Stabileo Math", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--lp-display: "Space Grotesk", "IBM Plex Sans", sans-serif;--lp-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lp-gut: clamp(1.25rem, 5.7vw, 6.5rem);--lp-max: 1360px;--lp-radius: 3px;--lp-nav-h: 3.625rem}.landing{position:fixed;inset:var(--lp-nav-h) 0 0;z-index:10000;overflow-y:auto;overflow-x:hidden;background:var(--lp-ink);color:var(--lp-paper-2);font-family:var(--lp-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}.landing .scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--lp-accent);z-index:60;transition:width .1s linear}.landing .wrap{max-width:var(--lp-max);margin:0 auto;padding:0 var(--lp-gut)}.landing .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.landing .sec{background:var(--bg);color:var(--fg);padding:clamp(4rem,9vw,8.5rem) 0;position:relative}.landing .sec--ink{--bg: var(--lp-ink);--fg: var(--lp-paper-2);--fg-2: var(--lp-slate-2);--hair: rgba(143, 163, 179, .22);--card: var(--lp-ink-2);--card-hair: rgba(143, 163, 179, .16);--ok: #2aa869;--dev: #4a8fd4;--accent-text: var(--lp-accent)}.landing .sec--paper{--bg: var(--lp-paper);--fg: var(--lp-ink);--fg-2: var(--lp-slate);--hair: var(--lp-hair);--card: var(--lp-paper-2);--card-hair: var(--lp-hair);--ok: #17703f;--dev: #255d9e;--accent-text: #b3341c}.landing h1,.landing .display{font-family:var(--lp-display);font-weight:700;letter-spacing:-.03em;line-height:1.03;margin:0 0 1.25rem;max-width:18ch;text-wrap:balance;overflow-wrap:anywhere}.landing h1{font-size:clamp(2.4rem,5.6vw,4.4rem)}.landing .display{font-size:clamp(1.9rem,3.9vw,3.1rem);max-width:20ch}.landing .display em{font-style:normal;color:var(--lp-accent)}.landing h3{font-family:var(--lp-display);font-weight:600;font-size:1.06rem;letter-spacing:-.012em;line-height:1.25;margin:0 0 .5rem;color:var(--fg)}.landing p{margin:0 0 .9rem}.landing .fit{padding-bottom:0}.landing .link-row{display:flex;flex-wrap:wrap;gap:0 2rem;margin-top:1rem}.landing .link-row a{min-height:44px;display:inline-flex;align-items:center}.landing .lead{color:var(--fg-2);font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.62;max-width:58ch;margin-bottom:2rem}.landing .kicker{font-family:var(--lp-mono);font-weight:500;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-text);margin:0 0 .7rem}.landing .eyebrow{display:flex;align-items:center;gap:.75rem;margin:0 0 1.5rem;font-family:var(--lp-mono);font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.landing .eyebrow-rule{width:34px;height:2px;background:var(--lp-accent);flex:none}.landing .eyebrow-n{color:var(--fg-2)}.landing .eyebrow-label{min-width:0;color:var(--accent-text)}:is(.landing,.site-header) .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--lp-sans);font-weight:600;font-size:.92rem;line-height:1;padding:.85rem 1.4rem;border:1px solid transparent;border-radius:var(--lp-radius);cursor:pointer;text-decoration:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease;white-space:nowrap}:is(.landing,.site-header) .btn-primary{background:var(--st-accent-fill);color:#fff}:is(.landing,.site-header) .btn-primary:hover{background:var(--st-accent-fill-hover)}.landing .btn-ghost{background:transparent;color:var(--fg);border-color:var(--hair)}.landing .btn-ghost:hover{border-color:var(--fg)}.landing .btn-lg{padding:1rem 1.7rem;font-size:.98rem}:is(.landing,.site-header) .btn-sm{padding:.6rem 1rem;font-size:.84rem}.landing .link-arrow{font-family:var(--lp-mono);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text);text-decoration:none;border-bottom:1px solid var(--lp-accent-dim);padding-bottom:2px;align-self:flex-start}.landing .link-arrow:after{content:" →"}.landing .link-arrow:hover{border-bottom-color:var(--lp-accent)}.landing button.link-arrow{background:none;border:0;border-bottom:1px solid var(--lp-accent-dim);padding:0 0 2px;font:inherit;font-family:var(--lp-mono);font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}.landing .hero{padding-top:max(1.75rem,clamp(3.5rem,7vw,6.5rem) - var(--lp-nav-h));padding-bottom:clamp(3.5rem,7vw,7rem);scroll-margin-top:var(--lp-nav-h);box-sizing:border-box;min-height:calc(100vh - var(--lp-nav-h));min-height:calc(100svh - var(--lp-nav-h))}.landing .hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:center}.landing .hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.landing .hero-blog{display:inline-block;margin-bottom:2.5rem}.landing .hero-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin:0;padding-top:1.4rem;border-top:1px solid var(--hair)}.landing .hero-meta dt{font-family:var(--lp-mono);font-size:.75rem;letter-spacing:.05em;color:var(--fg-2)}.landing .truss-fig{--tf-tension: var(--lp-accent);--tf-compression: var(--lp-blue);--tf-zero: var(--fg-2);margin:0}.landing .truss-fig svg{width:100%;height:auto;display:block;overflow:visible}.landing .tf-ghost line{fill:none;stroke:var(--fg-2);stroke-opacity:.24;stroke-width:1}.landing .tf-members line{fill:none;stroke-linecap:round}.landing .tf-deck-rule line{stroke:var(--fg-2);stroke-opacity:.34;stroke-width:1;stroke-dasharray:3 4}.landing .tf-nodes circle{fill:var(--fg)}.landing .tf-supports path{fill:none;stroke:var(--fg-2);stroke-width:1.2}.landing .tf-supports line{stroke:var(--fg-2);stroke-width:1.2}.landing .tf-supports .tf-hatch{stroke-width:1;stroke-opacity:.7}.landing .tf-supports .tf-roller{fill:none;stroke:var(--fg-2);stroke-width:1.1}.landing .tf-load line,.landing .tf-load path{stroke:var(--tf-tension);fill:var(--tf-tension);stroke-width:1.6}.landing .tf-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.15rem;margin-top:1.15rem;font-family:var(--lp-mono);font-size:.75rem;letter-spacing:.12em;color:var(--fg-2)}.landing .tf-key{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.landing .tf-key:before{content:"";width:14px;height:3px;flex:none}.landing .tf-key-t:before{background:var(--tf-tension)}.landing .tf-key-c:before{background:var(--tf-compression)}.landing .tf-key-z:before{background:var(--tf-zero);opacity:.5;height:1px}.landing .tf-key-g:before{background:var(--fg-2);opacity:.24;height:1px}.landing .tf-key-n:before{display:none}.landing .tf-key-n{max-width:100%;white-space:normal}.landing .truss-fig.compact .tf-caption{margin:.6rem 0 0;font-family:var(--lp-sans);font-size:.82rem;line-height:1.4;color:var(--fg-2)}.landing .rt-states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:.9rem}.landing .rt-states .truss-fig{background:var(--card);padding:1rem 1rem 1.1rem}.landing .card-row{display:grid;gap:1px;margin-top:2.75rem;background:var(--hair);border:1px solid var(--hair)}.landing .card-row.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.landing .card-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.landing .card{background:var(--card);padding:clamp(1.4rem,2.2vw,2rem);display:flex;flex-direction:column;gap:.15rem}.landing .card p:last-child{margin-bottom:0}.landing .card p{color:var(--fg-2)}.landing .card h3{color:var(--fg)}.landing .card-media{padding:0}.landing .card-media picture,.landing .card-media img{display:block;width:100%;height:auto}.landing .card-media .card-body{padding:.55rem clamp(1rem,1.6vw,1.4rem) clamp(1.5rem,2.6vw,2.2rem);border-top:1px solid var(--card-hair)}.landing .card-media .card-body h3{font-family:var(--lp-sans);font-size:.9rem;font-weight:600;line-height:1.35;margin:0}.landing .mode-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:clamp(2rem,4vw,3.5rem);align-items:start;margin-top:1.5rem}.landing .mode-split-shot{margin:0;border:1px solid var(--hair);background:var(--card)}.landing .mode-split-shot picture,.landing .mode-split-shot img{display:block;width:100%;height:auto}.landing .mode-split-shot figcaption{padding:.7rem clamp(1rem,1.6vw,1.4rem) clamp(1rem,1.8vw,1.5rem);border-top:1px solid var(--card-hair);font-family:var(--lp-sans);font-size:.9rem;font-weight:600;color:var(--fg)}@media(max-width:860px){.landing .mode-split{grid-template-columns:minmax(0,1fr)}}.landing .tick-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.landing .tick-list li{position:relative;padding-left:1.4rem;color:var(--fg-2)}.landing .tick-list li:before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--lp-accent)}.landing .chip{font-family:var(--lp-mono);font-size:.73rem;letter-spacing:.04em;padding:.42rem .7rem;border:1px solid var(--hair);border-radius:var(--lp-radius);background:transparent;color:var(--fg-2);cursor:pointer;white-space:nowrap}.landing .cap-shots{margin-top:1.5rem}.landing .stat{background:var(--card);padding:clamp(1.2rem,2vw,1.75rem);text-decoration:none;color:inherit;display:block}.landing .stat-label{margin:0 0 .3rem;font-size:.9rem;color:var(--fg)}.landing .code-name{font-family:var(--lp-mono);font-weight:600;font-size:.95rem;letter-spacing:.02em;margin:0 0 .25rem;color:var(--fg)}.landing .note{border-left:3px solid var(--lp-accent);background:var(--card);padding:1.3rem 1.5rem}.landing .note p:last-child{margin-bottom:0;color:var(--fg-2);max-width:78ch}.landing .gv{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(1rem,3vw,2.5rem);border:1px solid var(--hair);padding:clamp(1.4rem,3vw,2.4rem);margin-bottom:1.5rem}.landing .analogy{border-left:1px solid var(--hair);padding-left:1.1rem}.landing .analogy p:last-child{margin-bottom:0;color:var(--fg-2);font-size:.94rem}.landing .badge{display:inline-block;font-family:var(--lp-mono);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.32rem .55rem;border:1px solid currentColor;border-radius:var(--lp-radius)}.landing .badge-today{color:var(--ok)}.landing .badge-dev{color:var(--dev)}.landing .mode-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.landing .mode-head h2{flex:1 1 20ch}.landing .mode-head .badge{flex:none;margin-top:.5rem}.landing .mode-note+.mode-note{margin-top:.9rem;padding-top:0;border-top:0}.landing .mode-note{margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--hair);color:var(--fg-2);font-size:.95rem;max-width:84ch}.landing .modes{margin-top:3rem}.landing .mode-list{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair)}.landing .mode-row{background:var(--card);padding:clamp(1.1rem,2vw,1.5rem);display:grid;grid-template-columns:minmax(0,10rem) minmax(0,9rem) minmax(0,1fr);align-items:baseline;gap:.5rem clamp(1.2rem,3vw,2.2rem)}.landing .mode-name{margin:0;font-family:var(--lp-display);font-size:1.05rem;color:var(--fg)}.landing .split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:2.5rem}.landing .access{margin-top:2.5rem;border-top:2px solid var(--lp-accent);padding-top:1.6rem;max-width:68ch}.landing .access h3{font-size:1.3rem}.landing .access p{color:var(--fg-2)}.landing .cta-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}.landing .cta-inner .lead{margin-bottom:0}.landing .lp-footer{padding-top:clamp(2.2rem,4vw,3.4rem);padding-bottom:2.5rem;border-top:1px solid rgba(143,163,179,.16)}.landing .footer-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:clamp(2rem,5vw,4rem);flex-wrap:wrap}.landing .footer-right{flex:1 1 32rem;max-width:46rem;display:flex;flex-direction:column;align-items:stretch;gap:1.25rem}.landing .footer-tagline{max-width:34ch}.landing .footer-social{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-start;list-style:none;margin:0;padding:0}.landing .footer-social a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;min-width:44px;padding:.34rem .6rem;border:1px solid rgba(143,163,179,.22);border-radius:var(--lp-radius);color:var(--lp-slate-2);text-decoration:none;font-size:.82rem;white-space:nowrap}.landing .footer-social a:hover{color:var(--lp-paper-2);border-color:#8fa3b373}.landing .social-mark{display:inline-flex}.landing .footer-brand{display:flex;gap:.7rem;align-items:flex-start}.landing .footer-name{font-family:var(--lp-display);font-weight:600;margin:0}.landing .footer-tagline{margin:0;color:var(--fg-2);font-size:.9rem;max-width:34ch}.landing .footer-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1rem 1.5rem}.landing .footer-head{margin:0 0 .25rem;font-family:var(--lp-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.landing .footer-links ul{list-style:none;margin:0;padding:0}.landing .footer-links a,.landing .footer-links button{background:none;border:0;padding:.25rem 0;text-align:left;min-height:44px;min-width:44px;display:inline-flex;align-items:center;cursor:pointer;font-family:var(--lp-sans);font-size:.9rem;color:var(--fg-2);text-decoration:none}.landing .footer-links a:hover,.landing .footer-links button:hover{color:var(--fg)}.landing .footer-legal{margin-top:1.8rem;padding-top:1.1rem;border-top:1px solid rgba(143,163,179,.14)}.landing .footer-legal p{margin:0;padding-right:4.5rem;font-family:var(--lp-mono);font-size:.75rem;letter-spacing:.05em;color:var(--fg-2)}.landing .mobile-sticky{display:none}@media(max-width:1100px){.landing .card-row.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.landing .hero-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:1000px){.landing .split{grid-template-columns:1fr}}@media(max-width:900px){.landing .mode-row{grid-template-columns:minmax(0,9rem) minmax(0,1fr)}.landing .mode-row .badge{grid-row:1}.landing .gv{grid-template-columns:1fr}}@media(max-width:760px){.landing .card-row.cols-2,.landing .card-row.cols-3,.landing .rt-states{grid-template-columns:1fr}.landing .cta-inner{align-items:flex-start}.landing .mobile-sticky{display:block;position:sticky;bottom:0;z-index:40;padding:.7rem var(--lp-gut) calc(.7rem + env(safe-area-inset-bottom));background:#0c1620f0;border-top:1px solid rgba(143,163,179,.16)}.landing .mobile-sticky .btn{width:100%}}@media(max-width:420px){.landing .tf-legend{gap:.3rem .8rem}}.landing :focus-visible{outline:2px solid var(--lp-accent);outline-offset:3px;border-radius:var(--lp-radius)}.landing .sec--ink :focus-visible{outline-color:#ff7a55}.landing:focus-visible{outline:2px solid rgba(229,72,42,.5);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.landing,.landing *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.landing .blog-cta-inner{display:grid;gap:1.25rem;max-width:46rem}.landing .blog-cta-inner .lead{margin:0}.landing .blog-latest{display:grid;gap:.6rem;justify-items:start;padding:clamp(1.25rem,2.5vw,1.75rem);background:var(--card);border:1px solid var(--card-hair);border-left:2px solid var(--lp-accent);border-radius:var(--lp-radius)}.landing .blog-latest h3{margin:0}.landing .blog-latest-title{font-family:var(--lp-display);font-size:clamp(1.15rem,2.2vw,1.6rem);line-height:1.2;letter-spacing:-.02em;color:var(--fg);text-decoration:none}.landing .blog-latest-title:hover{color:var(--accent-text)}.landing .blog-latest-meta{margin:0;font-family:var(--lp-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2)}.landing .blog-latest-excerpt{margin:0;color:var(--fg-2);max-width:62ch}.landing .card-row .card-wide{grid-column:1 / -1}.landing .links-fab{position:fixed;right:clamp(1rem,2.5vw,1.75rem);bottom:clamp(1rem,2.5vw,1.75rem);z-index:45;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--lp-ink-2);border:1px solid rgba(143,163,179,.28);color:var(--lp-accent);box-shadow:0 6px 22px #00000061;transition:transform .18s cubic-bezier(.16,1,.3,1),border-color .18s,box-shadow .18s}.landing .links-fab:hover{transform:translateY(-2px);border-color:var(--lp-accent);box-shadow:0 10px 28px #00000073}.landing .links-fab:focus-visible{outline:2px solid var(--lp-accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){.landing .links-fab{transition:none}.landing .links-fab:hover{transform:none}}@media(max-width:760px){.landing .links-fab{width:46px;height:46px}}.landing .model-table-wrap{margin:1.6rem 0 1rem}.landing .model-table{width:100%;max-width:56rem;table-layout:fixed;border-collapse:collapse;font-size:.95rem}.landing .model-table th,.landing .model-table td{text-align:left;padding:.7rem clamp(.35rem,1.5vw,.9rem);overflow-wrap:break-word;hyphens:auto;border-bottom:1px solid rgba(143,163,179,.18)}.landing .model-table thead th{font-family:var(--lp-sans);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--lp-slate-2);border-bottom-color:#8fa3b352}.landing .model-table tbody th{font-weight:600}.landing .model-table td{color:var(--lp-slate-2)}.landing .model-table thead th:not(:first-child),.landing .model-table .price{text-align:right;font-weight:600}.landing .model-table thead th:not(:first-child){width:30%}.landing .model-table .price.is-free{color:#4ba36b}.landing .model-table .price.is-paid{color:var(--lp-accent)}.landing .shot-pair{margin:1.5rem 0 0;border:1px solid var(--hair);background:var(--card)}.landing .shot-pair-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--hair)}.landing .shot-pair-images picture,.landing .shot-pair-images img{display:block;width:100%;height:auto}.landing .shot-pair figcaption{padding:clamp(1rem,1.8vw,1.4rem) clamp(1rem,1.6vw,1.4rem);border-top:1px solid var(--card-hair);color:var(--fg-2);font-size:.95rem;line-height:1.6}@media(max-width:760px){.landing .shot-pair-images{grid-template-columns:minmax(0,1fr)}}.landing .mode-split-shot figcaption{font-size:.9rem}.landing .mode-split .mode-head{display:block}.landing .mode-split .mode-head .badge{margin:.9rem 0 0}.landing .mode-split-text .lead{margin-top:1.1rem}.landing .fn{color:var(--lp-accent);font-weight:600;margin-left:.15em}.landing .mode-note .fn{margin:0 .25em 0 0}.landing .links-fab-root{position:fixed;right:clamp(1rem,2.5vw,1.75rem);bottom:clamp(1rem,2.5vw,1.75rem);z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.landing .links-fab{position:static;right:auto;bottom:auto}.landing .links-fab.open{border-color:var(--lp-accent)}.landing .links-panel{min-width:13.5rem;padding:.85rem;border-radius:var(--lp-radius);background:var(--lp-ink-2);border:1px solid rgba(143,163,179,.28);box-shadow:0 14px 34px #00000073}.landing .links-panel-title{margin:0 0 .6rem;font-family:var(--lp-sans);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--lp-slate-2)}.landing .links-panel ul{display:flex;flex-direction:column;gap:.15rem;list-style:none;margin:0;padding:0}.landing .links-panel a{display:flex;align-items:center;gap:.6rem;padding:.42rem .5rem;border-radius:var(--lp-radius);color:var(--lp-slate-2);text-decoration:none;font-size:.9rem;white-space:nowrap}.landing .links-panel a:hover{color:var(--lp-paper-2);background:#8fa3b31a}.landing .links-panel a[data-social=whatsapp] .social-mark{color:#25d366}@media(prefers-reduced-motion:no-preference){.landing .links-panel{animation:links-in .16s cubic-bezier(.16,1,.3,1)}@keyframes links-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}@media(max-width:760px){.landing .links-fab-root{bottom:calc(4.25rem + env(safe-area-inset-bottom))}.landing .links-panel{max-width:calc(100vw - 2rem)}}.landing .links-panel .links-name{flex:1 1 auto}.landing .links-panel .links-langs{flex:none;font-family:var(--lp-mono);font-size:.7rem;letter-spacing:.04em;color:var(--lp-slate)}.landing .links-panel a:hover .links-langs{color:var(--lp-slate-2)}
