:root{--paper:#f7f7f0;--white:#fff;--ink:#173e35;--muted:#626c65;--line:#d9dfd5;--sage:#e7ecdf;--accent:#d9e8b3;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}button{color:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500;line-height:1.1;letter-spacing:-.045em}h1{font-size:clamp(54px,6.6vw,92px)}h2{font-size:clamp(38px,4.3vw,60px)}h3{font-size:25px;letter-spacing:-.025em}em{font-family:var(--serif);font-weight:400}p{color:var(--muted)}.wrap{width:min(1216px,calc(100% - 96px));margin-inline:auto}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--ink);line-height:1.5}.site-header{position:sticky;top:0;z-index:10;background:rgba(247,247,240,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.nav-wrap{width:min(1312px,calc(100% - 64px));margin:auto;min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:31px;font-weight:600;letter-spacing:-1.5px;display:inline-flex;align-items:center;gap:10px;line-height:1}.brand-symbol{font-size:39px;font-weight:400}.brand-dot{margin-left:-9px}nav{display:flex;align-items:center;gap:28px}nav a{font-size:13px;font-weight:500;white-space:nowrap;position:relative}nav a:hover,nav a[aria-current]{color:#557343}nav a[aria-current]:after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--ink)}.nav-contact{padding:11px 18px;border:1px solid var(--ink);border-radius:4px;margin-left:8px}.nav-contact span{margin-left:12px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;padding-block:58px 62px}.hero-copy{padding-block:18px}.hero-copy h1{margin-top:27px;font-size:clamp(56px,6.1vw,86px);line-height:1.04}.hero-copy h1 em{white-space:nowrap}.status-dot{display:inline-block;width:6px;height:6px;background:#6a8659;border-radius:50%;margin-right:7px;vertical-align:middle}.hero-description{font-size:17px;line-height:1.8;max-width:440px;margin-top:28px}.button-row{display:flex;align-items:center;gap:28px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:14px 22px;font-size:13px;font-weight:500;line-height:1.7;transition:background .2s,transform .2s}.button:hover{background:#2d594a;transform:translateY(-2px)}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:4px;line-height:1.5}.text-link:hover{color:#557343}.hero-footnote{display:flex;gap:15px;align-items:center;margin-top:66px}.hero-footnote p{font-size:11px;line-height:1.65}.tiny-star{font-size:32px;font-weight:400}.hero-art{position:relative;overflow:hidden;border-radius:110px 6px 6px 6px;align-self:stretch;min-height:550px;background:#193d35}.hero-art>img{position:absolute;inset:0;width:100%;height:100%}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(6,31,24,.75))}.hero-art figcaption{position:absolute;bottom:30px;left:30px;right:30px;z-index:1;color:#fff;display:flex;justify-content:space-between;align-items:end;gap:15px}.hero-art figcaption>span:first-child{font-size:8px;letter-spacing:.16em}.hero-art figcaption>span:last-child{font-family:var(--serif);font-size:25px;line-height:1.05}.art-index{position:absolute;top:25px;right:25px;color:#fff;font-size:9px;letter-spacing:.14em;z-index:1}.interest-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.interest-strip>.wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:22px}.interest-strip span{font-size:10px;letter-spacing:.14em;font-weight:500}.interest-strip i{font-style:normal;font-size:17px;color:#81936a}.section{padding-block:100px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:40px}.section-heading .eyebrow{margin-bottom:15px}.section-heading>.text-link{margin-bottom:4px;white-space:nowrap}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.work-card{min-width:0}.card-image{display:block;position:relative;overflow:hidden;border-radius:5px}.card-image .app-visual{transition:transform .4s}.card-image:hover .app-visual{transform:scale(1.035)}.round-arrow{position:absolute;bottom:17px;right:17px;background:var(--paper);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:20px}.app-visual{height:250px;position:relative;overflow:hidden;background:var(--sage);isolation:isolate}.mini-label{position:absolute;top:22px;left:22px;font-size:8px;letter-spacing:.15em;font-weight:600}.visual-note{position:absolute;left:22px;bottom:20px;font-size:10px}.chart-art{background:#e8eddf}.chart-bars{height:140px;position:absolute;bottom:48px;left:48px;right:48px;display:flex;align-items:end;gap:10px;border-bottom:1px solid #b3c0a4}.chart-bars i{height:var(--h);flex:1;border-radius:3px 3px 0 0;background:#73916c}.chart-bars i:nth-child(2n){background:#b8c99c}.chart-bars i:last-child{background:var(--ink)}.orbit-art{background:#203d36;color:#dde6c6}.orbit-art .mini-label,.orbit-art .visual-note{z-index:2}.orbit{position:absolute;border:1px solid #67847688;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-25deg);width:140px;height:80px}.orbit.two{width:240px;height:140px}.orbit.three{width:340px;height:200px}.sun{position:absolute;width:40px;height:40px;left:calc(50% - 20px);top:calc(50% - 20px);border-radius:50%;background:#dfd3a8;box-shadow:0 0 36px #d9daa120}.planet{width:15px;height:15px;border-radius:50%;background:#a8c6bb;position:absolute;left:72%;top:25%;box-shadow:0 0 0 5px #c5e0cf0d}.math-art{background:#eee9e1}.math-tiles{position:absolute;inset:70px 24px 60px;display:flex;align-items:center;justify-content:center;gap:7px;transform:rotate(-7deg)}.math-tiles span{background:#f9f7f0;padding:8px;font-size:30px;border:1px solid #ded8ca;box-shadow:0 8px 0 #ded8ca;border-radius:5px}.math-tiles span:nth-child(2n){background:transparent;border:0;box-shadow:none}.math-tiles span:last-child{background:#d7e4bb;transform:rotate(13deg) translateY(-10px)}.card-copy{padding:22px 0 0}.card-copy .eyebrow{font-size:8px;letter-spacing:.13em}.card-copy h3{margin:10px 0}.card-copy h3 a:hover{text-decoration:underline;text-underline-offset:5px}.card-copy p{font-size:13px;line-height:1.8;max-width:340px}.section-note{font-size:12px;margin-top:36px;padding-top:22px;border-top:1px solid var(--line)}.about-section{background:#edf0e7;padding-block:88px;scroll-margin-top:15px}.about-grid{display:grid;grid-template-columns:.86fr 1.15fr;gap:100px;align-items:center}.portrait{position:relative;max-width:380px}.portrait img{height:430px;width:100%;object-position:center 34%;border-radius:5px 5px 90px 5px}.portrait figcaption{font-size:10px;padding-top:13px;letter-spacing:.03em;color:var(--muted)}.about-copy .eyebrow{margin-bottom:20px}.about-copy h2{margin-bottom:26px}.about-copy p:not(.eyebrow){font-size:14px;margin-top:18px;line-height:1.9}.about-tags{display:flex;flex-wrap:wrap;gap:8px;margin-block:25px}.about-tags span{border:1px solid #cbd4c3;border-radius:30px;padding:5px 11px;font-size:10px}.about-copy>.text-link{margin-top:8px}.interest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.interest-grid article{border-top:1px solid var(--ink);padding-top:22px}.interest-number{font-size:9px;letter-spacing:.1em;color:#70816a}.interest-grid h3{margin:24px 0 14px}.interest-grid p{font-size:14px;line-height:1.9}.gratitude{border:1px solid var(--line);padding:45px 60px;display:grid;grid-template-columns:100px 1fr;gap:28px;border-radius:5px;background:#f0f1e8}.gratitude-symbol{font-size:76px;line-height:1}.gratitude h2{font-size:42px;margin-top:12px}.gratitude-intro{font-size:14px;margin-block:18px}details summary{list-style:none;display:flex;justify-content:space-between;gap:30px;align-items:center;font-size:13px;font-weight:500;padding:16px 0;border-top:1px solid var(--line)}details summary::-webkit-details-marker{display:none}details summary span{font-size:22px;font-weight:400}details[open] summary span{transform:rotate(45deg)}details>p{font-size:14px;line-height:1.9;padding-block:10px 5px}.contact-section{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:start}.contact-section h2{margin-block:20px 28px}.contact-section>div>p:not(.eyebrow){font-size:14px}.contact-socials{display:flex;gap:25px;margin-top:32px}.contact-form label{display:block;font-size:12px;font-weight:500;margin:0 0 8px}.contact-form input,.contact-form textarea{width:100%;display:block;border:1px solid #cdd5c7;border-radius:4px;background:#fcfcf8;padding:11px 13px;margin-bottom:20px;color:var(--ink);font-size:15px}.contact-form textarea{resize:vertical;min-height:130px}.contact-form .g-recaptcha{margin-block:22px;min-height:78px}.contact-form button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:14px 22px;border-radius:4px;width:100%;font-size:13px}.contact-form button:hover{background:#2d594a}.form-note{font-size:9px;margin-top:12px}.form-note a{text-decoration:underline}.site-footer{background:var(--ink);color:var(--paper);padding-block:45px 22px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:40px}.footer-top p{color:#c0cbb9;font-family:var(--serif);font-size:24px}.socials{display:flex;gap:24px;font-size:11px}.footer-bottom{border-top:1px solid #ffffff25;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#bcc9bb}.site-footer a:hover{color:#d8e8b3}.page-intro{padding-block:90px 70px}.page-intro h1{margin-top:23px;max-width:900px}.page-intro>p:last-child{max-width:570px;margin-top:26px;font-size:17px}.directory-tools{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.filter-buttons{display:flex;gap:7px;flex-wrap:wrap}.filter{border:1px solid transparent;background:transparent;font-size:12px;border-radius:40px;padding:8px 14px}.filter:hover{background:var(--sage)}.filter[aria-pressed=true]{color:var(--paper);background:var(--ink)}.search-label input{font-size:12px;border:1px solid var(--line);background:transparent;padding:9px 14px;border-radius:4px;width:225px}.result-count{font-size:11px;margin:20px 0 30px}.app-grid{row-gap:45px;padding-bottom:65px}.app-directory{min-height:400px}.memory-art{background:#dce5da;display:grid;place-items:center}.memory-tiles{display:grid;grid-template-columns:repeat(3,55px);gap:9px;transform:rotate(-8deg)}.memory-tiles span{height:65px;display:grid;place-items:center;background:#b4c6ad;border:1px solid #9ab192;border-radius:6px;color:#315b42;font-size:30px}.memory-tiles span:nth-child(3n + 1){background:#f0f1dd}.elements-art{display:flex;align-items:center;justify-content:center;gap:9px;background:#e7e8d8}.element{border:1px solid #9eaf8b;padding:8px;width:77px;display:flex;flex-direction:column;background:#eff1e5;transform:rotate(-5deg)}.element:nth-child(2){transform:translateY(-15px) rotate(3deg);background:#bccca9}.element small{font-size:9px}.element b{font-family:var(--serif);font-size:40px;line-height:1.25;font-weight:400}.element span{font-size:8px}.particles-art{display:grid;place-items:center;background:#dce6e3;color:#5c8571}.particles-art svg{width:100%}.type-art{display:grid;place-items:center;background:#ebe7dd}.type-art>span{font-family:var(--serif);font-size:95px;transform:rotate(-8deg)}.work-card:nth-child(3n + 2) .type-art{background:#dce6d9}.developer-note{margin-bottom:75px}.developer-note summary{padding-block:22px}.python-demos{font-size:14px;padding:20px 0}.python-demos>div{margin-top:30px}.python-demos label{display:block}.python-demos input{width:120px;margin-right:10px;padding:12px;border:1px solid var(--line);border-radius:4px}.python-demos p{margin-block:15px}.featured-project{display:grid;grid-template-columns:1fr 1fr;background:#eaeee3;align-items:center;border-radius:6px;overflow:hidden}.featured-project .app-visual{height:400px}.featured-project .chart-bars{height:240px;left:70px;right:70px;bottom:70px;gap:16px}.featured-project .mini-label,.featured-project .visual-note{left:35px}.featured-project-copy{padding:42px}.featured-project-copy h2{font-size:45px;margin-top:18px}.featured-project-copy p:not(.eyebrow){font-size:14px;margin-block:22px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.video-thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:5px;background:#183e35}.video-thumb img{width:100%;height:100%;transition:transform .3s;object-fit:cover}.video-thumb:hover img{transform:scale(1.04)}.video-thumb:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#10291e99)}.play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;background:var(--paper);border-radius:50%;height:52px;width:52px;display:grid;place-items:center;padding-left:3px;font-size:15px}.video-action{position:absolute;bottom:20px;left:22px;color:#fff;z-index:1;font-size:11px}.video-card .card-copy p{max-width:100%}.closing-banner{margin-bottom:90px;background:var(--ink);color:var(--paper);padding:44px 48px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-radius:5px}.closing-banner .eyebrow{color:#d2dfc1}.closing-banner h2{font-size:45px;margin-top:12px}.closing-banner p:not(.eyebrow){color:#bacbb7;font-size:14px;margin-top:15px}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper);white-space:nowrap}.button-light:hover{background:var(--accent)}.resources{margin-bottom:80px}.resource-row{display:grid;grid-template-columns:75px 1fr 70px;gap:25px;border-top:1px solid var(--line);padding:32px 12px;align-items:center;transition:background .2s}.resource-row:last-child{border-bottom:1px solid var(--line)}.resource-row:hover{background:#edf0e5}.resource-number{font-family:var(--serif);font-size:30px;color:#7f8e71}.resource-row h2{font-size:30px;margin-top:10px}.resource-row p{font-size:13px;margin-top:10px}.resource-arrow{font-size:32px;text-align:right}.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}.skip{position:fixed;left:20px;top:-100px;z-index:20;padding:10px 20px;background:var(--ink);color:#fff}.skip:focus{top:12px}:focus-visible{outline:3px solid #718b46;outline-offset:5px}[hidden]{display:none!important}#no-results{padding:30px 0 80px}
@media(min-width:1500px){.hero{padding-block:72px}.hero-art{min-height:610px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.nav-wrap{width:calc(100% - 48px)}nav{gap:20px}.hero{gap:35px}.hero-art{min-height:530px}.hero-copy h1{font-size:65px}.hero-description{font-size:15px}.button-row{gap:20px;flex-wrap:wrap}.about-grid{gap:60px}.contact-section{gap:50px}.interest-strip span{font-size:8px}.app-visual{height:220px}.chart-bars{left:30px;right:30px}.hero-art figcaption{left:22px;right:22px}.hero-art figcaption>span:last-child{font-size:22px}}
@media(max-width:860px){.nav-wrap{min-height:76px}.brand{font-size:28px}.brand-symbol{font-size:34px}.menu-toggle{display:flex;align-items:center;gap:16px;border:1px solid var(--line);background:transparent;padding:8px 13px;border-radius:4px;font-size:12px}nav{display:none;position:absolute;top:76px;left:0;right:0;padding:25px 32px;background:var(--paper);border-bottom:1px solid var(--line);align-items:stretch;flex-direction:column;gap:0;box-shadow:0 20px 30px #173e350c}nav.is-open{display:flex}nav a{padding:12px;font-size:15px}nav a[aria-current]:after{display:none}.nav-contact{margin:14px 0 0}.hero{gap:30px;grid-template-columns:1.1fr 1fr}.hero-copy h1{font-size:53px}.hero-copy .eyebrow{font-size:8px}.hero-description{font-size:14px;margin-top:22px}.hero-art{min-height:490px;border-top-left-radius:80px}.hero-art figcaption{display:block}.hero-art figcaption>span:first-child{display:block;margin-bottom:10px}.hero-footnote{margin-top:35px}.button-row{gap:18px;margin-top:25px}.button{padding:12px 17px}.interest-strip>.wrap{flex-wrap:wrap;justify-content:center;gap:12px 20px}.interest-strip span{font-size:9px}.interest-strip i:last-of-type{display:none}.section{padding-block:75px}.card-grid{gap:22px}.card-grid:not(.app-grid){grid-template-columns:1fr 1fr}.app-grid{grid-template-columns:1fr 1fr}.about-grid{gap:35px}.portrait img{height:390px}.about-copy h2{font-size:39px}.about-copy p:not(.eyebrow){font-size:13px}.interest-grid{gap:25px}.interest-grid h3{font-size:22px}.interest-grid p{font-size:13px}.gratitude{padding:35px;grid-template-columns:55px 1fr}.gratitude-symbol{font-size:50px}.gratitude h2{font-size:36px}.contact-section{gap:35px;grid-template-columns:1fr 1fr}.contact-section h2{font-size:39px}.directory-tools{flex-direction:column;align-items:start}.search-label,.search-label input{width:100%}.featured-project-copy{padding:30px}.featured-project-copy h2{font-size:35px}.featured-project .chart-bars{left:35px;right:35px}.footer-top{flex-wrap:wrap}.footer-top p{font-size:22px}.footer-bottom span:nth-child(2){display:none}.closing-banner{padding:35px}.closing-banner h2{font-size:38px}}
@media(max-width:600px){html{scroll-padding-top:95px}.wrap{width:calc(100% - 40px)}.nav-wrap{width:calc(100% - 40px);min-height:72px}nav{top:72px;padding-inline:20px}.hero{grid-template-columns:1fr;padding-block:38px 35px;gap:32px}.hero-copy{padding:0}.hero-copy h1{font-size:57px;margin-top:20px}.hero-copy .eyebrow{font-size:8px}.hero-description{font-size:15px;max-width:100%}.button-row{gap:25px}.hero-footnote{display:none}.hero-art{height:370px;min-height:0;border-top-left-radius:80px}.hero-art>img{object-position:center 48%}.hero-art figcaption{display:flex;left:23px;right:23px;bottom:23px}.hero-art figcaption>span:first-child{margin:0;font-size:7px}.hero-art figcaption>span:last-child{font-size:24px}.interest-strip>.wrap{padding-block:17px;gap:8px 14px}.interest-strip span{font-size:7px;letter-spacing:.1em}.interest-strip i{font-size:12px}.interest-strip i:nth-of-type(2){display:none}.interest-strip span{width:42%;text-align:center}.section{padding-block:58px}.section-heading{align-items:start;flex-direction:column;gap:20px;margin-bottom:28px}.section-heading h2{font-size:39px}.section-heading .eyebrow{margin-bottom:13px}.card-grid,.card-grid:not(.app-grid),.app-grid{grid-template-columns:1fr;gap:32px}.card-grid:not(.app-grid)>.work-card:last-child{display:block}.app-visual{height:250px}.chart-bars{left:48px;right:48px}.card-copy{padding-top:18px}.card-copy h3{font-size:26px}.card-copy p{font-size:14px;max-width:100%}.section-note{font-size:11px;margin-top:28px}.about-section{padding-block:50px}.about-grid{grid-template-columns:1fr;gap:35px}.portrait{max-width:100%;width:100%}.portrait img{height:400px;object-position:center 36%;border-bottom-right-radius:80px}.portrait figcaption{font-size:9px}.about-copy h2{font-size:43px}.about-copy p:not(.eyebrow){font-size:14px}.interest-grid{grid-template-columns:1fr;gap:30px}.interest-grid h3{font-size:25px;margin-top:16px}.interest-grid p{font-size:14px}.gratitude{padding:30px 24px;display:block}.gratitude-symbol{display:block;font-size:40px;margin-bottom:20px}.gratitude h2{font-size:36px}.gratitude-intro{font-size:13px}.gratitude details p{font-size:13px}.contact-section{grid-template-columns:1fr;gap:40px}.contact-section h2{font-size:43px}.contact-section>div>p:not(.eyebrow){font-size:14px}.contact-socials{margin-top:24px}.site-footer{padding-top:35px}.footer-top{align-items:start;gap:25px;padding-bottom:30px}.footer-top .brand{width:100%}.footer-top p{font-size:24px;width:100%}.socials{gap:25px}.footer-bottom{font-size:8px;gap:10px}.page-intro{padding-block:50px 42px}.page-intro h1{font-size:55px;margin-top:20px}.page-intro>p:last-child{font-size:15px}.filter-buttons{gap:3px}.filter{font-size:11px;padding:7px 11px}.directory-tools{gap:18px}.app-grid{padding-bottom:35px}.developer-note{margin-bottom:45px}.featured-project{grid-template-columns:1fr}.featured-project .app-visual{height:280px}.featured-project .chart-bars{height:170px;bottom:55px;left:60px;right:60px}.featured-project-copy{padding:30px 25px 35px}.featured-project-copy h2{font-size:39px}.video-grid{grid-template-columns:1fr;gap:35px}.closing-banner{flex-direction:column;align-items:start;padding:30px 25px;margin-bottom:55px;gap:25px}.closing-banner h2{font-size:38px}.resource-row{grid-template-columns:32px 1fr 25px;gap:15px;padding:25px 0}.resource-row h2{font-size:25px}.resource-row p{font-size:12px}.resource-number{font-size:24px}.resource-arrow{font-size:25px}.resources{margin-bottom:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

@media(max-width:360px){.hero-copy h1{font-size:49px}.contact-form .g-recaptcha{transform:scale(.84);transform-origin:left top;min-height:68px}.button-row{gap:20px}.button-row .text-link{font-size:12px}}
