.site-shell{min-height:100vh;overflow:clip}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(23,38,36,.08);background:#f8f4ede0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.header-inner{width:min(calc(100% - 3rem),var(--content));min-height:76px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:inline-flex;align-items:center;gap:.75rem;color:var(--ink);text-decoration:none}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:.35rem;background:var(--accent-900);color:#fff;font-family:var(--serif);font-size:.82rem;letter-spacing:.04em}.brand-name{font-size:.86rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.site-header nav{display:flex;align-items:center;gap:clamp(.8rem,2vw,1.8rem)}.site-header nav a{color:var(--ink-soft);font-size:.92rem;font-weight:700;text-decoration:none}.site-header nav a:hover{color:var(--accent-700)}.site-header .nav-resume{padding:.5rem .85rem;border:1px solid var(--line);border-radius:.35rem;color:var(--ink)}@media(max-width:720px){.header-inner{width:calc(100% - 2rem);min-height:68px}.brand-name{max-width:145px;line-height:1.15}.site-header nav a:not(.nav-resume){display:none}}.hero{min-height:min(820px,calc(100vh - 76px));padding-block:clamp(4rem,9vw,8rem);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:center;gap:clamp(3rem,8vw,7rem)}.hero-copy h1{margin:0;font-family:var(--serif);font-size:clamp(3.9rem,8vw,7.6rem);font-weight:500;letter-spacing:-.065em;line-height:.82}.name-aside{margin:1.25rem 0 0;color:var(--coral);font-family:var(--serif);font-size:1.08rem;font-style:italic}.hero-intro{max-width:640px;margin:1.8rem 0 0;color:var(--ink-soft);font-size:clamp(1.08rem,1.8vw,1.35rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.social-links{display:flex;gap:.65rem;margin-top:2rem}.social-links a{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--line);border-radius:.4rem;color:var(--ink-soft);font-size:1.1rem;text-decoration:none;transition:color .16s ease,border-color .16s ease,transform .16s ease}.social-links a:hover{border-color:var(--accent-700);color:var(--accent-700);transform:translateY(-2px)}.hero-visual{position:relative;width:min(100%,360px);justify-self:end}.portrait-frame{position:relative;z-index:1;overflow:hidden;border:10px solid var(--surface);border-radius:.65rem;box-shadow:var(--shadow-lg)}.portrait-frame picture{display:block}.profile-image{width:100%;height:auto;aspect-ratio:5 / 6;object-fit:cover;object-position:50% center}.portrait-caption{position:relative;z-index:2;margin:1.1rem 0 0;padding-top:.8rem;border-top:1px solid var(--line);color:var(--ink-soft);font-family:var(--serif);font-size:.94rem;font-style:italic;text-align:right}.about-section,.work-section,.contact-section{scroll-margin-top:5rem}.about-section{padding-block:clamp(5rem,10vw,9rem);border-top:1px solid var(--line);background:var(--surface)}.work-section{padding-block:clamp(5rem,10vw,9rem);background:var(--paper-deep)}.contact-section{padding-block:clamp(5rem,10vw,8rem);background:var(--accent-900)}@media(max-width:840px){.hero{min-height:auto;grid-template-columns:1fr;padding-block:4rem 5rem}.hero-copy h1{font-size:clamp(3.6rem,17vw,6.1rem)}.hero-visual{width:min(82vw,340px);margin-inline:auto;justify-self:center}}.portfolio-heading{margin-bottom:3.5rem}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.project-card{min-width:0;overflow:hidden;display:grid;grid-template-rows:auto 1fr;border:1px solid rgba(23,38,36,.11);border-radius:.7rem;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.project-card--featured{grid-column:1 / -1;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);grid-template-rows:none}.project-card--featured .project-image-link{height:360px}.project-card--featured .project-content{justify-content:center}.project-image-link{height:220px;padding:1rem;display:grid;overflow:hidden;place-items:center}.project-image-link img{width:auto;height:auto;max-width:90%;max-height:190px;object-fit:contain;transition:transform .3s ease}.project-image-link--guidewise{background:#e5c9ab}.project-image-link--alkemi{padding:0;background:#e9f4fb}.project-image-link--alkemi img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.project-image-link--ledger{padding:0;background:#e8e3da}.project-image-link--ledger img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:left top}.project-card:hover .project-image-link img{transform:scale(1.025)}.project-content{padding:clamp(1.35rem,3vw,2rem);display:flex;flex-direction:column}.project-title-row{display:flex;align-items:center;gap:.7rem}.project-title-row h3{margin:0;font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,2rem);font-weight:600;letter-spacing:-.025em}.project-content>p{margin:1rem 0 0;color:var(--ink-soft)}.project-tags{display:flex;flex-wrap:wrap;gap:0;margin:1.35rem 0 0;padding:0;list-style:none}.project-tags li{color:var(--ink-soft);font-size:.73rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.project-tags li+li:before{content:"/";margin-inline:.55rem;color:#aaa197}.project-link{width:fit-content;margin-top:1.5rem;display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-700);font-weight:800;text-decoration:none}.project-link:hover{text-decoration:underline;text-underline-offset:.25em}.project-link svg{font-size:.78rem}@media(max-width:960px){.project-grid{grid-template-columns:1fr}.project-card--featured{grid-template-columns:1fr;grid-template-rows:auto 1fr}.project-card--featured .project-image-link{height:280px}}@media(max-width:640px){.project-card--featured .project-image-link{height:220px}}.bio-container{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(3rem,8vw,7rem);align-items:start}.bio-cards-container{display:grid;gap:1rem}.bio-card{padding:1.5rem;border:1px solid var(--line);border-radius:.55rem;background:#fff;box-shadow:var(--shadow-sm)}.bio-label{margin:0 0 .35rem;color:var(--accent-700);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.bio-card h3{margin:0;font-family:var(--serif);font-size:1.35rem;font-weight:600}.bio-card p{margin:.35rem 0 0;color:var(--ink-soft)}@media(max-width:820px){.bio-container{grid-template-columns:1fr}}@media(max-width:480px){.bio-card{padding:1.25rem}}.contact-container{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(3rem,8vw,7rem);align-items:start;color:#fff}.contact-copy .eyebrow{color:#d8c5b6}.contact-copy h2{margin:0;font-family:var(--serif);font-size:clamp(2.7rem,6vw,5rem);font-weight:500;letter-spacing:-.05em;line-height:.98}.contact-copy p:not(.eyebrow){margin:1.5rem 0 0;color:#d7dfe3;font-size:1.08rem}.contact-copy>a{display:inline-block;margin-top:1.5rem;color:#fff;font-weight:750;text-underline-offset:.25em;overflow-wrap:anywhere}.contact-container form,.contact-success{padding:clamp(1.4rem,4vw,2.5rem);border-radius:.7rem;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #0000002e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{margin-bottom:1.1rem}.form-group label{display:block;margin-bottom:.45rem;font-size:.82rem;font-weight:800}.form-group input,.form-group textarea{width:100%;padding:.85rem .95rem;border:1px solid #b9b7b0;border-radius:.35rem;background:#fff;color:var(--ink)}.form-group textarea{resize:vertical}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent-700);outline:3px solid rgba(66,102,123,.2)}.honeypot{position:absolute;left:-9999px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.form-status{max-width:330px;min-height:1.5em;margin:0;color:#a12f25;font-size:.86rem;font-weight:700}.submit-btn{border:0;cursor:pointer;white-space:nowrap}.submit-btn:disabled{cursor:wait;opacity:.65;transform:none}.contact-success h3{margin:1.25rem 0 0;font-family:var(--serif);font-size:2rem}.contact-success p{color:var(--ink-soft)}.text-button{padding:0;border:0;background:transparent;color:var(--accent-700);font-weight:800;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}@media(max-width:820px){.contact-container{grid-template-columns:1fr}}@media(max-width:560px){.form-row{grid-template-columns:1fr;gap:0}.form-footer{align-items:stretch;flex-direction:column}.submit-btn{width:100%}}.footer-container{background:var(--accent-900);color:#fff}.footer-inner{min-height:110px;padding-block:1.5rem;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:2rem;border-top:1px solid rgba(255,255,255,.16)}.footer-branding{display:inline-flex;align-items:center;gap:.65rem;width:fit-content;color:#fff;font-weight:800;text-decoration:none}.footer-logo{border-radius:.2rem}.footer-inner p,.copyright{margin:0;color:#c6d7d4;font-size:.84rem}@media(max-width:760px){.footer-inner{padding-block:2rem;grid-template-columns:1fr;gap:.8rem}}.portfolio-page{background:var(--paper)}.portfolio-page-hero{max-width:980px;padding-block:clamp(3rem,9vw,8rem) clamp(4rem,8vw,7rem)}.portfolio-back{width:fit-content;margin-bottom:clamp(3rem,7vw,6rem);display:flex;align-items:center;gap:.55rem;color:var(--accent-700);font-size:.9rem;font-weight:800;text-decoration:none}.portfolio-back:hover{text-decoration:underline;text-underline-offset:.28em}.portfolio-page-hero h1{margin:0;font-family:var(--serif);font-size:clamp(4rem,10vw,8rem);font-weight:500;letter-spacing:-.065em;line-height:.88}.portfolio-page-hero>p:last-child{max-width:680px;margin:2rem 0 0;color:var(--ink-soft);font-size:clamp(1.08rem,2vw,1.35rem)}.portfolio-feature-carousel{position:relative}.portfolio-carousel-heading{margin-bottom:1rem;display:flex;align-items:end;justify-content:space-between;gap:1rem}.portfolio-carousel-heading .eyebrow{margin-bottom:.25rem}.portfolio-carousel-status{margin:0;color:var(--ink-soft);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portfolio-carousel-controls{display:flex;gap:.55rem}.portfolio-carousel-controls button{width:2.8rem;height:2.8rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--accent-700);background:var(--surface);cursor:pointer;transition:color .16s ease,background .16s ease,transform .16s ease}.portfolio-carousel-controls button:hover:not(:disabled){color:var(--surface);background:var(--accent-700);transform:translateY(-2px)}.portfolio-carousel-controls button:disabled{opacity:.35;cursor:not-allowed}.portfolio-carousel-track{position:relative;width:100%;display:flex;gap:1.25rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:inline mandatory;scrollbar-width:none}.portfolio-carousel-track::-webkit-scrollbar{display:none}.portfolio-feature{overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg)}.portfolio-feature-slide{min-width:100%;scroll-snap-align:start;scroll-snap-stop:always}.portfolio-feature-media{min-height:500px;overflow:hidden;background:#e9e4da}.portfolio-feature-media video,.portfolio-feature-media>img{width:100%;height:100%;display:block;object-fit:cover}.portfolio-feature-media--ledger video{object-position:left top}.portfolio-feature-media--guidewise{background:#ebe3d6}.portfolio-feature-media--guidewise img{object-position:center}.portfolio-feature-media--alkemi{position:relative;background:#e9f4fb}.portfolio-feature-media--alkemi:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(31,48,73,.08),transparent 55%);pointer-events:none}.portfolio-feature-media--alkemi .alkemi-home-photo{object-position:center}.alkemi-logo-panel{position:absolute;z-index:1;left:clamp(1rem,3vw,2.4rem);bottom:clamp(1rem,3vw,2.4rem);width:min(42%,240px);padding:.65rem 1rem;border:1px solid rgba(31,48,73,.12);border-radius:.5rem;background:#ffffffe6;box-shadow:0 14px 35px #1f304929;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.alkemi-logo-panel img{width:100%;height:auto;display:block;mix-blend-mode:multiply}.portfolio-feature-copy{min-width:0;padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;justify-content:space-between;gap:2rem}.portfolio-feature-copy h2,.portfolio-page-cta h2{max-width:100%;margin:0;font-family:var(--serif);font-size:clamp(2.5rem,4vw,4.2rem);font-weight:500;letter-spacing:-.05em;line-height:.95}.portfolio-feature-copy>div>p:last-child{margin:1.4rem 0 0;color:var(--ink-soft)}.portfolio-feature-copy dl{margin:0;border-top:1px solid var(--line)}.portfolio-feature-copy dl>div{padding-block:.8rem;display:grid;grid-template-columns:62px 1fr;gap:1rem;border-bottom:1px solid var(--line)}.portfolio-feature-copy dt{color:var(--ink-soft);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portfolio-feature-copy dd{margin:0;font-size:.88rem}.portfolio-carousel-dots{padding-top:1.15rem;display:flex;justify-content:center;gap:.55rem}.portfolio-carousel-dots button{width:2.4rem;height:.28rem;padding:0;border:0;border-radius:99px;background:var(--line);cursor:pointer;transition:background .16s ease,transform .16s ease}.portfolio-carousel-dots button:hover{transform:scaleY(1.5)}.portfolio-carousel-dots button.is-active{background:var(--accent-700)}.portfolio-page-tags{margin:0;padding:0;display:flex;flex-wrap:wrap;list-style:none}.portfolio-page-tags li{color:var(--ink-soft);font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.portfolio-page-tags li+li:before{content:"/";margin-inline:.5rem;color:#aaa197}.portfolio-page-link{width:fit-content;display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-700);font-weight:800;text-decoration:none}.portfolio-page-link:hover{text-decoration:underline;text-underline-offset:.25em}.portfolio-page-link svg{font-size:.78rem}.portfolio-page-cta{margin-block:clamp(6rem,12vw,10rem) clamp(5rem,10vw,9rem);padding:clamp(3rem,7vw,6rem);text-align:center;border-radius:var(--radius-md);background:var(--paper-deep)}.portfolio-page-cta .button{margin-top:2rem;gap:.6rem}.portfolio-page [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.75,.25,1)}.portfolio-page [data-reveal].is-visible{opacity:1;transform:none}@media(max-width:960px){.portfolio-feature{grid-template-columns:1fr}.portfolio-feature-media{min-height:0}.portfolio-feature-media video{height:auto}}@media(max-width:640px){.portfolio-page-hero{padding-top:2rem}.portfolio-back{margin-bottom:2.5rem}.portfolio-page-hero h1{font-size:clamp(3.8rem,20vw,5.5rem)}.portfolio-feature-copy{padding:1.7rem}.portfolio-feature-media{min-height:0;aspect-ratio:4 / 3}.portfolio-feature-media--ledger{aspect-ratio:16 / 10}.portfolio-feature-media--ledger video{height:100%;object-fit:cover}.portfolio-carousel-controls button{width:2.55rem;height:2.55rem}.alkemi-logo-panel{width:min(46%,190px);padding:.45rem .7rem}.portfolio-page-cta{width:calc(100% - 1.25rem);padding-inline:1.5rem}}@media(prefers-reduced-motion:reduce){.portfolio-page [data-reveal]{opacity:1;transform:none;transition:none}.portfolio-carousel-track{scroll-behavior:auto}.portfolio-carousel-controls button,.portfolio-carousel-dots button{transition:none}.portfolio-feature-media--ledger video{display:none}.portfolio-feature-media--ledger{min-height:min(62vw,500px);background:#e9e4da url(/images/ledger-finance/dashboard.webp) left top / cover no-repeat}}:root{color-scheme:light;--ink: #282622;--ink-soft: #625d55;--paper: #f7f3eb;--paper-deep: #ebe4d8;--surface: #fffdf8;--accent-900: #293d49;--accent-700: #42667b;--coral: #95553f;--line: rgba(40, 38, 34, .16);--shadow-sm: 0 12px 30px rgba(54, 47, 39, .07);--shadow-lg: 0 28px 70px rgba(54, 47, 39, .14);--radius-sm: .7rem;--radius-md: 1.15rem;--radius-lg: 2rem;--content: 1180px;--serif: Georgia, "Times New Roman", serif;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem;background:var(--paper)}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}a{color:inherit}img{display:block;max-width:100%}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}.section-shell{width:min(calc(100% - 3rem),var(--content));margin-inline:auto}.eyebrow{margin:0 0 1rem;color:var(--accent-700);font-size:.76rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.section-heading{max-width:720px}.section-heading h2{margin:0;font-family:var(--serif);font-size:clamp(2.3rem,5vw,4.5rem);font-weight:500;letter-spacing:-.045em;line-height:.98}.section-heading>p:last-child{max-width:630px;margin:1.5rem 0 0;color:var(--ink-soft);font-size:clamp(1rem,1.5vw,1.2rem)}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.78rem 1.15rem;border:1px solid transparent;border-radius:.45rem;font-weight:750;text-decoration:none;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent-900);color:#fff}.button-primary:hover{background:#172a35}.button-secondary{border-color:var(--line);background:#ffffff7a;color:var(--ink)}.button-secondary:hover{border-color:var(--accent-700);background:var(--surface)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:600px){.section-shell{width:min(calc(100% - 2rem),var(--content))}}
