@charset "UTF-8";
:root{--ink:#211331;--muted:#655b70;--purple:#6021a6;--purple-dark:#491480;--line:#e7e2ec;--pale:#f6f3fa;--green:#c4ed87;--radius:20px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:16px;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #7625b8;outline-offset:5px}img{max-width:100%;height:auto}button,input{font:inherit}.container{width:min(1180px,calc(100% - 80px));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:20px;background:var(--ink);color:#fff;z-index:10;padding:12px}.skip-link:focus{top:10px}.header{border-bottom:1px solid var(--line);background:#fff}.navigation{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:92px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:750;letter-spacing:-.6px}.brand-symbol{display:grid;place-content:center;width:43px;height:43px;border-radius:12px;background:var(--purple);color:white;font-size:22px;letter-spacing:-2px;position:relative}.brand-symbol span{color:var(--green);position:absolute;right:5px;bottom:7px}.navigation nav{display:flex;gap:32px;align-items:center;font-size:14px;font-weight:600}.navigation nav a:hover,.text-link:hover{color:var(--purple)}.nav-github{display:flex;gap:9px;align-items:center;border-left:1px solid var(--line);padding-left:30px}.nav-github svg{width:19px;height:19px;fill:currentColor}.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:26px;padding-top:68px;padding-bottom:78px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:750;letter-spacing:1.5px;color:var(--purple);line-height:1.5;margin:0 0 23px}.tiny-square{width:8px;height:8px;background:var(--purple);border-radius:2px}h1{font-size:clamp(46px,4.6vw,65px);line-height:1.09;letter-spacing:-2.8px;margin:0 0 26px;font-weight:750}h1 span{color:var(--purple)}.hero-description{font-size:18px;line-height:1.7;max-width:530px;color:var(--muted);margin:0 0 30px}.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:13px 24px;border-radius:8px;font-size:15px;font-weight:650;transition:background .15s,transform .15s}.primary{background:var(--purple);color:white}.primary:hover{background:var(--purple-dark);transform:translateY(-1px)}.text-link{font-size:15px;font-weight:650;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#c6b5d9}.hero-footnote{display:flex;gap:16px;flex-wrap:wrap;margin-top:38px;color:var(--muted);font-size:13px}.hero-footnote span+span{border-left:1px solid #d6cedf;padding-left:16px}.hero-art{text-align:center;position:relative}.hero-art img{display:block;width:100%;max-width:425px;margin:auto}.art-caption{display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;color:#83758d;margin-top:13px}.caption-line{height:1px;width:24px;background:#c9bdd4}.projects{background:var(--pale);padding:75px 0 78px;border-block:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:38px}.section-heading .eyebrow{margin-bottom:12px}h2{font-size:clamp(30px,3vw,42px);line-height:1.17;letter-spacing:-1.3px;margin:0;font-weight:720}.section-heading>p{color:var(--muted);font-size:15px;line-height:1.6;margin:0}.project{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:43px;margin-top:28px;scroll-margin-top:24px}.project-copy{align-self:center}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px;flex-wrap:wrap}.project-number{font-size:12px;font-weight:650;letter-spacing:1px;color:var(--muted)}.badge{font-size:12px;font-weight:650;border:1px solid #d5e8bb;background:#f1f7e9;color:#405e25;border-radius:30px;padding:5px 10px;white-space:nowrap}.badge-preview{background:#fff5e9;color:#8a5623;border-color:#f0dbc2}h3{margin:0}.project h3{font-size:52px;font-weight:740;letter-spacing:-2px;line-height:1.12}.title-dot{color:var(--purple)}.project-tagline{font-size:18px;font-weight:600;margin:12px 0 18px;line-height:1.4}.project-copy>p:not(.project-tagline):not(.project-note){font-size:16px;line-height:1.7;color:var(--muted);margin:0 0 22px}.features{list-style:none;padding:0;margin:24px 0 28px}.features li{padding-left:23px;position:relative;font-size:14px;line-height:1.6;margin:10px 0}.features li:before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border:2px solid var(--purple);border-radius:50%}.project-note{font-size:12px;line-height:1.6;color:var(--muted);margin-top:17px}.product-visual{align-self:stretch;border-radius:13px;padding:28px;display:flex;flex-direction:column;min-width:0}.coded-visual{background:#241238;color:white}.visual-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.visual-name{font-size:23px;font-weight:700;letter-spacing:-1px}.visual-name span{color:var(--green)}.visual-top>span:last-child{font-size:10px;letter-spacing:.9px;line-height:1.4;color:#c9b8d8;text-align:right;max-width:120px}.profile-symbol{width:65px;height:65px;display:grid;place-content:center;border:1px solid #715686;border-radius:17px;color:var(--green);font:28px Consolas,monospace;margin-top:35px;background:#352047}.visual-title{font-size:29px;line-height:1.2;letter-spacing:-.7px;margin:23px 0 27px;font-weight:600}.profile-stack{display:grid;gap:8px;margin-bottom:28px}.profile-stack>div{display:flex;align-items:center;gap:16px;border:1px solid #594067;border-radius:7px;padding:13px;background:#30203f;font-size:14px}.stack-icon{font:12px Consolas,monospace;color:#bea2d3}.visual-bottom{margin-top:auto;display:flex;gap:20px;border-top:1px solid #594067;padding-top:20px;font-size:12px;color:#c9b8d8}.haven-visual{background:#edf2e8;border:1px solid #e1e8da}.haven-visual .visual-top{color:#314c26}.haven-visual .visual-name span{color:var(--purple)}.haven-visual .visual-top>span:last-child{color:#67765d}.flow-box{background:#fff;border:1px solid #dbe1d5;border-radius:10px;padding:20px;margin-top:36px}.flow-label{font-size:10px;letter-spacing:.9px;font-weight:700;color:#6c7167}.flow-box p{font-size:18px;line-height:1.8;margin:15px 0 0;color:#3e4637}.flow-box mark{color:#632da2;background:#f1e9fa;padding:3px 4px;border-radius:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.flow-bridge{display:flex;align-items:center;justify-content:center;flex-direction:column}.bridge-line{display:block;height:19px;width:1px;background:#bfcbb5}.privacy-pill{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;background:#dce8ce;color:#3a502a;border-radius:30px;padding:8px 12px}.privacy-pill svg{width:14px;height:14px}.protected{margin-top:0}.protected mark{color:#305121;background:#e5efd9;font-family:Consolas,monospace;font-size:16px}.haven-visual .visual-bottom{border-color:#d1dbc7;color:#637258;margin-top:30px;line-height:1.5}.release-note{border-left:3px solid #c7985e;background:#fcf8f2;padding:12px 15px;margin-top:23px;font-size:12px;line-height:1.7;color:#67533c}.release-note strong{font-weight:650}.release-note p{margin:5px 0 0}.about{display:grid;grid-template-columns:1.05fr 1fr;gap:85px;padding-block:88px}.about-intro>p:not(.eyebrow){font-size:16px;line-height:1.8;color:var(--muted);margin:24px 0}.about-principles>div{display:grid;grid-template-columns:33px 1fr;gap:4px 15px;padding:22px 0;border-bottom:1px solid var(--line)}.about-principles>div:first-child{padding-top:0}.about-principles span{grid-row:span 2;font:13px Consolas,monospace;color:#9b88ad;padding-top:4px}.about-principles h3{font-size:18px;font-weight:650}.about-principles p{font-size:14px;line-height:1.7;color:var(--muted);margin:6px 0 0}.questions{border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;padding-block:60px 88px}.questions h2{font-size:31px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;font-size:16px;line-height:1.5;font-weight:600;padding:20px 28px 20px 0;list-style:none;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:"+";position:absolute;right:2px;top:17px;font-size:24px;color:var(--purple);font-weight:400}details[open] summary:after{content:"−"}.faq-list p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 22px}.faq-list p a{text-decoration:underline;color:var(--purple);text-underline-offset:3px}.footer{background:#211331;color:white;padding:38px 0}.footer-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px}.footer-brand{font-size:24px;font-weight:700;letter-spacing:-.6px}.footer-brand span{color:var(--green)}.footer p{color:#b9a9c6;font-size:13px;margin:10px 0 0;line-height:1.5}.footer-links{display:flex;gap:26px;font-size:14px}.footer-links a:hover{color:var(--green)}.copyright{grid-column:1/-1;border-top:1px solid #483452;padding-top:20px}
@media(min-width:1400px){.hero{padding-top:78px;padding-bottom:88px}.hero-art img{max-width:450px}}
@media(max-width:1000px){.container{width:calc(100% - 48px)}.hero{gap:15px}h1{font-size:49px}.hero-description{font-size:16px}.navigation nav{gap:20px}.project{padding:28px;gap:28px}.project h3{font-size:45px}.product-visual{padding:22px}.project-tagline{font-size:17px}.about{gap:45px}.questions{gap:40px}.visual-top{flex-wrap:wrap}.visual-top>span:last-child{text-align:left}.actions{gap:18px}.art-caption{font-size:11px}}
@media(max-width:700px){html{scroll-padding-top:20px}.container{width:calc(100% - 40px)}.navigation{min-height:80px;flex-wrap:wrap;padding-block:17px;gap:16px}.brand{font-size:20px}.navigation nav{font-size:12px;gap:18px;width:100%;justify-content:space-between}.nav-github{padding-left:14px}.hero{grid-template-columns:1fr;padding-top:45px;padding-bottom:45px;gap:26px}.eyebrow{font-size:11px;letter-spacing:1.3px;margin-bottom:19px}h1{font-size:clamp(39px,9vw,56px);letter-spacing:-1.8px}.hero-description{font-size:17px}.hero-art img{max-width:340px}.hero-footnote{margin-top:27px;font-size:12px;gap:12px}.hero-footnote span+span{padding-left:12px}.art-caption{font-size:12px}.projects{padding-block:45px}.section-heading{align-items:start;flex-direction:column;gap:16px;margin-bottom:25px}.section-heading>p br{display:none}.section-heading>p{font-size:14px}.project{grid-template-columns:1fr;padding:25px 20px;gap:30px;margin-top:20px;border-radius:15px}.project-meta{gap:9px}.project-number{font-size:10px}.project h3{font-size:46px}.project-tagline{font-size:18px}.project-copy>p:not(.project-tagline):not(.project-note){font-size:16px}.features li{font-size:14px}.button{padding:13px 19px}.product-visual{min-height:420px}.visual-top{flex-wrap:nowrap}.visual-top>span:last-child{text-align:right}.visual-title{font-size:30px}.profile-symbol{margin-top:26px}.flow-box p{font-size:17px}.release-note{font-size:13px}.about{grid-template-columns:1fr;padding-block:50px;gap:34px}.about h2{font-size:32px}.about-principles p{font-size:15px}.questions{grid-template-columns:1fr;padding-block:38px 55px;gap:27px}.questions .eyebrow{margin-bottom:12px}.faq-list p{font-size:15px}.footer-inner{grid-template-columns:1fr}.footer-links{gap:24px}.copyright{grid-column:auto}.section-heading h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* The brand is a wordmark; the introduction uses the full content width. */
.header{background:var(--purple);border-bottom-color:var(--purple)}
.header .brand,.header .brand-dot,.header nav a{color:white}
.header nav a:hover{color:white;text-decoration:underline;text-underline-offset:5px}
.header .nav-github{border-left-color:rgba(255,255,255,.3)}
.header a:focus-visible{outline-color:white}
.github-symbol{color:white}
.github-symbol svg{width:33px;height:33px;fill:currentColor}
.coded-visual .visual-title{margin-bottom:12px}
.search-description{font-size:14px;line-height:1.6;color:#c9b8d8;margin:0 0 24px}
.questions-band{background:var(--purple);color:white}
.questions-band .questions{border-top:0}
.questions-band .eyebrow,.questions-band summary:after,.questions-band .faq-list p a{color:white}
.questions-band .faq-list details{border-color:rgba(255,255,255,.3)}
.questions-band .faq-list p{color:#eee2fa}
.questions-band a:focus-visible,.questions-band summary:focus-visible{outline-color:white}
.haven-visual{background:#241238;border-color:#241238;color:white}
.haven-visual .visual-top{color:white}
.haven-visual .visual-name span{color:var(--green)}
.haven-visual .visual-top>span:last-child{color:#c9b8d8}
.haven-visual .flow-box{background:#30203f;border-color:#594067}
.haven-visual .flow-label{color:#c9b8d8}
.haven-visual .flow-box p{color:#f4edf9}
.haven-visual .flow-box mark{background:#523269;color:#ead9fa}
.haven-visual .protected mark{background:#523269;color:#ead9fa}
.haven-visual .bridge-line{background:#715686}
.haven-visual .privacy-pill{background:#49305c;color:#ead9fa}
.haven-visual .visual-bottom{border-color:#594067;color:#c9b8d8}
.brand{display:inline-block;font-size:27px;font-weight:740;letter-spacing:-1px;line-height:1.15;white-space:nowrap}
.brand-dot{color:var(--purple)}
.hero{display:block;padding-block:80px}
.hero-copy{width:100%}
.hero h1{font-size:clamp(42px,5vw,70px);letter-spacing:-2.5px;line-height:1.13}
.hero-description{max-width:none;font-size:19px;line-height:1.7}
.footer-brand span{color:#be85f3}
@media(max-width:700px){.brand{font-size:25px}.hero{padding-block:48px}.hero h1{font-size:clamp(39px,9vw,56px);letter-spacing:-1.8px}.hero-description{font-size:17px}}

/* Compact navigation: a disclosure on tablets and phones, with a no-JS fallback. */
.menu-toggle{display:none;color:white;background:transparent;border:1px solid rgba(255,255,255,.45);border-radius:8px;width:46px;height:46px;padding:10px;cursor:pointer}
.menu-toggle svg{display:block;width:24px;height:24px}
.menu-toggle:focus-visible{outline:3px solid white;outline-offset:4px}
.menu-line{transform-origin:center;transition:transform .15s,opacity .15s}
.menu-toggle[aria-expanded="true"] .menu-line-top{transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-line-middle{opacity:0}
.menu-toggle[aria-expanded="true"] .menu-line-bottom{transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1024px){
  .menu-ready .navigation{flex-wrap:wrap;gap:0;padding-block:16px;min-height:80px}
  .menu-ready .menu-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
  .menu-ready #main-navigation{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;margin-top:16px;padding-top:10px;border-top:1px solid rgba(255,255,255,.3)}
  .menu-ready #main-navigation.is-open{display:flex}
  .menu-ready #main-navigation a{font-size:16px;line-height:1.5;padding:12px 0;min-height:48px}
  .menu-ready #main-navigation .nav-github{border-left:0;padding-left:0}
}
.menu-toggle[hidden]{display:none}
