:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#2b2318;text-rendering:optimizelegibility;--hand:"Caveat", ui-serif, Georgia, cursive;--accent:#a8460f;--accent-soft:#a8460f38;--ink:#2b2318;--paper:#f4e7c4;--paper-panel:#faf1d9;--rule:#78602829;--margin-rule:#a8460f4d;--sticky:#f9dd8b;--sticky-edge:#8c5c0c47;--mark-yellow:#f7cd3d9e;--mark-pink:#e8829c80;--mark-green:#81bd7c80;background:#f4e7c4;font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif;font-size:16px;line-height:1.65}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-height:100vh;color:inherit;margin:0}button,a,input,textarea{font:inherit}a{color:inherit;text-decoration:none}.page-shell{background-image:repeating-linear-gradient(var(--paper) 0, var(--paper) 2.15rem, var(--rule) 2.15rem, var(--rule) calc(2.15rem + 1px));max-width:88rem;margin:0 auto;padding:3rem 1.5rem 5rem 4.5rem;position:relative}.page-shell:before{content:"";background:var(--margin-rule);pointer-events:none;width:1px;position:absolute;top:0;bottom:0;left:3rem}.topbar{justify-content:space-between;align-items:center;gap:3rem;margin-bottom:4rem;display:flex}.brand{flex-direction:column;gap:.35rem;display:flex}.brand-name{font-family:var(--hand);color:var(--accent);font-size:clamp(1.9rem,2.6vw,2.4rem);font-weight:700;display:inline-block;transform:rotate(-2deg)}.brand-subtitle{color:#6b5a3c;font-size:.95rem}.topnav{font-family:var(--hand);color:#5a4a30;flex-wrap:wrap;gap:.5rem 1.65rem;font-size:1.35rem;font-weight:600;display:flex}.topnav a{transition:color .18s;position:relative}.topnav a:after{content:"";background:var(--accent);width:0;height:2px;margin-top:.45rem;transition:width .22s;display:block}.topnav a:hover{color:var(--accent)}.topnav a:hover:after{width:100%}.hero{border-bottom:1px dashed #2b231833;padding-bottom:4rem}.hero-inner{grid-template-columns:1.1fr .9fr;align-items:center;gap:3rem;display:grid}.hero-copy{flex-direction:column;gap:1.5rem;display:flex}.hero-figure{background:#fbf8ee;border-radius:.15rem;margin:0;padding:.9rem .9rem 2.75rem;position:relative;transform:rotate(-2.2deg);box-shadow:0 2px 3px #2b231814,0 22px 40px #2b231847,0 4px 10px #2b231829}.hero-figure img{aspect-ratio:1;object-fit:cover;filter:saturate(1.04)contrast(1.02);width:100%;height:auto;display:block}.hero-figure figcaption{font-family:var(--hand);color:#6b6255;text-align:center;margin-top:.9rem;font-size:1.25rem}.eyebrow{font-family:var(--hand);letter-spacing:.01em;color:#8a6a2f;margin:0 0 .6rem;font-size:1.1rem;font-weight:600}h1{font-family:var(--hand);color:var(--ink);letter-spacing:-.01em;max-width:14ch;margin:0;font-size:clamp(3.4rem,7vw,6rem);font-weight:700;line-height:.98}.hero-text{max-width:44rem;color:var(--ink);margin:0;font-size:1.07rem;line-height:1.85}.hero-values{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.25rem;display:grid}.hero-values div{background:var(--paper-panel);border:1px solid #2b23181f;border-radius:.4rem;padding:1.35rem;box-shadow:0 10px 22px #2b231812}.hero-values p:last-child{color:var(--ink);margin:.55rem 0 0;font-size:.98rem}.section p,.section li{max-width:70ch;color:var(--ink);font-size:1rem;line-height:1.85}.cards{gap:1.5rem;display:grid}.cards article{border:1px solid var(--sticky-edge);background:var(--sticky);border-radius:.2rem;padding:1.9rem 1.75rem 1.6rem;transition:transform .24s,box-shadow .24s;position:relative;box-shadow:0 16px 30px #2b231824,0 2px 5px #2b231814}.cards article:before{content:"";background:#faf1d9cc;border:1px solid #2b231814;width:52px;height:20px;position:absolute;top:-11px;left:50%;transform:translate(-50%)rotate(-2.5deg);box-shadow:0 2px 4px #2b23181f}.cards article:after{content:"";border-top:0 solid #0000;border-bottom:16px solid #2b231824;border-left:16px solid #0000;border-right:0 solid #0000;width:0;height:0;position:absolute;bottom:0;right:0}.cards article:nth-child(3n+1){transform:rotate(-.8deg)}.cards article:nth-child(3n+2){transform:rotate(.6deg)}.cards article:nth-child(3n+3){transform:rotate(-.3deg)}.cards article:hover{transform:rotate(0)translateY(-4px);box-shadow:0 24px 46px #2b231833,0 4px 8px #2b23181a}.cards h3{font-family:var(--hand);color:var(--accent);letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.55rem;font-weight:600}.card-link{font-family:var(--hand);color:var(--accent);border-bottom:1px dashed;margin-top:.85rem;padding-bottom:.05rem;font-size:1.2rem;font-weight:600;display:inline-block}.experiment-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.5rem;margin-top:1.5rem;display:grid}.experiment-card{border:1px solid var(--sticky-edge);background:var(--sticky);border-radius:.2rem;flex-direction:column;padding:1.75rem 1.5rem 1.5rem;transition:transform .22s,box-shadow .22s;display:flex;position:relative;box-shadow:0 16px 30px #2b231824,0 2px 5px #2b231814}.experiment-card:before{content:"";background:#faf1d9cc;border:1px solid #2b231814;width:52px;height:20px;position:absolute;top:-11px;left:50%;transform:translate(-50%)rotate(-2.5deg);box-shadow:0 2px 4px #2b23181f}.experiment-card:after{content:"";border-top:0 solid #0000;border-bottom:14px solid #2b231824;border-left:14px solid #0000;border-right:0 solid #0000;width:0;height:0;position:absolute;bottom:0;right:0}.experiment-card:nth-child(3n+1){transform:rotate(-.7deg)}.experiment-card:nth-child(3n+2){transform:rotate(.55deg)}.experiment-card:nth-child(3n+3){transform:rotate(-.35deg)}.experiment-card:hover{transform:rotate(0)translateY(-4px);box-shadow:0 24px 46px #2b231833,0 4px 8px #2b23181a}.experiment-icon{object-fit:contain;width:42px;height:42px;margin-bottom:.75rem}.experiment-name{font-family:var(--hand);color:var(--accent);margin-bottom:.4rem;font-size:1.45rem;font-weight:700}.experiment-detail{color:#5a4a30;font-size:.95rem;line-height:1.6}.contact-list{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.contact-list li{background:var(--paper-panel);border:1px solid #2b23181f;border-radius:.4rem;align-items:flex-start;gap:.85rem;min-width:0;padding:1.1rem 1.35rem;display:flex;box-shadow:0 10px 22px #2b231812}.contact-icon{width:22px;height:22px;color:var(--accent);flex-shrink:0;margin-top:.2rem}.contact-text{flex-direction:column;gap:.3rem;min-width:0;display:flex}.contact-list a{font-family:var(--hand);color:var(--ink);overflow-wrap:anywhere;word-break:break-word;font-size:1.4rem;font-weight:600;line-height:1.15}.contact-list a:hover{text-decoration:underline}.contact-form-wrap{border:1px solid var(--sticky-edge);background:var(--sticky);border-radius:.2rem;max-width:34rem;margin-top:2.5rem;padding:1.9rem 1.9rem 1.7rem;position:relative;box-shadow:0 16px 30px #2b231824,0 2px 5px #2b231814}.contact-form-wrap:before{content:"";background:#faf1d9cc;border:1px solid #2b231814;width:52px;height:20px;position:absolute;top:-11px;left:2.5rem;transform:rotate(-2.5deg);box-shadow:0 2px 4px #2b23181f}.contact-form-wrap .note-title{margin:0 0 1.1rem}.contact-form{flex-direction:column;gap:1.35rem;display:flex}.hp-field{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field input{color:var(--ink);background:0 0;border:none;border-bottom:1px dashed #2b231866;border-radius:0;padding:.35rem .1rem;font-family:inherit;font-size:1.05rem;transition:border-color .16s}.form-field input:focus{border-bottom-style:solid;border-bottom-color:var(--accent);outline:none}.form-field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--sticky) inset;box-shadow:0 0 0 1000px var(--sticky) inset;transition:background-color 99999s ease-in-out}.form-field input:-webkit-autofill:hover{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--sticky) inset;box-shadow:0 0 0 1000px var(--sticky) inset;transition:background-color 99999s ease-in-out}.form-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--sticky) inset;box-shadow:0 0 0 1000px var(--sticky) inset;transition:background-color 99999s ease-in-out}.form-field input:autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--sticky) inset;box-shadow:0 0 0 1000px var(--sticky) inset;transition:background-color 99999s ease-in-out}.form-field textarea{color:var(--ink);resize:vertical;background:#fff6;border:1px dashed #2b231866;border-radius:.3rem;padding:.65rem .8rem;font-family:inherit;font-size:1.05rem;line-height:1.6;transition:border-color .16s,box-shadow .16s}.form-field textarea:focus{border-style:solid;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-submit{background:var(--accent);color:var(--paper-panel);font-family:var(--hand);cursor:pointer;border:none;border-radius:999px;align-self:flex-start;padding:.6rem 1.6rem;font-size:1.3rem;font-weight:700;transition:transform .16s,box-shadow .16s;box-shadow:0 10px 20px #a8460f47}.form-submit:hover:not(:disabled){transform:rotate(-1deg)translateY(-2px);box-shadow:0 14px 26px #a8460f57}.form-submit:disabled{opacity:.6;cursor:default}.form-error{color:#a12b1f;font-size:.92rem}.form-success{font-family:var(--hand);color:var(--ink);background-image:linear-gradient(var(--mark-yellow), var(--mark-yellow));background-position:0 78%;background-repeat:no-repeat;background-size:100% 55%;margin-top:.25rem;padding:0 .15rem;font-size:1.45rem;font-weight:600;display:inline-block}.ask-me{color:var(--ink);margin-top:1.5rem;font-size:.95rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.5rem;display:grid}.skills-group{background:var(--paper-panel);border:1px solid #2b23181f;border-radius:.4rem;padding:1.1rem 1.35rem;box-shadow:0 10px 22px #2b231812}.skill-chips{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.skill-chip{border:1px solid var(--sticky-edge);background:var(--sticky);color:var(--ink);border-radius:999px;padding:.3rem .8rem;font-size:.88rem;font-weight:600}.skill-chip-quiet{color:#6b5a3c;background:0 0;border:1px dashed #2b23184d;font-style:italic;font-weight:500}.cert-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.75rem;margin-top:1.5rem;display:grid}.cert-card{background:#fbf8ee;border-radius:.15rem;padding:.9rem .9rem 1.1rem;transition:transform .22s,box-shadow .22s;display:block;box-shadow:0 2px 3px #2b231814,0 18px 34px #2b231838,0 4px 9px #2b231824}.cert-card:nth-child(3n+1){transform:rotate(-1.4deg)}.cert-card:nth-child(3n+2){transform:rotate(1.1deg)}.cert-card:nth-child(3n+3){transform:rotate(-.6deg)}.cert-card:hover{transform:rotate(0)translateY(-4px);box-shadow:0 2px 3px #2b231814,0 26px 46px #2b231842,0 6px 12px #2b231829}.cert-card img{object-fit:cover;object-position:top;border:1px solid #2b23181f;width:100%;height:12rem;display:block}.cert-caption{text-align:center;margin-top:.75rem}.cert-name{font-family:var(--hand);color:var(--accent);font-size:1.3rem;font-weight:700;display:block}.edu-card{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;display:flex}.edu-body{flex:1;min-width:0}.degree-thumb{flex-direction:column;flex-shrink:0;align-items:center;width:4.75rem;transition:transform .2s;display:flex;transform:rotate(3deg)}.degree-thumb:hover{transform:rotate(0)}.degree-thumb img{object-fit:cover;object-position:top;background:#fff;border:1px solid #2b231826;width:4.75rem;height:4.75rem;padding:.25rem;box-shadow:0 6px 14px #2b23182e}.degree-thumb span{font-family:var(--hand);color:var(--accent);margin-top:.35rem;font-size:1rem;font-weight:600}.cert-detail{color:#6b5a3c;margin-top:.15rem;font-size:.85rem;display:block}.course-link{border-bottom:1px dashed;font-weight:600}.course-meta{color:#6b5a3c;margin-top:.1rem;font-size:.82rem;display:block}.publication{border-top:1px dashed #2b231838;margin-top:1.5rem;padding-top:1.25rem}.publication p{margin:.35rem 0 0}.pub-links{flex-wrap:wrap;gap:.4rem 1.25rem;display:flex}.pub-links .card-link{margin-top:.85rem}.experience-note{color:#5a4a30;border-left:2px dashed #2b231847;margin:.5rem 0 1rem;padding-left:.85rem;font-style:italic}.cards ul,.note-card ul{margin:.75rem 0 0;padding-left:1.1rem}.cards ul li,.note-card ul li{margin-bottom:.4rem}.mark{background-image:linear-gradient(var(--mark-yellow), var(--mark-yellow));background-position:0 78%;background-repeat:no-repeat;background-size:0% 60%;padding:0 .1em;font-weight:600;transition:background-size .9s cubic-bezier(.22,1,.36,1)}.mark-pink{background-image:linear-gradient(var(--mark-pink), var(--mark-pink))}.mark-green{background-image:linear-gradient(var(--mark-green), var(--mark-green))}.reveal.is-visible .mark{background-size:100% 60%}.annotate{font-family:var(--hand);color:var(--accent);font-size:1.32rem;font-weight:600;line-height:1}.highlight-row{flex-wrap:wrap;gap:.4rem 1.35rem;margin:.9rem 0 0;display:flex}.highlight-row .annotate:nth-child(odd){display:inline-block;transform:rotate(-1.5deg)}.highlight-row .annotate:nth-child(2n){display:inline-block;transform:rotate(1.2deg)}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}.cards article,.mark{transition:none}}.section{border-top:1px dashed #2b231833;margin-top:4rem;padding-top:2.5rem}.section-heading{align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.section-index{font-family:var(--hand);color:var(--accent);font-size:1.9rem;font-weight:600;display:inline-block;transform:rotate(-4deg)}.section h2{font-family:var(--hand);color:var(--ink);margin:0;font-size:clamp(2.3rem,3.4vw,3.1rem);font-weight:700;line-height:1}.section h3{font-family:var(--hand);color:var(--accent);margin:0 0 .5rem;font-size:1.75rem;font-weight:700}.split{grid-template-columns:1.5fr 1fr;align-items:start;gap:2rem;display:grid}.note-card{background:var(--paper-panel);border:1px solid #2b23181f;border-radius:.4rem;padding:1.75rem;box-shadow:0 10px 22px #2b231812}.note-title{font-family:var(--hand);color:var(--accent);margin:0 0 .5rem;font-size:1.35rem;font-weight:700}@media (width<=980px){.hero-inner{grid-template-columns:1fr}.hero-figure{width:min(100%,38rem);margin:0 auto}}@media (width<=900px){.topbar{flex-direction:column;align-items:flex-start}.hero{padding-bottom:2.5rem}.split{grid-template-columns:1fr}}@media (width<=640px){.page-shell{padding:2rem 1.25rem 3rem 2rem}.page-shell:before{left:.9rem}.topnav{gap:1rem}h1{font-size:2.75rem}}@media print{*{transition:none!important;animation:none!important}body{background:#fff}.page-shell{background-image:none;max-width:100%;padding:.5in .4in}.page-shell:before,.topnav,.brand-subtitle,.contact-form-wrap{display:none}.reveal{opacity:1!important;transform:none!important}.mark{background-size:100% 60%!important}.section{break-inside:avoid;border-top:1px solid #ccc}.hero{border-bottom:1px solid #ccc;padding-bottom:1.25rem}.hero-figure{box-shadow:none;border:1px solid #ccc;transform:none}.hero-figure:before,.hero-figure:after{display:none}.cards article,.experiment-card,.cert-card,.hero-values div,.contact-list li,.skills-group,.note-card{break-inside:avoid;box-shadow:none!important;background:#fff!important;border:1px solid #ccc!important;transform:none!important}.cards article:before,.cards article:after,.experiment-card:before,.experiment-card:after,.cert-card:before{display:none!important}.skill-chip,.skill-chip-quiet{background:#fff!important;border:1px solid #999!important}.card-link,.course-link{color:var(--accent)!important}.cert-grid,.experiment-grid{grid-template-columns:repeat(2,1fr)}.degree-thumb img,.cert-card img{box-shadow:none}}
