:root{--paper:#f6f4ec;--ink:#273c32;--muted:#626b61;--line:#d8dcd0;--accent:#b9ce70;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #81943e;outline-offset:6px}::selection{background:var(--accent)}.wrap{width:min(1240px,calc(100% - 112px));margin:auto}header{padding:24px 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:26px;letter-spacing:-1.5px;font-weight:700}.brand span{font-weight:400;margin-left:5px}nav{display:flex;gap:34px;font-size:13px}nav a:hover,.text-link:hover,.contact-links a:hover{color:#718331}.nav-contact{font-size:13px;border-bottom:1px solid var(--ink);padding:8px 0}.nav-contact span{margin-left:28px}.eyebrow,.label,.date,.visual-caption{font-size:10px;letter-spacing:1.7px;font-weight:600}.eyebrow{display:flex;align-items:center;gap:9px}.dot{width:7px;height:7px;background:#798e43;border-radius:50%}.hero{padding-top:58px}.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;align-items:center}h1{font-size:clamp(50px,5.8vw,84px);line-height:1.04;font-weight:400;letter-spacing:-4px;margin:32px 0 26px}em{font-family:var(--serif);font-weight:400}h1 em{color:#647448}.intro{font-size:16px;color:var(--muted);max-width:530px;line-height:1.8}.actions{display:flex;align-items:center;gap:28px;margin:32px 0 40px}.button{display:flex;gap:35px;align-items:center;padding:15px 23px;background:var(--ink);color:var(--paper);font-size:13px;border-radius:3px;transition:background .2s}.button:hover{background:#49654d}.text-link{font-size:12px;border-bottom:1px solid var(--line);padding-bottom:5px}.graphic{position:relative;aspect-ratio:1/1.05;background:#e9ebdf;border:1px solid #d9decc;overflow:hidden;border-radius:180px 180px 4px 4px}.graphic-top,.graphic-bottom{position:absolute;font-size:9px;letter-spacing:1.5px;z-index:2}.graphic-top{top:40px;left:40px;right:40px;display:flex;justify-content:space-between}.graphic-top span{color:var(--muted)}.graphic-bottom{bottom:27px;text-align:center;left:0;right:0}.circle{width:60%;height:57%;border-radius:50%;position:absolute;border:1px solid #748868;background:#a8bf7629;display:flex;justify-content:center}.circle span{font-size:10px;letter-spacing:2px;position:absolute}.c1{left:20%;top:16%}.c1 span{top:18%}.c2{left:3%;top:35%;background:#899e7429}.c2 span{left:20%;top:48%}.c3{right:3%;top:35%;background:#c7d39533}.c3 span{right:12%;top:48%}.intersection{position:absolute;top:46%;left:38%;font-family:var(--serif);font-size:25px;line-height:1.15;text-align:center;z-index:1}.intersection span{display:block;font-size:30px;margin-top:8px}.hero-foot{border-top:1px solid var(--line);padding:22px 0;margin-top:24px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.4px}.muted{color:var(--muted);margin-left:12px}.ribbon{background:var(--ink);color:#e3e9d8}.ribbon .wrap{display:flex;justify-content:space-between;padding:22px 0;font-size:12px}.ribbon span:before{content:'✳';color:var(--accent);margin-right:18px}.section{padding-top:90px;padding-bottom:90px}.section-top{display:flex;justify-content:space-between;align-items:center}.small{font-size:11px;color:var(--muted)}h2{font-size:clamp(34px,4vw,54px);font-weight:400;line-height:1.15;letter-spacing:-1.8px;margin:20px 0 42px}h2 em{color:#657548}h3{font-size:27px;line-height:1.25;letter-spacing:-.7px;font-weight:400;margin:18px 0}p{margin:0 0 16px}.featured{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid var(--line);border-radius:5px;overflow:hidden}.project-copy{padding:42px}.project-copy p,.research p,.project-pair p,.about p{font-size:13px;line-height:1.8;color:var(--muted)}.label{color:#67745a;letter-spacing:1.2px;font-size:9px}.clean-list{padding:0;list-style:none;font-size:12px;color:var(--muted)}.clean-list li{padding:9px 0 9px 20px;position:relative}.clean-list li:before{content:'↗';position:absolute;left:0}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0}.tags span{font-size:9px;padding:5px 9px;border:1px solid var(--line);border-radius:3px}.system-visual{background:#e6eadb;padding:44px;display:flex;flex-direction:column;justify-content:center}.visual-caption{font-size:8px;line-height:1.7;margin-bottom:24px}.flow-row{display:flex;align-items:center;gap:20px;border-top:1px solid #c6cdb9;padding:18px 0}.flow-row>span{font-size:10px;color:#748463}.flow-row div{font-size:23px}.flow-row small{display:block;font-size:10px;color:#6b755f}.flow-row b{margin-left:auto;font-size:24px;font-weight:400}.flow-row.last{color:#495f2a}.system-visual>p{font-family:var(--serif);font-style:italic;font-size:15px;margin-top:22px}details{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}summary{cursor:pointer;font-size:11px;list-style:none;display:flex;justify-content:space-between;gap:20px}summary::-webkit-details-marker{display:none}summary span{font-size:18px;line-height:1}details[open] summary{margin-bottom:18px}details[open] summary span{transform:rotate(45deg)}details p{font-size:12px!important}.research{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;margin:24px 0;padding:42px;border:1px solid var(--line);border-radius:5px}.research-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-content:center}.research-stats div{border-top:1px solid var(--line);padding:16px 0}.research-stats div:first-child{grid-column:1/-1}.research-stats strong{display:block;font-size:48px;font-family:var(--serif);font-weight:400;line-height:1.2}.research-stats span{font-size:10px;color:var(--muted)}.research-stats>p{grid-column:1/-1;font-size:10px}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-pair article{padding:35px;background:#edeee4;border:1px solid var(--line);border-radius:5px}.experience-bg{background:#eaede3}.timeline article{border-top:1px solid #cdd4c4;display:grid;grid-template-columns:190px 1fr 40px;gap:32px;padding:30px 0}.date{font-size:9px;color:var(--muted);padding-top:7px;letter-spacing:1px}.timeline h3{font-size:20px;margin:0 0 8px}.timeline p{font-size:12px;color:var(--muted);max-width:680px}.timeline .company{color:#3f523e;font-size:11px}.role-index{font-family:var(--serif);font-size:24px;color:#9aa78b}.experience-note{border-top:1px solid #cdd4c4;padding-top:22px;font-size:11px;color:var(--muted);max-width:900px}.about{display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.education{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.education span{font-size:10px;color:var(--muted)}h4{font-size:13px;font-weight:600;margin:9px 0 5px}.education p{font-size:11px}.recognition{display:flex;flex-direction:column;gap:8px;font-size:10px;margin-top:20px;color:var(--muted)}.recognition span:before{content:'↗';margin-right:10px}.toolkit{background:#e9ecdf;padding:32px;height:fit-content;margin-top:44px;border-radius:4px}.toolkit h3{font-family:var(--serif);font-size:26px;margin:0 0 30px}.toolkit>div{border-top:1px solid #ced5c1;padding:14px 0}.toolkit p{font-size:11px}.contact{background:var(--ink);color:var(--paper);padding:70px 0 60px}.contact .eyebrow{color:#bbcaa1}.contact h2 em{color:#c6d794}.contact p{font-size:13px;color:#c1cabd;max-width:520px}.email{display:flex;justify-content:space-between;font-size:clamp(22px,3.5vw,46px);letter-spacing:-1px;border-bottom:1px solid #5a6c59;padding:20px 0;margin:20px 0}.email:hover{color:#d6e6b1}.contact-links{display:flex;gap:30px;align-items:center;flex-wrap:wrap;font-size:11px;margin-top:28px}.contact-links button{border:1px solid #7b8b70;color:inherit;background:transparent;padding:9px 14px;border-radius:3px;cursor:pointer;font:inherit}.contact-links button:hover{background:#465a42}#copy-status{font-size:10px}footer{display:flex;justify-content:space-between;align-items:center;padding-top:27px;padding-bottom:27px}footer>span,footer>a:last-child{font-size:10px;color:var(--muted)}.skip{position:absolute;left:20px;top:-70px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:12px}@media(min-width:1500px){.hero{padding-top:75px;padding-bottom:20px}}@media(max-width:1000px){.wrap{width:calc(100% - 64px)}header{padding:22px 32px}.hero-grid{gap:35px}h1{letter-spacing:-2.5px}.graphic{min-width:0}.graphic-top{left:28px;right:28px;font-size:7px}.intersection{font-size:21px}.actions{gap:15px}.button{gap:18px}.project-copy,.research{padding:28px}.system-visual{padding:28px}.about{gap:35px}.timeline article{grid-template-columns:150px 1fr 25px;gap:20px}}@media(max-width:700px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 40px)}header{padding:17px 20px;flex-wrap:wrap}.brand{font-size:23px}nav{order:3;width:100%;gap:24px;font-size:11px;padding-top:9px}.nav-contact{font-size:11px}.hero{padding-top:30px}.eyebrow{font-size:8px;letter-spacing:1.2px}.hero-grid{grid-template-columns:1fr;gap:0}h1{font-size:54px;margin-top:22px}.intro{font-size:14px}.actions{margin-bottom:32px;gap:23px}.button{padding:13px 16px;font-size:11px}.text-link{font-size:11px}.graphic{max-width:380px;width:100%;margin:0 auto 30px;aspect-ratio:1/1}.intersection{font-size:23px}.hero-foot{gap:14px;flex-direction:column;margin:0;font-size:9px;padding:18px 0}.muted{margin-left:5px}.ribbon .wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:10px;padding:18px 0}.ribbon span:before{margin-right:8px}.section{padding:55px 0}.section-top{align-items:flex-start}.small{max-width:140px;text-align:right;font-size:9px}h2{font-size:36px;letter-spacing:-1px;margin-bottom:30px}.featured,.research,.project-pair,.about{grid-template-columns:1fr}.project-copy,.research,.project-pair article{padding:24px}.featured .system-visual{padding:28px}.research{gap:22px}.research-stats strong{font-size:40px}.project-pair{gap:20px}.timeline article{grid-template-columns:1fr 25px;gap:10px;padding:24px 0}.date{grid-column:1/-1}.timeline h3{font-size:18px}.timeline article>div:nth-child(2){grid-column:1}.role-index{grid-column:2;grid-row:2}.about{gap:0}.toolkit{margin-top:28px;padding:24px}.education{gap:15px}.education h4{font-size:12px}.contact{padding:50px 0}.contact h2{font-size:35px}.email{font-size:22px;letter-spacing:-.6px}.contact-links{gap:18px;font-size:10px}footer{gap:15px;flex-wrap:wrap}footer .brand{width:100%}footer>span{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.graphic-top{top:65px;left:70px;right:70px}@media(max-width:1000px){.graphic-top{left:60px;right:60px;top:55px}}@media(max-width:700px){.graphic-top{left:65px;right:65px;top:50px}}
/* Motion follows the story; all content remains available without JavaScript. */
.reading-progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:100;background:transparent;pointer-events:none}.reading-progress span{display:block;width:100%;height:100%;background:#91a65d;transform:scaleX(0);transform-origin:left}.journey-dock{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:90;display:flex;gap:4px;align-items:center;padding:8px;background:#f6f4ecf2;border:1px solid #cbd2bf;border-radius:10px;box-shadow:0 8px 32px #253c3214;backdrop-filter:blur(14px);max-width:calc(100% - 24px)}.journey-title{font-size:8px;letter-spacing:1.6px;padding:0 12px;white-space:nowrap}.journey-dock a{padding:9px 12px;font-size:10px;white-space:nowrap;border-radius:5px;transition:background .3s,color .3s}.journey-dock a>span{font-size:8px;opacity:.6;margin-right:5px}.journey-dock a.current{background:var(--ink);color:var(--paper)}.journey-dock button{padding:9px 12px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);font-size:9px;white-space:nowrap;cursor:pointer}.scroll-cue{display:flex;gap:12px;align-items:center;font-size:8px;letter-spacing:1.6px;color:var(--muted);margin:20px 0}.scroll-line{height:30px;width:1px;background:var(--line);position:relative;overflow:hidden}.scroll-line:after{content:'';position:absolute;top:-10px;left:0;height:12px;width:1px;background:var(--ink);animation:scroll-drop 2s infinite}.hero h1,.hero .intro,.hero .actions,.hero .eyebrow{animation:hero-enter .9s cubic-bezier(.2,.7,.2,1) both}.hero h1{animation-delay:.1s}.hero .intro{animation-delay:.2s}.hero .actions{animation-delay:.3s}.graphic{animation:hero-enter 1.2s .2s both;transition:transform .4s;--tilt-x:0deg;--tilt-y:0deg;transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y))}.graphic .circle{animation:circle-breathe 8s ease-in-out infinite}.graphic .c2{animation-delay:-2.7s}.graphic .c3{animation-delay:-5.4s}.intersection>span{animation:compass 5s ease-in-out infinite}.graphic-bottom{background:#e9ebdf;padding:2px 5px;width:max-content;margin:auto;z-index:3}.button span{transition:transform .3s}.button:hover span{transform:translate(4px,4px)}.nav-contact:hover span,.email:hover span{display:inline-block;transform:translate(3px,-3px);transition:transform .3s}.motion-ready .reveal-item{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal-item.is-visible{opacity:1;transform:none}.flow-row{position:relative;transition:background .3s,padding .3s}.flow-row:hover{background:#d9e0c9;padding-left:8px;padding-right:8px}.flow-row b{transition:transform .3s}.flow-row:hover b{transform:translate(4px,4px)}.system-visual.in-view .flow-row{animation:flow-highlight 8s infinite;animation-delay:calc(var(--step)*2s)}.flow-row:nth-of-type(2){--step:0}.flow-row:nth-of-type(3){--step:1}.flow-row:nth-of-type(4){--step:2}.flow-row:nth-of-type(5){--step:3}.model-pipeline{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#e7ebdd;border:0!important;border-radius:5px;padding:15px!important}.model-pipeline span{font-size:9px;letter-spacing:1px;color:var(--ink)}.model-pipeline i{font-style:normal;color:#7c9147;animation:pipeline-pulse 2s infinite}.model-pipeline i:nth-of-type(2){animation-delay:1s}.research-stats div:nth-child(2){grid-column:1/-1}.research-stats div:first-child{border:0}.chapter-bridge{display:flex;gap:24px;align-items:center;padding:0 0 55px}.bridge-line{height:1px;background:var(--line);flex:1}.chapter-bridge p{font-size:11px;color:var(--muted);margin:0}.chapter-bridge em{font-size:22px;color:var(--ink)}.bridge-arrow{font-size:30px;animation:gentle-bob 3s infinite}.timeline article{position:relative;transition:background .3s}.timeline article:hover{background:#e0e6d7}.role-index{transition:color .3s,transform .3s}.timeline article:hover .role-index{color:#617746;transform:translateY(-4px)}.project-pair article{transition:transform .35s,box-shadow .35s}.project-pair article:hover{transform:translateY(-5px);box-shadow:0 14px 25px #253c320b}details[open]>p{animation:detail-enter .45s both}footer{padding-bottom:110px}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important}.motion-paused .reveal-item{opacity:1!important;transform:none!important}.motion-paused .graphic{transform:none!important}
@keyframes hero-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes circle-breathe{0%,100%{transform:scale(1)}50%{transform:scale(.94)}}@keyframes compass{0%,100%{transform:translate(0,0)}50%{transform:translate(4px,-4px)}}@keyframes scroll-drop{to{transform:translateY(45px)}}@keyframes gentle-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes pipeline-pulse{0%,100%{opacity:.35;transform:translateX(-2px)}50%{opacity:1;transform:translateX(3px)}}@keyframes flow-highlight{0%,24%{background:#d6dfc7}25%,100%{background:transparent}}@keyframes detail-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.journey-title{display:none}.journey-dock a{padding:8px;font-size:9px}.journey-dock button{font-size:8px;padding:8px}}@media(max-width:700px){.journey-dock{left:12px;right:12px;transform:none;justify-content:space-between;bottom:10px}.journey-dock a{font-size:0;padding:9px 12px}.journey-dock a>span{font-size:11px;margin:0;opacity:1}.journey-dock button{font-size:9px}.chapter-bridge{gap:15px;padding-bottom:35px}.chapter-bridge em{font-size:19px}.chapter-bridge p{font-size:10px}.bridge-line{max-width:70px}.graphic{transform:none!important}.scroll-cue{margin-top:0}.research-stats{gap:14px}footer{padding-bottom:95px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal-item{opacity:1;transform:none}.graphic{transform:none!important}}
.graphic{animation-fill-mode:backwards}
.soundtrack{position:fixed;right:18px;top:12px;z-index:95;display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid #cbd2bf;background:#f6f4ecf5;border-radius:8px;box-shadow:0 4px 20px #253c320e;font-size:9px}.soundtrack button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--ink);font-size:10px;cursor:pointer;padding:4px}.soundtrack label{font-size:8px;color:var(--muted)}.soundtrack input{width:56px;accent-color:#657548}.sound-bars{display:flex;height:16px;align-items:center;gap:2px}.sound-bars i{display:block;width:2px;height:4px;background:#71863d}.soundtrack.is-playing .sound-bars i{animation:music-bars .8s ease-in-out infinite alternate}.sound-bars i:nth-child(2){animation-delay:-.2s!important}.sound-bars i:nth-child(3){animation-delay:-.5s!important}.sound-bars i:nth-child(4){animation-delay:-.3s!important}#soundtrack-status:empty{display:none}header{padding-top:62px}.work-media{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;margin:24px 0}.photo-story,.video-story{margin:0;min-width:0}.photo-open{display:block;position:relative;width:100%;border:0;background:#e1e5d8;padding:0;cursor:zoom-in;overflow:hidden;border-radius:5px;text-align:left}.photo-open img{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:4/3;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.photo-open:hover img{transform:scale(1.035)}.photo-enlarge{position:absolute;right:14px;bottom:14px;background:#f6f4eced;color:var(--ink);width:30px;height:30px;text-align:center;line-height:30px;border-radius:50%;font-size:17px}.photo-story figcaption{font-size:10px;color:var(--muted);padding:11px 0}.video-story video{width:100%;aspect-ratio:16/9;background:#152219;border-radius:5px;display:block;object-fit:contain}.video-story figcaption{font-size:10px;color:var(--muted);padding:12px 0;line-height:1.7}.video-story figcaption span{display:block;font-size:12px;color:var(--ink);margin-bottom:3px}.work-media .photo-open img{aspect-ratio:16/9}.venture-album{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px;align-items:start}.album-intro{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:30px;border-top:1px solid var(--line);padding-top:30px}.album-intro .eyebrow{grid-column:1/-1}.album-intro h3{font-size:32px;margin:6px 0 12px}.album-intro>p:last-child{align-self:center;font-size:12px;color:var(--muted);max-width:340px}.venture-album .photo-open img{aspect-ratio:3/4}.venture-album .photo-story:first-of-type img{object-position:48% center}.event-album{grid-column:2;display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin:12px 0}.event-album .photo-open img{aspect-ratio:4/3}.event-album .photo-story:last-child img{object-fit:contain;background:#dedfd6}.about .video-story{margin-top:26px}#photo-dialog{max-width:min(1100px,94vw);width:fit-content;max-height:94vh;padding:20px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;overflow:auto}#photo-dialog::backdrop{background:#0a160ee0;backdrop-filter:blur(7px)}#photo-full{display:block;max-width:100%;max-height:76vh;width:auto;height:auto;margin:auto;object-fit:contain}#photo-caption{font-size:12px;padding:12px 0;margin:0}#photo-close{display:block;margin:0 0 14px auto;background:var(--ink);color:var(--paper);border:0;padding:9px 16px;border-radius:4px;cursor:pointer}body.photo-viewing{overflow:hidden}@keyframes music-bars{from{height:3px}to{height:15px}}@media(max-width:700px){.soundtrack{right:12px;top:9px;padding:6px 9px}.soundtrack label{display:none}header{padding-top:58px}.work-media{grid-template-columns:1fr;gap:18px}.work-media .photo-open img{aspect-ratio:16/10}.venture-album{grid-template-columns:1fr 1fr;gap:15px;margin-top:30px}.venture-album .photo-story:first-of-type{grid-column:1/-1}.venture-album .photo-story:first-of-type img{aspect-ratio:4/3}.album-intro{grid-template-columns:1fr;gap:0}.album-intro h3{font-size:28px}.album-intro>p:last-child{margin-top:8px}.event-album{grid-column:1/-1;gap:12px}.photo-story figcaption{font-size:9px}.soundtrack #soundtrack-status{max-width:100px;font-size:8px}}
.progress-story{display:grid;grid-template-columns:1fr 340px;gap:45px;align-items:center;margin:24px 0;background:#e7ebdf;border:1px solid var(--line);border-radius:5px;padding:36px}.progress-copy h3{font-size:38px}.progress-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:480px;line-height:1.8}.progress-note{font-size:9px;color:#6d7b60;letter-spacing:.5px}.progress-video video{aspect-ratio:9/16;max-height:520px;background:#111a13}.progress-video figcaption{padding-bottom:0}@media(max-width:700px){.progress-story{grid-template-columns:1fr;padding:24px;gap:20px}.progress-copy h3{font-size:30px}.progress-video{max-width:300px;width:100%;margin:auto}.progress-video video{max-height:480px}}
.profile-graphic{border-radius:150px 150px 5px 5px;aspect-ratio:3/4;background:#ded6c1;overflow:hidden}.profile-graphic .graphic-top,.profile-graphic .circle,.profile-graphic .intersection,.profile-graphic .graphic-bottom{display:none}.hero-portrait{height:100%;border-radius:inherit}.hero-portrait img{aspect-ratio:auto;height:100%;object-fit:cover;object-position:50% 40%}.portrait-caption{position:absolute;bottom:0;left:0;right:0;padding:55px 24px 22px;background:linear-gradient(transparent,#17241bd9);color:#f6f4ec;font-family:var(--serif);font-size:25px}.portrait-caption small{display:block;font-family:Arial,sans-serif;font-size:10px;margin-top:4px}.hero-portrait .photo-enlarge{bottom:30px}.undergraduate-photo{margin-top:25px;max-width:380px}.undergraduate-photo img{aspect-ratio:3/4;object-position:50% 45%}.website-showcase{margin:45px 0 20px}.website-showcase>h3{font-size:35px}.website-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.website-card{border:1px solid var(--line);border-radius:7px;overflow:hidden;display:block;transition:transform .3s,box-shadow .3s}.website-card:hover{transform:translateY(-5px);box-shadow:0 16px 30px #273c3212}.browser-strip{display:flex;align-items:center;gap:14px;font-size:9px;padding:12px 16px;background:#e9ece2;color:#64705d}.browser-strip>span:first-child{letter-spacing:3px;font-size:7px}.browser-strip b{margin-left:auto;font-size:16px;font-weight:400}.website-art{padding:32px;min-height:240px;display:flex;flex-direction:column;justify-content:center}.ftd-web .website-art{background:#151515;color:#f4f2e8}.website-art .web-status{font-size:8px;letter-spacing:1.8px;opacity:.65;margin-bottom:24px}.website-art strong{font-size:40px;line-height:1;font-weight:700;letter-spacing:-1.5px}.ftd-web strong>span{color:#ee493e}.website-art p{font-size:10px;margin:20px 0 0;opacity:.7}.horse-web .website-art{background:#dee5cc}.horse-web strong{font-weight:400;font-size:36px;line-height:1.15}.website-caption{padding:20px 24px}.website-caption h4{margin-top:0;font-size:15px}.website-caption p{font-size:11px;color:var(--muted);margin:7px 0 15px}.website-caption>span{font-size:11px}.soundtrack{width:290px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:8px 10px;right:20px;top:12px;border:1px solid #8b9b70;border-radius:12px;background:#f6f4ecfa;box-shadow:0 8px 30px #273c3220}.music-heading{grid-row:1;grid-column:1/-1;font-size:8px;letter-spacing:1.4px;color:var(--muted)}.soundtrack button{grid-row:2;grid-column:1/-1;min-height:48px;justify-content:center;gap:15px;font-size:17px;font-weight:600;background:var(--ink);color:var(--paper);border-radius:7px;padding:10px 14px}.soundtrack button:hover{background:#456044}.soundtrack .sound-bars i{background:#c8d99b}.soundtrack label{grid-row:3;font-size:9px}.soundtrack input{grid-row:3;width:100px;justify-self:end}#soundtrack-symbol{font-size:21px;line-height:1}#soundtrack-status{grid-column:1/-1;font-size:9px;text-align:center;margin:0}header{padding-top:45px;padding-bottom:65px;padding-right:340px}header .nav-contact{display:none}@media(max-width:1000px){.soundtrack{width:255px}.soundtrack button{font-size:15px}header{padding-right:305px;flex-wrap:wrap}header nav{gap:20px}}@media(max-width:700px){.soundtrack{position:fixed;left:12px;right:12px;top:9px;width:auto;grid-template-columns:1fr 110px;gap:6px 10px;padding:9px 12px}.music-heading{grid-column:1;grid-row:1}.soundtrack button{grid-column:1;grid-row:2;min-height:44px;font-size:16px}.soundtrack label{display:block;grid-column:2;grid-row:1;text-align:right}.soundtrack input{grid-column:2;grid-row:2;width:100px}.soundtrack #soundtrack-status{grid-column:1/-1;max-width:none;font-size:9px}.soundtrack:has(#soundtrack-status:empty){padding-bottom:9px}header{padding:133px 20px 17px}.profile-graphic{aspect-ratio:3/4;max-width:350px}.website-grid{grid-template-columns:1fr;gap:20px}.website-art{min-height:220px;padding:27px}.website-art strong{font-size:36px}.browser-strip{gap:10px;font-size:8px}.website-showcase>h3{font-size:30px}.portrait-caption{font-size:23px}.undergraduate-photo{max-width:100%}}
.personal-carousel{aspect-ratio:1/1.13;border-radius:16px;background:#e9ecdf;overflow:hidden;animation:none;transform:none!important}.carousel-slides{position:absolute;inset:0 0 56px}.personal-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s;pointer-events:none}.personal-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}.personal-carousel .hero-portrait{border-radius:0;height:100%;background:#e9ecdf}.personal-carousel .hero-portrait img{object-fit:contain;object-position:center;width:100%;height:calc(100% - 85px)}.personal-carousel .hero-portrait:hover img{transform:scale(1.015)}.personal-carousel .portrait-caption{height:85px;padding:13px 18px;background:#e9ecdf;color:var(--ink);font-size:22px;line-height:1.2}.personal-carousel .portrait-caption small{margin-top:7px;font-size:10px;color:var(--muted);line-height:1.5}.personal-carousel .photo-enlarge{bottom:100px}.carousel-controls{position:absolute;bottom:0;left:0;right:0;z-index:3;min-height:56px;display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-top:1px solid #ccd3bf;gap:4px}.carousel-controls button{border:0;background:transparent;color:var(--ink);cursor:pointer;min-width:32px;min-height:40px;border-radius:5px;font-size:17px}.carousel-controls button:hover{background:#d7dfc8}.carousel-controls #carousel-toggle{font-size:10px;min-width:72px;padding:0 6px}.carousel-dots{display:flex;gap:0}.carousel-dots button{min-width:24px;width:24px;padding:0;display:grid;place-items:center}.carousel-dots button span{width:6px;height:6px;background:#a7b393;border-radius:50%;transition:background .3s,transform .3s}.carousel-dots button[aria-pressed="true"] span{background:var(--ink);transform:scale(1.4)}#carousel-count{font-size:9px;white-space:nowrap;color:var(--muted)}@media(max-width:700px){.personal-carousel{max-width:390px;width:100%;aspect-ratio:1/1.22}.personal-carousel .portrait-caption{font-size:20px}.carousel-controls{padding:6px 8px;gap:2px}.carousel-dots button{min-width:23px;width:23px}.carousel-controls #carousel-toggle{font-size:9px;min-width:68px}}@media(prefers-reduced-motion:reduce){.personal-slide{transition:none}}
