@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#fff;--paper-2:#f6f9f9;--ink:#14212b;--ink-2:#3e4c57;--ink-3:#5c6b77;--accent:#0e7c7b;--accent-strong:#0a5f5e;--on-accent:#fff;--mat:#e9f2f1;--sand:#f2ece3;--soft:#cfe7e5;--gate:#c0392b;--line:#e3e9ec;--line-strong:#b9c6cd;--shadow:0 24px 48px -28px #14212b59;--panel:#fff;--nav-bg:#ffffffdb;--bg:var(--paper);--bg-2:var(--mat);--surface:var(--paper-2);--surface-2:var(--paper);--flow-opacity:.85;--flow-width:1.3;--display:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--sans:"Instrument Sans Variable", "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--serif:var(--display);--mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--t-xs:clamp(.78rem, .74rem + .18vw, .86rem);--t-sm:clamp(.92rem, .88rem + .18vw, 1rem);--t-0:clamp(1.02rem, .98rem + .22vw, 1.12rem);--t-1:clamp(1.2rem, 1.08rem + .5vw, 1.45rem);--t-2:clamp(1.9rem, 1.4rem + 2vw, 2.9rem);--t-3:clamp(3rem, 1.8rem + 5vw, 5.6rem);--measure:62ch;--wide:74rem;--gutter:clamp(1rem, 4vw, 2.5rem);--sec:clamp(3.5rem, 8vw, 6.5rem);--radius:12px;--nav-h:3.75rem;--totop:2.75rem}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--paper:#0f191f;--paper-2:#14222a;--ink:#e7eef2;--ink-2:#b5c3cc;--ink-3:#93a3ae;--accent:#5cc8c5;--accent-strong:#8fe0dd;--on-accent:#06201f;--mat:#15282d;--sand:#262520;--soft:#1f4444;--gate:#ff8577;--line:#ffffff1a;--line-strong:#ffffff57;--shadow:0 24px 48px -28px #000c;--panel:#14222a;--nav-bg:#0f191fdb;--flow-opacity:.6;--flow-width:1}}:root[data-theme=dark]{--paper:#0f191f;--paper-2:#14222a;--ink:#e7eef2;--ink-2:#b5c3cc;--ink-3:#93a3ae;--accent:#5cc8c5;--accent-strong:#8fe0dd;--on-accent:#06201f;--mat:#15282d;--sand:#262520;--soft:#1f4444;--gate:#ff8577;--line:#ffffff1a;--line-strong:#ffffff57;--shadow:0 24px 48px -28px #000c;--panel:#14222a;--nav-bg:#0f191fdb;--flow-opacity:.6;--flow-width:1}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1rem);-webkit-text-size-adjust:100%}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--sans);font-size:var(--t-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6;overflow-x:clip}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:700}p{margin:0 0 1em}p:last-child{margin-bottom:0}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}main:focus{outline:none}svg{display:block}img{max-width:100%;height:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:50;background:var(--accent);color:var(--on-accent);border-radius:8px;padding:.55rem .9rem;font-weight:600;text-decoration:none;position:absolute;top:.6rem;left:-999px}.skip:focus{left:.6rem}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes flow{to{stroke-dashoffset:-24px}}@keyframes pulse{0%,to{opacity:.35;transform:translate(-50%,-50%)scale(1)}50%{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}html.is-hidden .constellation .edge.flow,html.is-hidden .constellation-wrap .halo{animation-play-state:paused}.site-header{z-index:20;height:var(--nav-h);padding:0 var(--gutter);background:var(--nav-bg);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:1rem;transition:border-color .3s;display:flex;position:sticky;top:0}.site-header.is-stuck{border-bottom-color:var(--line)}.brand{color:var(--ink);font-family:var(--display);align-items:center;gap:.55rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.mark{flex:none;width:24px;height:24px}.mark .edge{stroke:var(--ink-3);stroke-width:1.2px}.mark .node{fill:var(--paper);stroke:var(--ink-2);stroke-width:1.4px}.mark .node.hub{stroke:var(--accent);stroke-width:1.8px}.mark .node.gate{stroke:var(--gate);stroke-width:1.6px}.brand-name{display:inline}.nav-links{font-size:var(--t-sm);white-space:nowrap;gap:.2rem 1.4rem;display:none}.nav-links a{color:var(--ink-2);border-bottom:2px solid #0000;padding:.3rem 0;text-decoration:none}.nav-links a:hover{color:var(--ink);border-bottom-color:var(--accent)}.header-right{align-items:center;gap:.7rem;display:flex}html.js .site-header .header-email{transition:opacity .25s,transform .25s,visibility 0s linear .25s}html.js .site-header:not(.is-stuck) .header-email{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px)}.menu{position:relative}.menu>summary{cursor:pointer;width:2.5rem;height:2.5rem;color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:10px;place-items:center;list-style:none;display:grid}.menu>summary::-webkit-details-marker{display:none}.menu>summary svg{width:20px;height:20px}.menu[open]>summary{background:var(--mat)}.menu-panel{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-strong);min-width:13rem;box-shadow:var(--shadow);gap:.15rem;padding:.5rem;animation:.18s ease-out rise;display:grid;position:absolute;top:calc(100% + .6rem);right:0}.menu-panel a{color:var(--ink);font-size:var(--t-sm);border-radius:8px;padding:.6rem .8rem;text-decoration:none;display:block}.menu-panel a:hover{background:var(--mat)}@media (min-width:1000px){.nav-links{display:flex}.menu{display:none}}.btn{font-weight:600;font-size:var(--t-sm);border:1px solid #0000;border-radius:10px;align-items:center;gap:.5rem;padding:.8rem 1.25rem;line-height:1;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn svg{width:1.05em;height:1.05em}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.btn-soft{background:var(--mat);color:var(--accent-strong);border-color:var(--mat)}.btn-soft:hover{border-color:var(--accent);color:var(--accent-strong)}.btn-sm{padding:.55rem .9rem}.btn-lg{font-size:var(--t-0);padding:1rem 1.5rem}main{padding:0 var(--gutter)}main>section{max-width:var(--wide);padding:var(--sec) 0;border-top:1px solid var(--line);margin:0 auto}main>section.hero{border-top:0}.sec-head{max-width:var(--measure);margin-bottom:clamp(1.8rem,4vw,3rem)}h2{font-size:var(--t-2);letter-spacing:-.02em;max-width:22ch;margin-bottom:.9rem;line-height:1.06}h2.statement{max-width:30ch;font-size:clamp(1.5rem,1.15rem + 1.3vw,2.15rem);line-height:1.15}.lead{font-size:var(--t-1);color:var(--ink);max-width:46ch;line-height:1.45}section p{color:var(--ink-2);max-width:var(--measure)}.placeholder{color:var(--ink-3);font-family:var(--mono);font-size:var(--t-xs);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:.8rem 1rem}.placeholder:empty{display:none}.hero{align-items:end;gap:clamp(1.6rem,4vw,3.5rem);padding-top:clamp(1.5rem,4vw,3rem);display:grid}.portrait{aspect-ratio:4/5;border-radius:var(--radius);background:var(--sand);place-items:center;max-height:34rem;display:grid;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.portrait .monogram{width:min(60%,15rem);height:auto}.hero h1{font-size:var(--t-3);letter-spacing:-.03em;max-width:9ch;margin:0 0 1.4rem;line-height:.94}.hero .lead{font-family:var(--display);letter-spacing:-.01em;max-width:26ch;margin-bottom:1.2rem;font-size:clamp(1.45rem,1.15rem + 1.1vw,2.05rem);font-weight:500;line-height:1.22}.sales-line{font-size:var(--t-0);color:var(--ink-2);border-left:3px solid var(--accent);max-width:54ch;margin-bottom:1.8rem;padding-left:1rem}.hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}@media (max-width:759px){.portrait{aspect-ratio:1;max-width:18rem}}@media (min-width:760px){.hero{grid-template-columns:minmax(16rem,26rem) minmax(0,1fr)}}.feature{align-items:center;gap:clamp(1.4rem,4vw,3.5rem);padding:clamp(1.6rem,4vw,3rem) 0;display:grid}.feature+.feature{border-top:1px solid var(--line)}.media{border-radius:var(--radius);background:var(--mat);justify-content:center;min-height:18rem;display:flex;overflow:hidden}.media-shots{align-items:flex-end;gap:clamp(.8rem,2.5vw,1.6rem);padding:clamp(1.4rem,4vw,2.6rem) 1rem 0}.media-shots img{width:min(42%,13rem);box-shadow:var(--shadow);border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0}.media-illo{background:var(--sand);align-items:center;padding:clamp(1.4rem,4vw,2.4rem)}.media-illo .illo{width:min(100%,26rem);height:auto}.feature h3{letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(1.6rem,1.25rem + 1.4vw,2.4rem);line-height:1.05}@media (min-width:900px){.feature{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.feature.flip .media{order:2}.media{min-height:24rem}}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:clamp(1rem,2.5vw,1.6rem);margin-top:clamp(1.4rem,3vw,2.2rem);display:grid}.card{flex-direction:column;gap:.7rem;min-width:0;display:flex}.card-media{border-radius:var(--radius);background:var(--mat);place-items:center;height:11rem;margin-bottom:.4rem;padding:1rem;display:grid}.card-media.sand{background:var(--sand)}.card-media .illo{width:100%;height:100%}.media-icon{background:var(--paper);width:5.5rem;height:5.5rem;color:var(--accent-strong);box-shadow:var(--shadow);border-radius:18px;place-items:center;display:grid}.media-icon svg{width:2.6rem;height:2.6rem}.card h3{font-size:var(--t-1);line-height:1.2}.card p{font-size:var(--t-sm)}.facts{gap:.55rem;margin:0;display:grid}.facts div{font-size:var(--t-sm);color:var(--ink-2);grid-template-columns:7.2rem minmax(0,1fr);gap:.8rem;line-height:1.5;display:grid}.facts dt{color:var(--ink);font-weight:600}.facts dd{overflow-wrap:anywhere;margin:0}.card .facts div{grid-template-columns:1fr;gap:.1rem}@media (max-width:520px){.facts div{grid-template-columns:1fr;gap:.1rem}}.record{align-items:center;gap:clamp(1.6rem,4vw,3.5rem);display:grid}@media (min-width:900px){.record{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.chart{border-radius:var(--radius);background:var(--mat);margin:0;padding:clamp(1.2rem,3vw,2rem)}.chart figcaption{font-family:var(--display);font-weight:700;font-size:var(--t-1);color:var(--ink);margin-bottom:1rem}.chart ol{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.chart li{gap:.35rem;display:grid}.chart-label{font-size:var(--t-sm);color:var(--ink-2)}.chart-label:first-letter{text-transform:uppercase}.chart-bar{height:2.4rem;width:calc(var(--pct) * 1%);background:var(--accent);border-radius:8px;min-width:4.5rem;display:block;position:relative}.chart li:last-child .chart-bar{background:var(--accent-strong)}.chart-val{color:var(--on-accent);font-family:var(--display);font-size:1.15rem;font-weight:700;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.how{align-items:center;gap:clamp(1.6rem,4vw,3rem);display:grid}@media (min-width:1000px){.how{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}.os{align-items:center;gap:clamp(1.6rem,4vw,3rem);display:grid}.os-visual{border-radius:var(--radius);background:var(--sand);padding:clamp(1.2rem,4vw,2.4rem)}.os-visual .illo{width:100%;max-width:28rem;height:auto;margin:0 auto}@media (min-width:900px){.os{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}.profile-grid{gap:clamp(1.6rem,4vw,3rem);display:grid}@media (min-width:900px){.profile-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}.legs{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.legs li{background:var(--mat);color:var(--ink);font-weight:600;font-size:var(--t-sm);border-radius:10px;align-items:center;gap:.65rem;padding:.85rem .95rem;line-height:1.25;display:flex}.legs .glyph{width:1.3rem;height:1.3rem;color:var(--accent-strong);flex:none}.legs .leg-label:first-letter{text-transform:uppercase}.skills-block{margin-top:clamp(2.4rem,6vw,4rem)}.skills{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1rem;display:grid}.skills>div{border-radius:var(--radius);background:var(--paper-2);border-top:3px solid var(--accent);padding:1.1rem 1.2rem}.skills h3{font-size:var(--t-1);margin:0 0 .5rem}.skills p{font-size:var(--t-sm);margin:0}.hobbies .strip{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.8rem;margin:1.6rem 0 0;padding:0;list-style:none;display:grid}.hobbies .strip img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);width:100%}.monogram .ring{fill:var(--paper);stroke:var(--line-strong);stroke-width:1px}.monogram .orbit{fill:none;stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:2 6}.monogram .edge{stroke:var(--ink-3);stroke-opacity:.6;stroke-width:1px}.monogram .node{fill:var(--paper);stroke:var(--ink-2);stroke-width:1.3px}.monogram .node.gate{stroke:var(--gate);stroke-width:1.8px}.monogram .node.hub{stroke:var(--accent);stroke-width:1.8px}.monogram text{font-family:var(--display);fill:var(--ink);letter-spacing:-2px;font-size:52px;font-weight:700}.illo .frame{fill:var(--paper);stroke:var(--ink);stroke-width:2.5px}.illo .screen{fill:var(--paper-2)}.illo .line{fill:none;stroke:var(--ink);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.illo .line.dash{stroke-dasharray:4 6}.illo .soft{fill:var(--soft)}.illo .accent{fill:var(--accent)}.illo .bar{fill:var(--line-strong)}.illo .dot{fill:var(--accent)}.illo .scan path{stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 7;stroke-linecap:round;opacity:.75}.illo .wave{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round}.illo .alert{fill:var(--gate)}.illo .mark{stroke:#fff;stroke-width:3px;stroke-linecap:round}.illo .hub{fill:var(--accent);stroke:var(--ink);stroke-width:2.5px}.illo .node{fill:var(--paper);stroke:var(--ink);stroke-width:2.5px}.illo .gate{fill:var(--paper);stroke:var(--gate);stroke-width:3px}.contact{text-align:center;padding-bottom:clamp(3rem,8vw,6rem)}.contact h2{margin:0 auto 1rem}.contact-body{max-width:48ch;margin:0 auto}.contact-body p{margin-inline:auto}.contact-actions{flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:1.8rem;display:flex}details.more{margin-top:.7rem}details.more>summary{cursor:pointer;font-size:var(--t-sm);color:var(--accent-strong);align-items:center;gap:.35rem;font-weight:600;list-style:none;display:inline-flex}details.more>summary::-webkit-details-marker{display:none}details.more>summary:after{content:"+";font-weight:700}details.more[open]>summary:after{content:"−"}details.more>:not(summary){margin-top:.7rem}details.more p{font-size:var(--t-sm)}.proof{font-size:var(--t-xs);flex-wrap:wrap;align-items:center;gap:.45rem;margin:.9rem 0 0;display:flex}.proof-label{color:var(--ink-3);margin-right:.2rem}.proof a{background:var(--mat);color:var(--accent-strong);border-radius:999px;padding:.3rem .7rem;font-weight:600;text-decoration:none;display:inline-block}.proof a:hover{background:var(--soft)}.badges{flex-wrap:wrap;gap:.35rem;margin:0 0 .3rem;display:flex}.badges span{background:var(--sand);color:var(--ink-2);border-radius:6px;padding:.15rem .55rem;font-size:.78rem;font-weight:600}.site-footer{border-top:1px solid var(--line);padding:1.6rem max(4.4rem, calc(var(--gutter) + 1.5rem)) 2.2rem var(--gutter);color:var(--ink-3);font-size:var(--t-xs);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;display:flex}.site-footer p{color:var(--ink-3);margin:0}.site-footer a{color:var(--ink-2)}.totop{z-index:15;width:var(--totop);height:var(--totop);background:var(--paper);color:var(--ink);border:1px solid var(--line-strong);box-shadow:var(--shadow);opacity:0;visibility:hidden;pointer-events:none;border-radius:10px;place-items:center;transition:opacity .25s,transform .25s,visibility 0s linear .25s;display:grid;position:fixed;bottom:1rem;right:1rem;transform:translateY(8px)}.totop svg{width:18px;height:18px}.totop.is-visible,html:not(.js) .totop{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:none}.totop:hover{color:var(--accent)}.constellation-wrap{border-radius:calc(var(--radius) + 4px);background:var(--mat);border:0;margin:0;padding:clamp(.5rem,1.5vw,1.2rem)}.map{position:relative}.map.landscape{display:none}.map.portrait{max-width:26rem;margin:0 auto;display:block}@media (min-width:700px){.map.landscape{display:block}.map.portrait{display:none}}.constellation{width:100%;height:auto;overflow:visible}.constellation .edge{stroke:var(--ink-3);stroke-opacity:.5;stroke-width:1px}.constellation .edge.flow{stroke:var(--accent);stroke-opacity:var(--flow-opacity);stroke-width:var(--flow-width);stroke-dasharray:3 9;stroke-linecap:round;animation:5s steps(40,end) infinite flow}.constellation .node{fill:var(--paper);stroke:var(--ink-2);stroke-width:1.3px}.constellation .node.gate{stroke:var(--gate);stroke-width:2px}.constellation .node.hub{stroke:var(--accent);stroke-width:2px;fill:var(--mat)}.map .halo{aspect-ratio:1;border:1px solid var(--accent);opacity:.35;pointer-events:none;will-change:transform, opacity;border-radius:50%;animation:4s ease-in-out infinite pulse;position:absolute;transform:translate(-50%,-50%)}.constellation text{font-family:var(--sans);fill:var(--ink-2);font-size:14px}.constellation.portrait text{font-size:15px}.constellation-wrap.is-offscreen .constellation .edge.flow,.constellation-wrap.is-offscreen .halo{animation-play-state:paused}.legend{font-size:var(--t-xs);color:var(--ink-3);flex-wrap:wrap;justify-content:center;gap:.3rem 1.4rem;margin:.8rem 0 0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:.45rem;display:inline-flex}.legend .key{border:1.5px solid var(--ink-2);background:var(--paper);border-radius:999px;width:.7rem;height:.7rem}.legend .key.gate{border-color:var(--gate);border-width:2px}.legend .key.hub{border-color:var(--accent);border-width:2px}.constellation-wrap figcaption{text-align:center;color:var(--ink-3);font-size:var(--t-sm);margin:.7rem .5rem .1rem}@keyframes draw-edge{to{stroke-dashoffset:0}}@keyframes fade-edge{0%{stroke-opacity:0}}@keyframes pop-node{0%{opacity:0;transform:scale(.35)}to{opacity:1;transform:scale(1)}}.constellation .nodes .pop{transform-box:fill-box;transform-origin:50%}html.js .constellation-wrap:not(.is-visible) .edge:not(.flow){stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}html.js .constellation-wrap:not(.is-visible) .edge.flow{stroke-opacity:0}html.js .constellation-wrap:not(.is-visible) .nodes .pop{opacity:0}html.js .constellation-wrap.is-visible .edge:not(.flow){stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:.7s cubic-bezier(.4,0,.2,1) forwards draw-edge;animation-delay:calc(.5s + var(--i) * 70ms)}html.js .constellation-wrap.is-visible .edge.flow{animation:5s linear infinite flow,.9s ease-out both fade-edge;animation-delay:0s, calc(.3s + var(--i) * 70ms)}html.js .constellation-wrap.is-visible .nodes .pop{animation:.55s cubic-bezier(.2,.8,.2,1) both pop-node;animation-delay:calc(.15s + var(--i) * 90ms)}.constellation .ring{fill:none;stroke:var(--gate);stroke-opacity:.25;stroke-width:1px}.constellation .pulse{fill:var(--accent)}.constellation .gate-pulse{fill:var(--gate)}.constellation .gate-glow{fill:var(--gate);opacity:0}.constellation .nodes>g{transition:opacity .25s}.constellation[data-focus] .edge,.constellation[data-focus] .edge.flow{stroke-opacity:.14}.constellation[data-focus] .edge.lit{stroke:var(--accent);stroke-opacity:1;stroke-width:1.8px}.constellation[data-focus] .nodes>g:not(.on){opacity:.42}.constellation .nodes>g.on text{fill:var(--ink);font-weight:600}.constellation .nodes>g.on .node{stroke-width:2.4px}.constellation-wrap.is-offscreen .pulses{visibility:hidden}.map{perspective:1100px}.map .tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));will-change:transform;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.map .drift{transform-style:preserve-3d;animation:16s ease-in-out infinite drift;position:relative}@keyframes drift{0%,to{transform:rotateX(5deg)rotateY(-7deg)translateZ(0)}50%{transform:rotateX(-4deg)rotateY(7deg)translateZ(6px)}}.map .depth{opacity:.32;filter:blur(.7px);pointer-events:none;width:100%;height:auto;position:absolute;inset:0;overflow:visible;transform:translateZ(-60px)scale(1.03)}.map .depth line{stroke:var(--ink-3);stroke-opacity:.5;stroke-width:1.2px}.map .depth circle{fill:none;stroke:var(--ink-3);stroke-opacity:.35;stroke-width:1px}.map svg.constellation{position:relative;transform:translateZ(0)}.map .tilt .halo{transform:translate(-50%,-50%)translateZ(40px)}.constellation-wrap.is-offscreen .drift,html.is-hidden .constellation-wrap .drift{animation-play-state:paused}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.constellation .edge.flow,.constellation-wrap .halo,.menu-panel{animation:none!important}.constellation .edge.flow{stroke-dasharray:none;stroke-opacity:.45}.constellation-wrap .halo{opacity:.25}.constellation .pulses{display:none}html.js .constellation-wrap .edge,html.js .constellation-wrap .nodes .pop{opacity:1;stroke-dashoffset:0;animation:none!important}html.js .constellation-wrap .edge:not(.flow){stroke-dasharray:none}.map .drift{animation:none;transform:none}.map .tilt{transition:none;transform:none!important}.map .depth{transform:translateZ(-30px)}.btn,.totop,.site-header,.header-email{transition:none}}@media (prefers-reduced-transparency:reduce){.site-header,.menu-panel{-webkit-backdrop-filter:none;backdrop-filter:none}}@media print{.site-header,.totop{display:none!important}body{color:#000;background:#fff}}.ask[data-astro-cid-l2gncxap]{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);text-align:left;border-radius:14px;margin-top:2rem;padding:1.25rem 1.25rem 1rem}.ask-title[data-astro-cid-l2gncxap]{font-family:var(--serif);font-weight:500;font-size:var(--t-0);color:var(--ink);margin:0 0 .5rem}.ask-intro[data-astro-cid-l2gncxap] p{color:var(--ink-2);font-size:var(--t-sm);margin:0 0 .9rem}.ask-form[data-astro-cid-l2gncxap]{grid-template-columns:1fr auto;align-items:stretch;gap:.6rem;display:grid}.ask-form[data-astro-cid-l2gncxap] textarea[data-astro-cid-l2gncxap]{font:inherit;font-size:var(--t-sm);color:var(--ink);background:var(--surface-2);border:1px solid var(--line);resize:vertical;border-radius:10px;min-height:2.8rem;padding:.6rem .75rem}.ask-form[data-astro-cid-l2gncxap] textarea[data-astro-cid-l2gncxap]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ask-btn[data-astro-cid-l2gncxap]{font:inherit;font-size:var(--t-sm);color:var(--on-accent);background:var(--accent);cursor:pointer;border:0;border-radius:10px;padding:.6rem 1.1rem;font-weight:600}.ask-btn[data-astro-cid-l2gncxap]:hover{background:var(--accent-strong)}.ask-btn[data-astro-cid-l2gncxap]:disabled{opacity:.6;cursor:progress}.ask-out[data-astro-cid-l2gncxap]{border-left:3px solid var(--accent);background:var(--surface-2);color:var(--ink);font-size:var(--t-sm);white-space:pre-wrap;border-radius:0 10px 10px 0;margin-top:.9rem;padding:.8rem .95rem;line-height:1.55}.ask-out[data-astro-cid-l2gncxap].refused{border-left-color:var(--line-strong);color:var(--ink-2)}.ask-note[data-astro-cid-l2gncxap]{font-size:var(--t-xs);color:var(--ink-3);margin:.8rem 0 0}.ask-note[data-astro-cid-l2gncxap] a[data-astro-cid-l2gncxap]{color:var(--accent)}.sr-only[data-astro-cid-l2gncxap]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:480px){.ask-form[data-astro-cid-l2gncxap]{grid-template-columns:1fr}}
