*{box-sizing:border-box}body{margin:0;background:#f8f4e9;color:#173f35;font:15px/1.6 system-ui,sans-serif}header{display:flex;justify-content:space-between;padding:22px 5vw;border-bottom:1px solid #d9e1dc}a{color:inherit}main{max-width:980px;padding:60px 24px;margin:auto;position:relative}small{font-size:11px;letter-spacing:.14em;color:#63736c}h1{font:600 clamp(36px,6vw,66px)/1.1 Georgia,serif;letter-spacing:-.025em;max-width:780px;margin:18px 0 24px}main>p{max-width:600px;color:#52665a}.features,.people{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:32px 0}.features>div,article{border:1px solid #d6e0d4;background:#fffdf7;border-radius:18px;padding:24px}.features b,.features span{display:block}.features b{margin-top:12px}.features span{font-size:13px;color:#63736c;margin-top:6px}section{padding-top:40px}h2{font:600 34px Georgia}.initial{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#eaf0df;font:600 18px Georgia}h3{font-size:16px;margin:16px 0 0}article p{margin:4px 0 0;color:#63736c;font-size:13px}footer{margin-top:50px;padding-top:20px;border-top:1px solid #d9e1dc;font-size:12px;color:#63736c}.orbit{position:absolute;right:30px;top:30px;display:flex;gap:18px;font-size:34px;color:#c38c36}.orbit i{font-style:normal;animation:float 5s ease-in-out infinite}.orbit i:nth-child(2){animation-delay:-2s}.orbit i:nth-child(3){animation-delay:-3s}.features>div:hover,article:hover{transform:translateY(-4px)}.features>div,article{transition:transform .2s}@keyframes float{50%{transform:translateY(-10px) rotate(14deg)}}@media(max-width:620px){.features,.people{grid-template-columns:1fr}main{padding-top:70px}.orbit{font-size:22px;top:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}html[data-motion=none] *{animation:none!important;transition:none!important}

.feature-section{padding-top:28px}.feature-section h2{margin:12px 0 4px}.feature-note{font-size:13px;color:#63736c;margin:0}.features{margin-top:24px;align-items:stretch}.feature-card{padding:20px!important;overflow:hidden}.feature-card small{font-size:9px;letter-spacing:.1em}.feature-card h3{font:600 20px/1.25 Georgia,serif;margin:20px 0 10px}.feature-card p{font-size:13px;line-height:1.6}.feature-scene{margin:18px -4px 0;border-radius:14px;background:#eef2e5;padding:10px 6px 14px}.feature-scene svg{width:100%;height:auto;display:block;stroke:#285a48;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.feature-scene text{stroke:none;fill:#285a48;font:600 23px Georgia}.feature-scene .detail{stroke:#8ca18c;stroke-width:2}.feature-scene span{font-size:10px;color:#607665;display:block;text-align:center;margin-top:6px}.feature-scene circle{fill:#cddfa3}.feature-scene .draw{stroke-dasharray:var(--length,700)}.feature-card.in-view .draw{animation:cc-draw 1.1s ease-out both}.feature-card.in-view .later{animation-delay:.3s}.feature-card.in-view .pulse{animation:cc-pulse 3s ease-in-out infinite}.feature-card.in-view .slider{animation:cc-slide 4s ease-in-out infinite}.feature-card.in-view .slider.later{animation-delay:-2s}.link-line{stroke-dasharray:4 5;animation:cc-link 3s linear infinite}@keyframes cc-draw{from{stroke-dashoffset:var(--length,700)}to{stroke-dashoffset:0}}@keyframes cc-pulse{50%{opacity:.4;transform:translateY(-3px)}}@keyframes cc-slide{50%{transform:translateX(18px)}}@keyframes cc-link{to{stroke-dashoffset:-27}}@media(max-width:620px){main{padding:64px 20px 32px}.features{gap:18px}.feature-card{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.feature-card small{grid-column:1/-1}.feature-scene{grid-column:2;grid-row:2/4;margin:14px 0 0}.feature-card h3{grid-column:1;margin-top:24px;font-size:19px}.feature-card p{grid-column:1;margin-top:0;font-size:12px}.feature-scene span{font-size:9px}.feature-section{padding-top:24px}}@media(prefers-reduced-motion:reduce){.feature-scene *{animation:none!important;stroke-dashoffset:0!important}}html[data-motion=calm] .feature-scene *,html[data-motion=none] .feature-scene *{animation:none!important;stroke-dashoffset:0!important}

.about-nav{position:sticky;top:0;z-index:10;max-width:1080px;margin:14px auto 0;border:1px solid #d9e1d4;border-radius:18px;background:#fffdf7e8;backdrop-filter:blur(14px);height:70px;padding:0 24px;align-items:center;gap:24px;box-shadow:0 6px 24px #173f3505}.about-nav a{text-decoration:none}.about-brand{display:flex;align-items:center;gap:12px;color:#173f35;font:600 22px Georgia,serif}.brand-icon{position:relative;display:grid;place-items:center;height:34px;width:34px;border-radius:11px;background:#173f35;color:#fffdf7;font:600 22px Georgia}.brand-icon span{position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;width:17px;height:17px;border-radius:6px;background:#d7e6a8;color:#173f35;font-size:12px}.about-nav nav{display:flex;align-items:center;gap:30px;margin:auto;font-size:13px;color:#627569}.about-nav nav a:hover{color:#173f35}.open-chat{background:#173f35;color:#fffdf7;padding:9px 16px;border-radius:10px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:14px}.about-nav a:focus-visible{outline:2px solid #82a572;outline-offset:4px}#features-title,#contributors{scroll-margin-top:110px}main{padding-top:54px}.orbit{top:35px;right:25px;opacity:.7}@media(max-width:620px){.about-nav{margin:10px 12px 0;height:62px;padding:0 14px;gap:12px;border-radius:16px}.about-brand{font-size:18px;gap:8px}.brand-icon{height:28px;width:28px;font-size:18px}.about-nav nav{display:none}.open-chat{margin-left:auto;padding:8px 10px;font-size:11px;gap:8px}main{padding-top:55px}.orbit{top:14px;font-size:20px}}

.feature-card:nth-child(6n+1) .feature-scene{background:#edf2d9}.feature-card:nth-child(6n+2) .feature-scene{background:#efe5f8}.feature-card:nth-child(6n+3) .feature-scene{background:#e1eef8}.feature-card:nth-child(6n+4) .feature-scene{background:#fde8ce}.feature-card:nth-child(6n+5) .feature-scene{background:#d9eee3}.feature-card:nth-child(6n+6) .feature-scene{background:#f6dfdc}.feature-card:nth-child(6n+2) svg{stroke:#725095}.feature-card:nth-child(6n+3) svg{stroke:#426e94}.feature-card:nth-child(6n+4) svg{stroke:#a37332}.feature-card:nth-child(6n+5) svg{stroke:#3f8365}.feature-card:nth-child(6n+6) svg{stroke:#ae6255}.feature-scene .pulse{fill:#eac272}.feature-scene .slider{fill:#9dbbdd}.feature-card:nth-child(6n+2) .pulse{fill:#bc9ada}.feature-card:nth-child(6n+5) .pulse{fill:#afd0a0}.feature-card:hover .feature-scene{filter:saturate(1.1)}

.feature-card.in-view:nth-child(6n+2) .draw{animation:cc-chat-loop 6s ease-in-out infinite;stroke-dashoffset:0}.feature-card.in-view:nth-child(6n+5) .later{animation:cc-confirm-loop 5s ease-in-out infinite}.feature-card.in-view:nth-child(6n+6) .later{animation:cc-export-loop 4s ease-in-out infinite}.feature-card.in-view:nth-child(6n+4) .detail{animation:cc-reading-loop 5s ease-in-out infinite}@keyframes cc-chat-loop{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes cc-confirm-loop{0%,10%,100%{opacity:.25;stroke-dashoffset:var(--length)}40%,80%{opacity:1;stroke-dashoffset:0}}@keyframes cc-export-loop{0%,100%{transform:translateY(-5px)}50%{transform:translateY(7px)}}@keyframes cc-reading-loop{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.feature-card .feature-scene *{animation:none!important;opacity:1!important;transform:none!important}}html[data-motion=calm] .feature-card .feature-scene *,html[data-motion=none] .feature-card .feature-scene *{animation:none!important;opacity:1!important;transform:none!important}

#contributors{text-align:center}.people{grid-template-columns:repeat(2,minmax(0,1fr));text-align:left;gap:22px}.people article{padding:32px;border-radius:22px}.team-avatar{width:96px;height:96px;object-fit:cover;border-radius:20px;border:2px solid #d6e0d4}.people h3{font:600 28px/1.2 Georgia;margin:22px 0 14px}.people p{font-size:15px;line-height:1.6}.team-link{display:inline-block;font-weight:600;margin-top:18px;text-underline-offset:4px}@media(max-width:620px){.people{grid-template-columns:1fr}.people article{padding:24px}.people h3{font-size:25px}}
#featureTabs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 12px}#featureTabs button,#featureMore{font:500 12px/1.4 system-ui;padding:10px 14px;border:1px solid #cfdbc9;border-radius:12px;background:#fffdf7;color:#315645;min-height:44px;cursor:pointer}#featureTabs [aria-selected=true]{background:#173f35;color:#fffdf7;border-color:#173f35;box-shadow:0 4px 12px #173f3520}#featureMore{background:transparent;margin-bottom:20px}.feature-showcase{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:28px;padding:26px;border:1px solid #d6e0d4;border-radius:24px;background:#fffdf7;min-height:300px}.feature-art{background:linear-gradient(140deg,#edf1e2,#f7f5ee);border-radius:20px;padding:10px 12px 16px;overflow:hidden}.feature-art svg{display:block;width:100%;stroke:#31614c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.feature-art>small{display:block;text-align:center;font-size:10px;letter-spacing:.06em;color:#677969}.feature-copy h3{font:600 30px/1.2 Georgia;margin:14px 0}.feature-copy p{font-size:14px;line-height:1.8;color:#53685b}.feature-copy a{display:inline-block;margin-top:20px;padding:10px 14px;border:1px solid #d4decf;border-radius:12px;text-decoration:none;font-size:12px}.scene-lines{stroke-dasharray:900;animation:scene-draw 1.4s ease-out both}.scene-halo{transform-origin:135px 103px;animation:scene-breathe 6s ease-in-out infinite}.scene-trail{fill:#d2b96d;stroke:none;animation:scene-orbit 7s ease-in-out infinite;transform-origin:135px 103px}.scene-scan{stroke:#96ab86}.scene-scan circle{fill:#d2df9e;animation:scene-travel 4s ease-in-out infinite}.feature-art[data-scene=audio] .scene-lines{animation:scene-wave 2s ease-in-out infinite;transform-origin:center}.feature-art[data-scene=motion] .scene-lines{animation:scene-float 4s ease-in-out infinite}.feature-art[data-scene=model] .scene-lines{animation:scene-glow 3s ease-in-out infinite}.feature-art[data-scene=color] .scene-lines{animation:scene-hue 6s ease-in-out infinite}
@keyframes scene-draw{from{stroke-dashoffset:900;opacity:.4}to{stroke-dashoffset:0;opacity:1}}@keyframes scene-breathe{50%{transform:scale(.95);opacity:.7}}@keyframes scene-orbit{50%{transform:rotate(8deg) translateY(-4px);opacity:.6}}@keyframes scene-travel{50%{transform:translateX(130px)}}@keyframes scene-wave{50%{transform:scaleY(.94);stroke-width:3}}@keyframes scene-float{50%{transform:translateY(-8px) rotate(3deg)}}@keyframes scene-glow{50%{stroke:#9baa62;stroke-width:3}}@keyframes scene-hue{50%{stroke:#ae8c49}}
#featureTabs button:focus-visible,#featureMore:focus-visible,.feature-copy a:focus-visible{outline:2px solid #759168;outline-offset:3px}.feature-showcase:focus-visible{outline:2px solid #759168;outline-offset:3px}
@media(max-width:620px){.feature-showcase{grid-template-columns:1fr;padding:18px;gap:12px}.feature-art{max-width:330px;width:100%;margin:auto}.feature-copy h3{font-size:26px}#featureTabs button{flex:1 1 130px}.feature-copy p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.feature-art *{animation:none!important;transform:none!important;stroke-dashoffset:0!important}}html[data-motion=none] .feature-art *,html[data-motion=calm] .feature-art *{animation:none!important;stroke-dashoffset:0!important}
main>h1{max-width:850px;font-size:clamp(34px,5.6vw,62px);line-height:1.08;text-wrap:balance}.feature-copy{display:flex;flex-direction:column;min-height:260px}.feature-copy>small{font-size:12px;letter-spacing:0}.feature-copy>a{margin-top:auto;align-self:flex-start;min-height:44px}.feature-art{aspect-ratio:1.35;background:#edf1e6}.feature-selector{margin:24px 0}.feature-selector #featureTabs{margin:0 0 12px}.feature-selector #featureMore{margin:0;width:auto}.team-link:hover,footer a:hover{text-decoration-thickness:2px}.team-link:focus-visible,footer a:focus-visible{outline:2px solid #173f35;outline-offset:4px}footer{margin-top:32px;padding-top:24px}footer p{margin:0 0 12px;font-size:11px;line-height:1.6}footer a{text-decoration:underline;text-underline-offset:3px}@media(max-width:620px){.feature-copy{min-height:250px}}
/* Feature drawings are illustrations, not live work. No decorative loops. */
.scene-halo,.scene-scan circle,.feature-art[data-scene=audio] .scene-lines,.feature-art[data-scene=motion] .scene-lines,.feature-art[data-scene=model] .scene-lines,.feature-art[data-scene=color] .scene-lines{animation:none;transform:none}.feature-art .scene-lines{animation:scene-draw .3s ease-out both;stroke-dashoffset:0}.people article:hover{transform:translateY(-1px)}#featureTabs button{transition:background-color .16s,border-color .16s,color .16s}#featureTabs button:hover{border-color:#759168}footer p{font-size:12px}html[data-motion=calm] .feature-art *,html[data-motion=none] .feature-art *{animation:none!important;stroke-dashoffset:0!important;transform:none!important}
/* Keep names, affiliations and links aligned when a name wraps on desktop. */
.people article{display:flex;flex-direction:column;align-items:flex-start}.people .team-avatar{flex:none}.people .team-link{margin-top:auto;padding-top:18px}.people p{margin-bottom:0}@media(min-width:621px){.people h3{min-height:2.4em}}

/* Expanding the catalog preserves the first row and its selected content. */
@media(prefers-reduced-motion:no-preference){html:not([data-motion=calm]):not([data-motion=none]) .feature-added{animation:feature-reveal .14s ease-out both}}
@keyframes feature-reveal{from{opacity:.3}to{opacity:1}}
.people article{transition:transform .16s,border-color .16s}.people article:hover{border-color:#8aa18b}

.feature-copy-arrive{animation:feature-copy-arrive .16s ease-out}@keyframes feature-copy-arrive{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.feature-copy-arrive{animation:none}}html[data-motion=none] .feature-copy-arrive,html[data-motion=calm] .feature-copy-arrive{animation:none}
.feature-copy{min-height:300px}@media(max-width:620px){.feature-copy{min-height:310px}}

.feature-copy-leave{animation:feature-copy-leave .08s ease-in forwards}@keyframes feature-copy-leave{from{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.feature-copy-leave{animation:none}}html[data-motion=none] .feature-copy-leave,html[data-motion=calm] .feature-copy-leave{animation:none}
footer a{transition:opacity 140ms ease-out;opacity:1}
footer a:hover{opacity:.9}
@media(prefers-reduced-motion:reduce){footer a{transition:none}}
html[data-motion=none] footer a,html[data-motion=calm] footer a{transition:none}

html[data-theme=dark] body{background:#101c17;color:#e8eee6}
html[data-theme=dark] main>p,html[data-theme=dark] .feature-copy p{color:#b9cabd}
html[data-theme=dark] h1,html[data-theme=dark] h2,html[data-theme=dark] .feature-card h3,html[data-theme=dark] .people h3{color:#eef4ea}
html[data-theme=dark] .features>div,html[data-theme=dark] article,html[data-theme=dark] .feature-showcase{background:#1f302c;border-color:#40594c}
html[data-theme=dark] .features span,html[data-theme=dark] article p,html[data-theme=dark] .feature-note,html[data-theme=dark] small,html[data-theme=dark] footer{color:#9db3a4}
html[data-theme=dark] .about-nav{background:#1f302ce8;border-color:#40594c}
html[data-theme=dark] .about-brand{color:#eef4ea}
html[data-theme=dark] #featureTabs button,html[data-theme=dark] #featureMore{background:#26392f;border-color:#40594c;color:#c2d2bf}
html[data-theme=dark] #featureTabs [aria-selected=true]{background:#d7e6a8;color:#173f35;border-color:#d7e6a8}
html[data-theme=dark] .feature-art{background:linear-gradient(140deg,#26392f,#1f302c)}
html[data-theme=dark] .feature-art svg{stroke:#9fc7ab}
html[data-theme=dark] .feature-art>small{color:#9db3a4}
html[data-theme=dark] .feature-copy a{border-color:#40594c;color:#c2d2bf}
html[data-theme=dark] .team-avatar{border-color:#40594c}
html[data-theme=dark] footer{border-top-color:#40594c}

.feature-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;margin:24px 0 40px}.feature-overview article{border-top:1px solid #d4dece;padding:22px 0}.feature-overview h3{font-size:20px;margin:0 0 10px;color:#173f35}.feature-overview p{font-size:14px;line-height:1.65;margin:0;color:#5c6f60}@media(max-width:650px){.feature-overview{grid-template-columns:1fr;gap:0}.feature-overview article{padding:20px 0}}
