@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--paper:#fff5d6;--ink:#51303a;--purple:#ba526d;--muted:#735056;--line:#e5bb75;--gold:#ad7519}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}header{height:96px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:600 27px 'Playfair Display',Georgia,serif;letter-spacing:-1px}.brand span{color:var(--gold);margin-left:8px;font-size:18px}nav{display:flex;gap:30px;font-size:13px}nav a{padding:10px 0;position:relative}nav a.active:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--purple)}.contact-link{font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:5px}.hero{min-height:690px;padding:90px 8% 30px;text-align:center;position:relative;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;font-weight:600;color:var(--purple)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400}h1{font-size:clamp(58px,8.2vw,120px);letter-spacing:-5px;line-height:1.03;margin:35px 0 30px}.hero h1 span{display:block;font-style:italic;color:var(--purple)}.credentials{display:flex;justify-content:center;gap:28px;font-size:13px}.credentials span+span:before{content:'✦';margin-right:28px;color:var(--gold);font-size:9px}.hero .tagline{font:italic 22px 'Playfair Display',Georgia,serif;color:var(--muted);margin:36px 0}.scroll{display:inline-block;margin:45px 0 0;font-size:10px;letter-spacing:2px;text-transform:uppercase}.scroll span{display:block;font-size:24px;margin:15px}.star{position:absolute;color:var(--gold);font-size:35px;font-family:Georgia}.star.one{top:190px;left:10%}.star.two{top:350px;right:10%;font-size:24px}.gear-section{height:270px;position:relative;overflow:hidden;margin:0 0 80px}.gear-section svg{width:100%;height:100%;overflow:visible}.gear{transform-box:fill-box;transform-origin:center;animation:spin 28s linear infinite}.gear.reverse{animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.section{max-width:1200px;margin:auto;padding:65px 6% 100px}.about{display:grid;grid-template-columns:1fr 1.3fr;gap:100px;border-top:1px solid var(--line)}h2{font-size:clamp(40px,5vw,64px);line-height:1.15;letter-spacing:-2px;margin:20px 0 25px}h2 em{color:var(--purple)}p{font-size:15px;line-height:1.9;color:var(--muted)}.about p{margin:15px 0 24px}.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:25px}.tags span{font-size:10px;letter-spacing:.8px;border:1px solid var(--line);padding:10px 14px;border-radius:30px}.text-link{font-size:12px;border-bottom:1px solid var(--purple);padding-bottom:8px}.contact{background:#fbe8bd;padding:90px 8%;display:flex;justify-content:space-between;align-items:center;gap:40px}.contact h2{margin:18px 0;font-size:58px}.contact p{max-width:420px}.contact-actions{display:flex;flex-direction:column;gap:25px}.contact-actions a{font-size:15px;border-bottom:1px solid #d99499;padding-bottom:16px;display:flex;justify-content:space-between;gap:40px}footer{padding:30px 6%;display:flex;justify-content:space-between;font-size:10px;color:var(--muted);gap:20px}.page-head{padding:75px 8% 40px;max-width:1300px;margin:auto}.page-head h1{font-size:75px;margin:20px 0;letter-spacing:-3px}.page-head p{max-width:550px}.collection{max-width:1300px;margin:auto;padding:0 8% 100px;display:grid;grid-template-columns:repeat(2,1fr);gap:35px}.quest{border:1px solid var(--line);background:#fff0ce;padding:35px 30px 28px;text-align:left;position:relative;overflow:hidden;transition:background .3s}.quest:hover{background:#fbe4b8}.quest .number{font-size:10px;letter-spacing:2px;color:var(--purple)}.quest svg{display:block;width:100%;height:270px}.quest h3{font-size:30px;margin:15px 0 12px}.quest small{font-size:10px;letter-spacing:1px;color:var(--muted)}.quest .pull{display:block;margin-top:25px;border-top:1px solid var(--line);padding-top:18px;font-size:11px;letter-spacing:1px}.sword{transition:transform .65s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 6px 4px #51303a18)}.quest:hover .sword{transform:translateY(-12px)}.quest.drawn .sword{transform:translateY(-160px) rotate(8deg)}.quest.drawn{background:#ffc3b4}.cad-grid{max-width:1300px;margin:auto;padding:0 8% 100px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.cad-card{border:0;padding:0;background:transparent;text-align:left}.cad-image{height:250px;background:#fff0ce;overflow:hidden;border:1px solid var(--line)}.cad-image img{width:100%;height:100%;object-fit:contain;transition:transform .4s}.cad-card:hover img{transform:scale(1.05)}.cad-card h3{font:500 16px 'DM Sans',Arial;margin:16px 0 7px}.cad-card small{color:var(--muted);font-size:10px;letter-spacing:1px}.detail{max-width:1200px;margin:auto;padding:55px 6% 100px}.back{font-size:12px;color:var(--purple)}.detail h1{font-size:64px;letter-spacing:-2px;max-width:900px;margin:35px 0 20px}.detail .intro{font:italic 25px 'Playfair Display',Georgia;color:var(--purple);margin-bottom:35px}.detail-hero{height:480px;background:#fff0ce;display:flex;justify-content:center;padding:25px}.detail-hero img{max-width:100%;height:100%;object-fit:contain}.detail-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;padding:40px 0}.detail h3{font-size:27px}.detail li{font-size:14px;color:var(--muted);line-height:1.8;margin:10px 0}.process{border-top:1px solid var(--line);padding:20px 0 40px}.photos{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.photos figure{margin:0}.photos img{width:100%;height:340px;object-fit:contain;background:#fff0ce;padding:15px}.photos figcaption{font-size:12px;color:var(--muted);padding:10px 0}.photos button{border:0;background:none;padding:0;width:100%}dialog{border:0;background:var(--paper);max-width:90vw;padding:35px}dialog::backdrop{background:#51303ad9}dialog img{max-width:80vw;max-height:75vh;display:block;margin:auto}dialog button{position:absolute;right:8px;top:8px;background:transparent;border:0;font-size:20px}dialog p{margin:10px 0 0;text-align:center}a:focus-visible,button:focus-visible{outline:2px solid var(--purple);outline-offset:6px}@media(max-width:750px){header{height:auto;min-height:100px;flex-wrap:wrap;padding:20px 6%;gap:20px}nav{order:3;width:100%;justify-content:space-between;gap:10px;font-size:11px}.hero{padding-top:65px;min-height:600px}h1{letter-spacing:-2px}.credentials{flex-direction:column;gap:12px}.credentials span+span:before{content:none}.star.one{top:100px;left:5%;font-size:20px}.star.two{right:4%}.gear-section{height:170px;margin-bottom:30px}.about{grid-template-columns:1fr;gap:10px}.contact{flex-direction:column;align-items:flex-start;padding:60px 8%}.contact h2{font-size:43px}.contact-actions{width:100%}.contact-actions a{font-size:13px}footer{flex-wrap:wrap}.page-head h1{font-size:54px}.collection,.cad-grid{grid-template-columns:1fr}.quest svg{height:240px}.detail h1{font-size:43px}.detail-copy{grid-template-columns:1fr;gap:0}.detail-hero{height:340px}.photos{grid-template-columns:1fr}.cad-image{height:300px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gear{animation:none}.sword,.cad-image img{transition:none}}
/* A continuous mechanical trail from the introduction into About Me. */
.hero{min-height:590px;padding-bottom:0}.hero .scroll{margin-top:22px}.gear-trail{height:auto;margin:-15px auto 0;max-width:1440px;overflow:hidden;position:relative}.gear-trail svg{display:block;width:100%;height:auto}.gear-trail .mobile-chain{display:none}.gear-trail .gear{animation-duration:40s}.gear-scroll{transform-box:fill-box;transform-origin:center}.about{border-top:0;padding-top:15px}.mini-heading{padding-bottom:25px}.night-sky{position:relative;max-width:1200px;margin:0 auto 85px;min-height:650px;background:radial-gradient(ellipse at 60% 15%,#613342 0%,#37212d 50%,#281c29 100%);border-radius:140px 140px 6px 6px;overflow:hidden;color:#fff2d0;isolation:isolate}.sky-grain{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,#cd768c22,transparent 55%);z-index:-1}.sky-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.35}.sky-lines path{fill:none;stroke:#df9dae;stroke-width:1;stroke-dasharray:4 8}.background-stars{position:absolute;inset:0;pointer-events:none}.background-stars i{position:absolute;background:#ffe3b9;border-radius:50%;width:var(--size);height:var(--size);opacity:.55;animation:twinkle 5s var(--delay) ease-in-out infinite}@keyframes twinkle{50%{opacity:.16}}.star-project{position:absolute;background:none;border:0;color:#fff2d0;padding:20px;width:300px;text-align:center;transition:transform .5s}.star-project-0{left:18%;top:75px}.star-project-1{right:13%;top:270px}.project-star{display:block;margin:0 auto 25px;width:83px;height:83px;filter:drop-shadow(0 0 13px #efd18d66);transition:filter .5s,transform .5s}.project-star svg{width:100%;height:100%;overflow:visible}.project-star path{fill:#efd18d;stroke:#fff0c9;stroke-width:1}.project-star circle{fill:#fff4b8}.star-project:hover .project-star{filter:drop-shadow(0 0 24px #ffe58dbb);transform:scale(1.13) rotate(8deg)}.star-project h3{font-size:28px;line-height:1.2;margin:13px 0}.star-number{font-size:9px;letter-spacing:2px;color:#f3c0c5}.star-label{font-size:10px;color:#f3c0c5}.star-open{display:block;font-size:11px;margin:20px auto 0;width:max-content;padding-bottom:7px;border-bottom:1px solid #c78793}.star-project.drawn .project-star{transform:scale(1.65);filter:drop-shadow(0 0 35px #ffe58d);opacity:0;transition:transform .65s,filter .65s,opacity .65s}.star-project.drawn{transform:translateY(-8px)}.sky-caption{position:absolute;bottom:30px;left:40px;font-size:9px;letter-spacing:3px;color:#e6acb8}@media(min-width:1450px){.gear-trail{margin-top:-35px}}@media(max-width:750px){.hero{min-height:560px}.gear-trail{margin-top:0}.gear-trail .desktop-chain{display:none}.gear-trail .mobile-chain{display:block}.about{padding-top:5px}.night-sky{margin:0 5% 55px;min-height:800px;border-radius:100px 100px 6px 6px}.star-project{width:260px}.star-project-0{left:2%;top:85px}.star-project-1{right:0;top:430px}.star-project h3{font-size:26px}.sky-caption{left:25px;bottom:23px}}@media(prefers-reduced-motion:reduce){.background-stars i{animation:none}.star-project,.project-star,.star-project.drawn .project-star{transition:none}}
/* Full-page project environments and simpler homepage text. */
.credentials{display:block;font-size:14px;line-height:1.8}.degree-line{display:block}.degree-divider{display:inline-block;margin:0 12px;color:var(--purple)}.university{margin-top:10px;font-size:14px}.credentials span+span:before{content:none}.hero{min-height:520px;padding-top:75px}.hero .scroll{margin-top:30px}.about{padding-bottom:5px}.second-trail{margin-top:0}.second-trail>svg{transform:none}.contact{background:transparent;padding-top:25px;padding-bottom:100px}.contact h2{font-size:58px}.theme-night{background:#281c29;color:#fff2d0;isolation:isolate;min-height:100vh}.theme-night:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 60% 10%,#a6537066,transparent 60%),radial-gradient(circle at 31px 57px,#ffe8b0 1px,transparent 1.7px),radial-gradient(circle at 84px 121px,#f5afb9 1px,transparent 1.6px),radial-gradient(circle at 152px 45px,#ffe4ad 1px,transparent 1.8px);background-size:100% 100%,233px 197px,317px 283px,419px 337px}.theme-night header{border-color:#d98b9b33;background:#281c2922}.theme-night nav a.active:after{background:#f8b6bf}.theme-night .contact-link{border-color:#f8cfca}.theme-night .brand span{color:#f1d18a}.theme-night .page-head h1 em{color:#f7b4bd}.theme-night .page-head p{color:#f7d3c6}.theme-night .night-sky{max-width:1300px;min-height:670px;border-radius:0;background:transparent;margin-bottom:0;overflow:visible}.theme-night .sky-caption{display:none}.theme-night footer{color:#f7d3c6;border-top:1px solid #d98b9b22}.theme-night .mini-heading{padding-top:60px;padding-bottom:0}.theme-night .star-project-0{top:65px;left:18%}.theme-night .star-project-1{top:250px;right:17%}.theme-meadow{background:linear-gradient(#fff3d8 0%,#e8e7c8 25%,#a4ba85 65%,#89a568 100%);color:#293c29}.theme-meadow header{border-color:#5e794d33}.theme-meadow .brand span{color:#947243}.theme-meadow .page-head h1 em{color:#64774c}.theme-meadow .page-head p{color:#516249}.theme-meadow .contact-link{border-color:#516249}.meadow-heading{padding-top:55px;padding-bottom:0}.meadow{position:relative;min-height:870px;max-width:1600px;margin:auto;overflow:hidden}.meadow-scene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.meadow-project{position:absolute;border:0;background:transparent;width:390px;padding:0 20px;text-align:center;overflow:visible;z-index:1}.meadow-project-0{left:13%;top:110px}.meadow-project-1{right:10%;top:340px}.meadow-project svg{height:285px;filter:drop-shadow(0 12px 7px #35482522)}.meadow-project h3{font-size:29px;margin:12px 0;color:#273927}.meadow-project small{color:#3b5135;display:block}.meadow-project .pull{border:0;font-size:11px;margin-top:15px;padding:8px 15px;display:inline-block;background:#fff1ceba;border-radius:30px;color:#30452c}.meadow-project:hover,.meadow-project.drawn{background:transparent}.meadow-project:hover h3{color:#723f4c}.theme-meadow footer{background:#89a568;color:#293c29;border-top:1px solid #59774744}.theme-night a:focus-visible,.theme-night button:focus-visible{outline-color:#ffd772}.theme-meadow a:focus-visible,.theme-meadow button:focus-visible{outline-color:#ad5269}@media(max-width:750px){.hero{padding-top:65px;min-height:470px}.credentials{font-size:11px}.degree-divider{margin:0 4px}.university{font-size:13px}.about{padding-bottom:0}.contact{padding-top:15px;padding-bottom:65px}.contact h2{font-size:43px}.theme-night .night-sky{margin:0;min-height:800px;overflow:hidden}.theme-night .star-project-0{top:60px;left:3%}.theme-night .star-project-1{top:415px;right:3%}.meadow{min-height:1040px}.meadow-project{width:300px;padding:0 12px}.meadow-project-0{top:55px;left:0}.meadow-project-1{top:515px;right:0}.meadow-project svg{height:260px}.meadow-project h3{font-size:25px}.meadow-scene{object-fit:cover}.theme-meadow .page-head,.theme-night .page-head{padding-top:45px}}@media(max-width:360px){.credentials{font-size:10px}.degree-divider{margin:0 2px}.meadow-project{width:270px}}
/* Sunset palette, clear meadow labels, and soft-skill word spirals. */
:root{--paper:#fff5d6;--ink:#51303a;--purple:#b64d69;--muted:#735056;--line:#e5bb75;--gold:#a16a12}.word-swirl{position:absolute;left:13%;top:27%;width:340px;pointer-events:none}.word-swirl svg{width:100%;height:auto;display:block}.word-swirl text{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:24px;letter-spacing:.6px;fill:#9f3f59}.word-swirl.swirl-second{left:49%;top:23%}.project-caption{display:block;background:#fff4d8f5;border:1px solid #fff8e6cc;border-radius:24px;padding:19px 18px 17px;box-shadow:0 7px 24px #39502a17;backdrop-filter:blur(5px)}.meadow-project .project-caption h3{color:#283d26;font-size:27px;line-height:1.25;margin:0 0 11px}.meadow-project .project-caption small{color:#34452a;font-size:12px;line-height:1.6;letter-spacing:.25px}.meadow-project .project-caption .pull{background:#f5dea7;color:#293d27;margin-top:15px;padding:9px 18px;font-size:12px}.meadow-project:hover .project-caption h3{color:#283d26}.theme-night .star-project{color:#fff3d8}.theme-night .star-number,.theme-night .star-label{color:#f6c6cb}.contact-actions a{border-color:#d59b75}.theme-night .page-head p{color:#f7d3c6}@media(max-width:750px){.word-swirl{width:210px;left:6%;top:28%}.word-swirl.swirl-second{width:205px;left:40%;top:25%}.meadow-project .project-caption h3{font-size:24px}.project-caption{padding:17px 15px;border-radius:20px}}@media(max-width:360px){.word-swirl{width:185px}.word-swirl.swirl-second{width:180px;left:39%}}
/* Softer sunshine, roomy word spirals, and meadow text without panels. */
:root{--paper:#fff5d6}.word-swirl{left:17%;top:20%;width:58%}.word-swirl.swirl-second{left:25%;top:20%;width:58%}.word-swirl text{font-size:25px;letter-spacing:.8px;fill:#a94d67}.meadow-heading{position:relative;isolation:isolate;overflow:hidden;max-width:none;padding-left:max(8%,calc((100% - 1300px)/2 + 104px));padding-bottom:20px}.meadow-heading h1,.meadow-heading p{position:relative;z-index:1}.meadow-clouds{position:absolute;inset:0;width:100%;height:100%;min-height:230px;pointer-events:none;z-index:0}.project-caption{position:relative;isolation:isolate;background:none;border:0;box-shadow:none;backdrop-filter:none;border-radius:0;padding:13px 12px}.project-caption:before{content:'';position:absolute;inset:-28px -35px;z-index:-1;background:radial-gradient(ellipse, #fff8e7cc 0%,#fff8e799 30%,#fff8e733 56%,transparent 74%);pointer-events:none}.meadow-project .project-caption h3{color:#263c25;text-shadow:0 1px 2px #fff8e7,0 0 6px #fff8e7,0 0 12px #fff8e7;font-size:28px}.meadow-project .project-caption small{color:#293e28;font-weight:600;text-shadow:0 0 4px #fff8e7,0 0 8px #fff8e7}.meadow-project .project-caption .pull{background:#fff8e799;border:1px solid #fff8e777;box-shadow:none;color:#293e28;text-shadow:0 0 3px #fff8e7}.theme-meadow .page-head p{color:#3e5138;text-shadow:0 0 8px #fff8e7}.theme-meadow .page-head h1{color:#293c29;text-shadow:0 0 12px #fff8e7aa}@media(max-width:750px){.word-swirl{width:83%;left:2%;top:26%}.word-swirl.swirl-second{width:83%;left:15%;top:26%}.word-swirl text{font-size:27px}.meadow-heading{padding-left:8%;min-height:240px}.meadow-clouds{width:180%;left:-25%;max-width:none}.meadow-project .project-caption h3{font-size:25px}.project-caption:before{inset:-20px -18px}.meadow-heading h1{font-size:50px}}@media(max-width:360px){.word-swirl,.word-swirl.swirl-second{width:85%}}
/* Several quiet swirls behind the mechanical trail. */
.gear-trail{isolation:isolate}.gear-trail>.desktop-chain,.gear-trail>.mobile-chain{position:relative;z-index:2;pointer-events:none}.word-swirl-field{position:absolute;inset:0;z-index:0;pointer-events:none}.small-word-swirl{position:absolute;width:26%;opacity:.72}.small-word-swirl svg{display:block;width:100%;height:auto}.small-word-swirl text{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:22px;letter-spacing:.5px;fill:#a94d67}.swirl-0{left:17%;top:21%;transform:rotate(-12deg)}.swirl-1{left:45%;top:25%;transform:rotate(14deg)}.swirl-2{left:27%;top:45%;transform:rotate(-5deg)}.swirl-field-second .swirl-0{left:56%;top:21%;transform:rotate(10deg)}.swirl-field-second .swirl-1{left:28%;top:25%;transform:rotate(-14deg)}.swirl-field-second .swirl-2{left:46%;top:45%;transform:rotate(5deg)}@media(max-width:750px){.small-word-swirl{width:45%;opacity:.72}.small-word-swirl text{font-size:23px}.swirl-0{left:3%;top:23%}.swirl-1{left:45%;top:32%}.swirl-2{left:10%;top:48%}.swirl-field-second .swirl-0{left:52%;top:23%}.swirl-field-second .swirl-1{left:10%;top:32%}.swirl-field-second .swirl-2{left:45%;top:48%}}
.about-links{display:flex;gap:24px;flex-wrap:wrap}.exploration-heading{padding-bottom:25px}.exploration-board{max-width:1180px;margin:0 auto 80px;padding:45px 6% 70px;display:grid;grid-template-columns:repeat(3,1fr);gap:45px 34px;align-items:start;background:radial-gradient(circle,#b46d811a 1px,transparent 1px);background-size:22px 22px}.exploration-note{position:relative;padding:28px 25px 30px;background:#fffaf0;border:1px solid #e8d7b8;box-shadow:0 9px 22px #7343520c;min-height:355px;transform:rotate(-3deg)}.note-1{transform:rotate(2deg);margin-top:25px;background:#fce9e6}.note-2{transform:rotate(-1deg);background:#fff0cb}.note-3{transform:rotate(2deg);background:#fce9e6}.note-4{transform:rotate(-3deg);margin-top:15px}.note-pin{position:absolute;top:-9px;left:calc(50% - 7px);width:14px;height:14px;background:#c3687c;border-radius:50%;box-shadow:0 2px 3px #51303a22;z-index:1}.note-pin:after{content:'';position:absolute;top:3px;left:3px;width:4px;height:4px;border-radius:50%;background:#f5b7bd}.note-status{font-size:10px;color:#915168;letter-spacing:1px}.note-drawing{width:150px;margin:18px auto 8px;color:#b16a7c}.note-drawing svg{width:100%;height:auto}.exploration-note h2{font-size:29px;letter-spacing:-.5px;margin:15px 0 10px;line-height:1.2}.exploration-note p{font-size:13px;line-height:1.7;margin:0;color:#735056}@media(max-width:950px){nav{gap:18px}.exploration-board{grid-template-columns:repeat(2,1fr)}}@media(max-width:750px){nav{gap:9px;flex-wrap:wrap;justify-content:flex-start;column-gap:20px}.exploration-board{grid-template-columns:1fr;max-width:460px;padding:30px 9% 45px;gap:35px}.exploration-note{min-height:320px}.note-1,.note-4{margin-top:0}.exploration-heading h1{font-size:48px}}
/* Resume highlights sit quietly in the negative space framed by the gears. */
.gear-highlights{position:absolute;left:21%;top:22%;width:38%;max-width:460px;z-index:0;display:grid;gap:25px}.gear-highlights.highlights-second{left:41%;top:22%}.gear-highlights article{padding:0 0 0 15px;border-left:1px solid #d89aac66}.highlight-label{font-size:9px;letter-spacing:1.3px;color:#99536a;line-height:1.5;display:block}.gear-highlights h3{font-size:25px;line-height:1.15;margin:8px 0 9px;color:#51303a}.gear-highlights p{font-size:12px;line-height:1.7;margin:0;color:#735056;max-width:420px}.gear-highlights a{font-size:10px;color:#99536a;display:inline-block;margin-top:9px;border-bottom:1px solid #d89aac88;padding-bottom:3px}@media(max-width:1050px) and (min-width:751px){.gear-highlights{top:21%;gap:18px;width:40%}.gear-highlights.highlights-second{left:39%}.gear-highlights h3{font-size:21px}.gear-highlights p{font-size:11px;line-height:1.55}.highlight-label{font-size:8px}}@media(max-width:750px){.gear-highlights{left:8%;top:23%;width:59%;gap:22px}.gear-highlights.highlights-second{left:34%;top:23%;width:59%}.gear-highlights article{padding-left:9px}.gear-highlights h3{font-size:20px;margin:7px 0}.gear-highlights p{font-size:11px;line-height:1.65}.highlight-label{font-size:8px;letter-spacing:.5px}.gear-highlights a{font-size:10px}}@media(max-width:360px){.gear-highlights h3{font-size:18px}.gear-highlights p{font-size:10.5px}.gear-highlights{gap:18px}}
/* Skills and an invitation occupy the areas marked inside the gear curves. */
.gear-content{position:absolute;z-index:1;color:var(--ink)}.skills-content{left:8%;top:23%;width:51%;max-width:610px}.gear-content h2{font-size:42px;letter-spacing:-1px;margin:0 0 24px;line-height:1.15}.skill-group{margin-bottom:22px}.skill-group h3{font-family:'DM Sans',Arial,sans-serif;font-size:15px;font-weight:600;color:#a04c66;margin:0 0 8px}.skill-group p{font-size:14px;line-height:1.8;margin:0;color:#735056}.project-suggestion{left:44%;top:25%;width:41%;max-width:485px}.project-suggestion h2{font-size:36px;line-height:1.3;max-width:420px;margin-bottom:15px}.project-suggestion p{font-size:16px;margin:0 0 30px}.suggestion-link{display:inline-block;color:#994760;font-size:14px;border-bottom:1px solid #bd788a;padding-bottom:7px}.suggestion-link:hover{color:#713346;border-color:#713346}@media(max-width:1050px) and (min-width:751px){.gear-content h2{font-size:33px;margin-bottom:17px}.skill-group{margin-bottom:16px}.skill-group h3{font-size:13px}.skill-group p{font-size:12px}.project-suggestion h2{font-size:30px}.project-suggestion p{font-size:14px}}@media(max-width:750px){.skills-content{left:6%;top:23%;width:66%}.gear-content h2{font-size:29px;margin-bottom:17px}.skill-group{margin-bottom:16px}.skill-group h3{font-size:12px;margin-bottom:5px}.skill-group p{font-size:11px;line-height:1.65}.project-suggestion{left:32%;top:25%;width:60%}.project-suggestion h2{font-size:26px;line-height:1.25}.project-suggestion p{font-size:13px;margin-bottom:22px}.suggestion-link{font-size:12px}}@media(max-width:360px){.gear-content h2{font-size:25px}.skill-group{margin-bottom:12px}.skill-group p{font-size:10px}.project-suggestion h2{font-size:23px}}
.contact-suggestion{max-width:400px;margin-top:27px}.contact-suggestion h3{font-size:25px;line-height:1.3;margin:0 0 12px}.contact-suggestion p{font-size:14px;margin:0 0 20px}.detail-hero{margin-top:25px}@media(max-width:750px){.contact-suggestion h3{font-size:23px}}
.text-arrow{display:inline-block!important;width:14px!important;height:14px!important;vertical-align:-2px;overflow:visible;flex-shrink:0}.text-arrow path{fill:none;stroke:#151515;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.theme-night .text-arrow{filter:drop-shadow(0 0 2px #fff5d6) drop-shadow(0 0 1px #fff5d6)}.hero .scroll .text-arrow{width:22px!important;height:22px!important;vertical-align:middle}.project-videos{padding:5px 0 35px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.video-grid figure{margin:0;min-width:0}.video-grid video{width:100%;aspect-ratio:910/512;display:block;background:#171717;border-radius:6px;object-fit:contain}.video-grid figcaption{font-size:12px;color:var(--muted);padding:12px 0}.project-videos h3{margin-top:0}@media(max-width:750px){.video-grid{grid-template-columns:1fr;gap:20px}}
.project-result{padding:0 0 30px}.project-result h3{margin:0 0 15px}.project-result p{margin:0;max-width:800px}
.theme-night .night-sky{min-height:1000px}.theme-night .star-project-0{left:15%;top:40px}.theme-night .star-project-1{right:12%;top:260px}.theme-night .star-project-2{left:25%;top:580px}.project-limitations{padding:0 0 25px}.project-limitations h3{margin:0 0 15px}.project-limitations p{margin:0;max-width:850px}.report-link{margin:0 0 35px}@media(max-width:750px){.theme-night .night-sky{min-height:1250px}.theme-night .star-project-0{left:3%;top:50px}.theme-night .star-project-1{right:3%;top:420px}.theme-night .star-project-2{left:5%;top:815px}}
/* Space the third exhibit project across the meadow. */
.meadow{min-height:1310px}.meadow-project-0{left:12%;top:90px}.meadow-project-1{right:10%;top:390px}.meadow-project-2{left:22%;top:790px}@media(max-width:750px){.meadow{min-height:1510px}.meadow-project-0{left:0;top:45px}.meadow-project-1{right:0;top:525px}.meadow-project-2{left:0;top:1010px}}
.face-section{padding:10px 0 45px}.face-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.face-gallery figure{margin:0;min-width:0}.face-gallery button{width:100%;padding:0;border:0;background:transparent}.face-gallery img{width:100%;height:auto;aspect-ratio:592/925;object-fit:contain;display:block;border-radius:5px}.face-gallery figcaption{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.5}@media(max-width:850px){.face-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:500px){.face-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 15px}}
.research-gate{min-height:65vh}.research-gate form{max-width:360px;margin-top:25px}.research-gate label{display:block;font-size:13px;margin-bottom:9px}.research-gate input{display:block;width:100%;padding:13px 14px;border:1px solid #cc9a9f;border-radius:5px;background:#fffaf0;font:inherit;color:var(--ink);margin-bottom:16px}.research-gate button{padding:12px 18px;background:#ba526d;color:#fffaf0;border:0;border-radius:5px}.gate-error{font-size:13px;min-height:24px}.research-lock{background:transparent;border:1px solid #cc9a9f;border-radius:20px;font-size:11px;padding:8px 13px;margin:0 0 20px}
.cad-preview{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.stl-button{display:block;width:max-content;max-width:100%;background:transparent;border:1px solid #ce93a1;border-radius:24px;padding:9px 15px;margin-top:14px;font-size:12px;color:#8b4057}.stl-button:hover{background:#f7dfe0}.project-models{padding:0 0 40px}.project-models>p{font-size:13px}.project-model-links{display:flex;gap:12px;flex-wrap:wrap}.project-model-links .stl-button{margin-top:0}.model-dialog{width:min(950px,94vw);max-width:94vw;max-height:94vh;padding:28px;border-radius:12px;overflow:auto;background:#fff5d6}.model-dialog h2{font-size:30px;letter-spacing:-.7px;margin:0 30px 8px 0}.model-instructions{font-size:12px;margin:0 0 16px}.model-dialog .model-close{position:absolute;top:12px;right:12px;width:32px;height:32px;background:transparent;border:0;font-size:20px}.model-stage{position:relative;height:min(55vh,480px);min-height:240px;border:1px solid #e6cdb5;border-radius:8px;overflow:hidden}.model-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.model-stage canvas[hidden]{display:none}.model-stage canvas:active{cursor:grabbing}.model-status{position:absolute;top:40%;left:5%;width:90%;text-align:center;font-size:14px}.model-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;align-items:center}.model-controls button{position:static;background:transparent;border:1px solid #cc9a9f;border-radius:20px;padding:8px 12px;font-size:11px}.model-controls a{font-size:12px;margin-left:auto;border-bottom:1px solid #b8788b;padding-bottom:4px}@media(max-width:600px){.model-dialog{padding:22px 15px}.model-dialog h2{font-size:24px}.model-stage{height:48vh}.model-controls a{margin-top:10px}}
.protected-video{position:relative;background:#171717;border-radius:6px;overflow:hidden}.protected-video img{width:100%;height:auto;display:block}.protected-video button{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);background:#fff5d6;color:#51303a;border:0;border-radius:25px;padding:12px 22px;font-size:13px}.protected-video p{position:absolute;bottom:5px;left:10px;right:10px;background:#171717aa;color:white;font-size:12px;text-align:center}.protected-video p:empty{display:none}
.cad-challenge-heading{max-width:1300px;margin:auto;padding:0 8% 35px}.cad-challenge-heading h2{font-size:42px;letter-spacing:-1px;margin:0 0 15px}.cad-challenge-heading p{margin:0;font-size:14px}@media(max-width:750px){.cad-challenge-heading h2{font-size:34px}}
/* Let supplied images keep their proportions without padded display boxes. */
.detail-hero{height:auto;min-height:0;padding:0;background:transparent;display:block;margin:28px 0 0}.detail-hero img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;margin:auto}.photos{display:block;columns:2;column-gap:28px}.photos figure{break-inside:avoid;display:inline-block;width:100%;margin:0 0 25px;vertical-align:top}.photos img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;padding:0;background:transparent}.photos button{display:block}.photos figcaption{padding:11px 0 0;line-height:1.6}.cad-image{height:auto;background:transparent;border:0}.cad-image img{height:auto;max-height:330px;object-fit:contain;display:block}.cad-card h3{margin-top:14px}.cad-grid{align-items:start;row-gap:40px}.face-section{padding-bottom:30px}.face-gallery img{border-radius:0}.detail-copy{padding-top:30px;padding-bottom:25px}.process{padding-bottom:28px}@media(max-width:750px){.photos{columns:1}.detail-hero{height:auto}.detail-hero img{max-height:480px}.cad-image{height:auto}.cad-image img{max-height:360px}.photos figure{margin-bottom:24px}.photos img{height:auto}}
/* Four project stones across the meadow. */
.meadow{min-height:1730px}.meadow-project-3{right:12%;top:1210px}@media(max-width:750px){.meadow{min-height:2010px}.meadow-project-3{right:0;top:1490px}}
/* Keep raster images within their original resolution rather than stretching them. */
.detail-hero img{width:auto;max-width:100%;height:auto;max-height:560px;margin:0 auto}.photos img{width:auto;max-width:100%;height:auto;margin:0}.cad-image img{width:auto;max-width:100%;height:auto;margin:0 auto}.photos button{width:100%;text-align:left}@media(max-width:750px){.detail-hero img{width:auto;max-width:100%;max-height:480px}.photos img,.cad-image img{width:auto;max-width:100%;height:auto}}
.project-summary{font-size:16px;line-height:1.8;max-width:750px;margin:0 0 22px;color:var(--muted)}.meadow-project .project-caption small{font-size:12px;line-height:1.65;letter-spacing:0;font-weight:400}.star-label{display:block;font-size:12px;line-height:1.65;max-width:260px;margin:auto}.project-lock-note{display:block;font-size:10px;line-height:1.5;margin-top:8px;color:#33472d;text-shadow:0 0 5px #fff8e7}.detail h1{margin-bottom:18px}
/* Close-packed CAD collage with natural image proportions. */
.cad-grid{display:block;columns:3;column-gap:14px;padding-bottom:55px}.cad-card{display:inline-block;width:100%;break-inside:avoid;margin:0 0 18px;vertical-align:top}.cad-image{height:auto;background:transparent;border:0;overflow:hidden}.cad-image img{display:block;width:100%;max-width:100%;height:auto;max-height:none;margin:0;object-fit:contain}.cad-preview{width:100%;display:block}.cad-caption{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-top:9px}.cad-card .cad-caption h3{font-family:'DM Sans',Arial,sans-serif;font-size:12px;line-height:1.5;margin:0;max-width:65%}.cad-caption .stl-button{flex-shrink:0;white-space:nowrap;margin:0;font-size:10px;padding:7px 10px}.cad-challenge-heading{padding-top:10px;padding-bottom:25px}@media(max-width:1000px){.cad-grid{columns:2}}@media(max-width:600px){.cad-grid{columns:2;column-gap:10px;padding-left:5%;padding-right:5%}.cad-caption{display:block;padding-top:7px}.cad-card .cad-caption h3{max-width:none;font-size:11px}.cad-caption .stl-button{display:inline-block;margin-top:7px;font-size:10px;padding:6px 10px}.cad-card{margin-bottom:15px}}@media(max-width:340px){.cad-grid{columns:1}}
.inline-model-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.inline-model-grid stl-model{display:block;min-width:0;padding-bottom:20px;border-bottom:1px solid #e5bb7566}.inline-model-name{font-family:'DM Sans',Arial,sans-serif;font-weight:500;font-size:15px;margin:0 0 10px}.inline-model-stage{height:320px;min-height:240px;border:0;border-radius:0}.inline-model-grid .model-controls{margin-top:10px;gap:7px}.inline-model-grid .model-controls a{font-size:11px}.inline-model-grid .model-controls button{padding:7px 10px;font-size:10px}.inline-model-grid .model-controls button:disabled{opacity:.5}@media(max-width:750px){.inline-model-grid{grid-template-columns:1fr;gap:25px}.inline-model-stage{height:310px}.inline-model-grid .model-controls a{margin-top:0}}
/* Fitted image rows based on the PDF: wide and narrow tiles share the full width. */
.cad-library-page .page-head,.cad-library-page .cad-challenge-heading{max-width:1560px;width:100%;padding-left:clamp(20px,5vw,80px);padding-right:clamp(20px,5vw,80px)}.cad-library-page .cad-grid{display:grid;columns:auto;width:100%;max-width:1560px;margin:0 auto;padding:0 clamp(20px,5vw,80px) 45px;gap:14px;align-items:start}.cad-library-page .cad-card{display:flex;flex-direction:column;min-width:0;width:100%;margin:0;break-inside:auto;vertical-align:initial}.cad-library-page .cad-preview{display:block;width:100%;min-width:0}.cad-library-page .cad-image{display:block;width:100%;height:auto;aspect-ratio:var(--cad-ratio);background:none;border:0}.cad-library-page .cad-image img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;margin:0}.cad-library-page .cad-caption{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-width:0;gap:7px;padding-top:9px}.cad-library-page .cad-card .cad-caption h3{font-size:13px;line-height:1.45;max-width:100%;margin:0;overflow-wrap:break-word}.cad-library-page .cad-caption .stl-button{display:inline-block;max-width:100%;white-space:normal;margin:0;padding:6px 11px;font-size:10px;line-height:1.3}.cad-library-page .cad-challenge-heading{padding-top:10px;padding-bottom:25px}@media(max-width:1000px){.cad-library-page .cad-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px 14px}.cad-library-page .cad-caption{flex-direction:row;align-items:center;justify-content:space-between}.cad-library-page .cad-card .cad-caption h3{max-width:60%}.cad-library-page .cad-image{max-height:330px}.cad-library-page .cad-image img{height:auto;max-height:330px;object-fit:contain}}@media(max-width:600px){.cad-library-page .cad-grid{padding-left:18px;padding-right:18px;gap:22px 12px}.cad-library-page .cad-caption{flex-direction:column;align-items:flex-start}.cad-library-page .cad-card .cad-caption h3{font-size:12px;max-width:100%}.cad-library-page .cad-image{max-height:240px}.cad-library-page .cad-image img{max-height:240px}.cad-library-page .cad-caption .stl-button{font-size:10px}}@media(min-width:1700px){.cad-library-page .cad-grid,.cad-library-page .page-head,.cad-library-page .cad-challenge-heading{max-width:1660px}}
.cad-software-section{padding-bottom:22px}.cad-software-heading,.cad-empty{max-width:1560px;width:100%;margin:0 auto;padding-left:clamp(20px,5vw,80px);padding-right:clamp(20px,5vw,80px)}.cad-software-heading{padding-bottom:24px}.cad-software-heading h2{font-size:42px;letter-spacing:-1px;margin:0;line-height:1.2}.cad-software-section+.cad-software-section .cad-software-heading{padding-top:20px}.cad-empty{font-size:14px;padding-bottom:35px}.cad-library-page .cad-challenge-heading h3{font-size:25px;letter-spacing:-.5px;margin:0 0 12px}@media(max-width:600px){.cad-software-heading,.cad-empty{padding-left:18px;padding-right:18px}.cad-software-heading h2{font-size:34px}.cad-library-page .cad-challenge-heading h3{font-size:22px}}@media(min-width:1700px){.cad-software-heading,.cad-empty{max-width:1660px}}
.project-next-steps{padding:0 0 30px}.project-next-steps h3{margin:0 0 15px}.project-next-steps p{margin:0;max-width:850px}

.video-test-group + .video-test-group{margin-top:2.5rem}.video-test-group h3{margin-bottom:1.1rem}

.velocity-results{margin:0 0 40px}.velocity-results figure{margin:20px 0}.research-chart{display:block;padding:0;border:0;background:transparent;max-width:100%;text-align:left}.research-chart img{display:block;max-width:100%;height:auto}.velocity-results figcaption{font-size:12px;color:var(--muted);margin-top:10px}.velocity-results details{border-top:1px solid var(--line);padding:16px 0}.velocity-results summary{cursor:pointer;font-size:14px}.measurement-table{overflow-x:auto;margin-top:16px}.measurement-table table{border-collapse:collapse;width:100%;max-width:560px;font-size:14px;font-variant-numeric:tabular-nums}.measurement-table caption{text-align:left;font-size:12px;color:var(--muted);padding-bottom:12px}.measurement-table th,.measurement-table td{padding:9px 16px;border-bottom:1px solid var(--line);text-align:right}.measurement-table th:first-child{text-align:left}.measurement-table tbody th{font-weight:400}.velocity-results details .research-chart{margin-top:20px}

.cad-library-page .cad-fea-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)!important}.cad-fea-grid .cad-card:last-child{grid-column:1 / -1}@media(max-width:600px){.cad-library-page .cad-fea-grid{grid-template-columns:minmax(0,1fr)!important}.cad-library-page .cad-fea-grid .cad-image,.cad-library-page .cad-fea-grid .cad-image img{max-height:none}}

.sketchbook-section,.exploration-other-heading{max-width:1400px;margin:0 auto;padding:0 6%}.sketchbook-intro{margin:0 0 30px}.sketchbook-intro h2{font-size:42px;margin:10px 0 12px}.sketchbook-intro p{margin:0}.exploration-other-heading h2{font-size:36px;margin:10px 0 30px}@media(max-width:650px){.sketchbook-intro h2{font-size:34px}.exploration-other-heading h2{font-size:30px}}@media(prefers-reduced-motion:reduce){.sketchbook-page button{transition:none}.sketchbook-page button:hover{transform:none}}

.sketchbook-carousel{width:calc(56.25% + 62.125px);max-width:1057.75px;margin:0 auto 65px;outline-offset:8px}.sketchbook-carousel-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:16px}.sketchbook-arrow{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);transition:background .2s}.sketchbook-arrow:hover{background:#fce9e6}.sketchbook-arrow .text-arrow{width:22px;height:22px}.sketchbook-slides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}.sketchbook-slide{margin:0;min-width:0;touch-action:pan-y}.sketchbook-enlarge{border:0;padding:0;background:transparent;display:block;width:100%;aspect-ratio:3 / 4;box-shadow:none}.sketchbook-enlarge img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}.sketchbook-position{text-align:center;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.5px;margin:20px 0 0}@media(max-width:650px){.sketchbook-carousel-row{grid-template-columns:28px minmax(0,1fr) 28px;gap:7px}.sketchbook-arrow{width:28px;height:40px;border:0}.sketchbook-slides{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sketchbook-enlarge{padding:0}}@media(prefers-reduced-motion:reduce){.sketchbook-arrow{transition:none}}

.sketchbook-section{max-width:2000px;padding-left:2.5%;padding-right:2.5%}.sketchbook-intro{max-width:1232px;margin-left:auto;margin-right:auto}.sketchbook-slides{gap:22px}@media(max-width:650px){.sketchbook-slides{gap:14px}}

.exploration-board{grid-template-columns:repeat(2,minmax(0,1fr))}.exploration-note .exploration-aside{margin-top:12px}@media(max-width:750px){.exploration-board{grid-template-columns:1fr}}

@media(max-width:650px){.sketchbook-carousel{width:calc(56.25% + 36.75px)}}

.exploration-aside a{text-decoration:underline;text-underline-offset:3px}

.exploration-heading{max-width:1232px;width:95%;padding-left:0;padding-right:0}
.photos.project-gallery{display:flex;flex-direction:column;columns:auto;gap:22px}.project-gallery-row{display:grid;width:min(100%,var(--gallery-width));gap:16px;align-items:start}.photos.project-gallery figure{display:block;width:auto;min-width:0;margin:0;break-inside:auto}.photos.project-gallery button{display:block;width:100%;padding:0}.photos.project-gallery img{display:block;width:100%;max-width:100%;height:auto;margin:0;padding:0;background:transparent}.photos.project-gallery figcaption{padding:8px 0 0;font-size:12px;line-height:1.5}.project-gallery-row figure{align-self:start}@media(max-width:600px){.project-gallery-row{grid-template-columns:minmax(0,1fr)!important;width:100%;gap:18px}.photos.project-gallery img{width:auto;max-width:100%;max-height:300px}.photos.project-gallery button{width:100%;text-align:left}}

.contact{display:block;padding:80px 6%}.contact-inner{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}.contact-inner>div{min-width:0}.contact-inner .contact-actions{width:100%;max-width:450px;justify-self:end}.contact-inner .contact-actions a{gap:20px;overflow-wrap:anywhere}.contact-inner .contact-actions a>span{flex-shrink:0}@media(max-width:750px){.contact{padding:60px 6%}.contact-inner{grid-template-columns:minmax(0,1fr);gap:38px;max-width:520px}.contact-inner .contact-actions{justify-self:start;max-width:none}}

.cad-library-page .cad-packed-grid{grid-auto-rows:1px;row-gap:0}.cad-library-page .cad-packed-grid .cad-card{height:max-content;align-self:start}.cad-library-page .cad-packed-grid .cad-image{max-height:none}.cad-library-page .cad-packed-grid .cad-image img{width:100%;height:100%;max-height:none}
@media(max-width:650px){.sketchbook-carousel{width:100%;max-width:none}.sketchbook-carousel-row{grid-template-columns:22px minmax(0,1fr) 22px;gap:4px}.sketchbook-arrow{width:22px}.sketchbook-slides{gap:12px}}
