*{box-sizing:border-box}body{background:#f5f4ef;background:var(--paper,#f5f4ef);color:#171b1a;color:var(--ink,#171b1a);margin:0;min-width:0}button,input,textarea{font:inherit}img{max-width:100%}:root{--ink:#171b1a;--muted:#626866;--paper:#f5f4ef;--surface:#fff;--line:#d9dcd7;--green:#1f6b55;--green-soft:#dcebe4;--coral:#d65a44;--yellow:#e6c65b;--blue:#346c8c;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:Charter,"Iowan Old Style",Georgia,serif;--shell:1180px;--header-bg:#f5f4eff0;--footer-bg:#ecece7;--body-copy:#454b49;--headline-copy:#26302d;--field-bg:#fff;--soft-surface:#f8f8f5}:root[data-theme=dark]{--ink:#f2f3ef;--muted:#adb5b1;--paper:#111614;--surface:#19201d;--line:#343d39;--green:#75c5a6;--green-soft:#203f34;--coral:#ee806c;--blue:#77aeca;--header-bg:#111614f0;--footer-bg:#0d1210;--body-copy:#c7ceca;--headline-copy:#e4e8e5;--field-bg:#151b18;--soft-surface:#202824}html{scroll-behavior:smooth}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--sans);line-height:1.5}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}.site-frame{background:#f5f4ef;background:var(--paper);min-height:100vh;overflow:clip}.site-shell{margin-inline:auto;width:min(1180px,calc(100% - 48px));width:min(var(--shell),calc(100% - 48px))}.page-stack{grid-gap:0;display:grid;gap:0}.page-top{padding-top:clamp(3rem,7vw,6rem)}[id$=-heading]{scroll-margin-top:92px}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f5f4eff0;background:var(--header-bg);border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-inner{grid-gap:24px;align-items:center;display:grid;gap:24px;grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);min-height:72px}.brand{align-items:center;display:inline-flex;gap:12px;width:-webkit-max-content;width:max-content}.brand-mark{display:block;flex:0 0 auto;height:42px;object-fit:cover;width:42px}.brand-copy{display:grid;line-height:1.15}.brand-copy b{font-size:.96rem}.brand-copy small{color:#626866;color:var(--muted);font-size:.72rem;margin-top:4px}.primary-nav{align-items:center;display:flex;gap:26px}.primary-nav a{color:#626866;color:var(--muted);font-size:.82rem;font-weight:750;padding-block:24px;position:relative}.primary-nav a.active,.primary-nav a:hover{color:#171b1a;color:var(--ink)}.nav-indicator{background:#d65a44;background:var(--coral);height:3px;inset:auto 0 -1px;position:absolute}.header-actions{align-items:center;display:flex;gap:9px;justify-content:flex-end}.icon-button{background:#0000;border:1px solid #d9dcd7;border:1px solid var(--line);border-radius:50%;color:#171b1a;color:var(--ink);cursor:pointer;display:inline-grid;height:42px;place-items:center;transition:background-color .16s ease,border-color .16s ease,transform .16s ease;width:42px}.icon-button:hover{background:#fff;background:var(--surface);border-color:#171b1a;border-color:var(--ink);transform:translateY(-1px)}.icon-button svg{height:19px;width:19px}.menu-button{display:none}.button{align-items:center;background:#0000;border:1px solid #171b1a;border:1px solid var(--ink);border-radius:4px;color:#171b1a;color:var(--ink);cursor:pointer;display:inline-flex;font-weight:750;gap:9px;justify-content:center;min-height:44px;padding:10px 16px;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s ease,background-color .18s ease}.button:hover{box-shadow:0 8px 20px #171b1a1a;transform:translateY(-2px)}.button:active{transform:translateY(0) scale(.98)}.button-dark{background:#171b1a;background:var(--ink);color:#fff}.button-light{background:#fff;background:var(--surface)}.button-accent{background:#e6c65b;background:var(--yellow);border-color:#e6c65b;border-color:var(--yellow);color:#171b1a;color:var(--ink)}.button-inverse{border-color:#ffffff57;color:#fff}.card-link,.text-link{align-items:center;color:#1f6b55;color:var(--green);display:inline-flex;font-weight:800;gap:7px}.profile-section{grid-gap:clamp(3rem,7vw,7rem);align-items:center;border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:grid;gap:clamp(3rem,7vw,7rem);grid-template-columns:minmax(0,1.2fr) minmax(340px,.72fr);min-height:calc(100vh - 120px);padding-block:clamp(3rem,4vw,4rem)}.profile-section.compact{min-height:0;padding-top:0}.card-kicker,.eyebrow{color:#1f6b55;color:var(--green);font-size:.78rem;font-weight:850;letter-spacing:.08em;margin:0 0 18px;text-transform:uppercase}.profile-copy h1{font-size:7rem;font-weight:500;letter-spacing:0;line-height:.9;margin:0;max-width:850px}.profile-copy h1,.profile-headline{text-wrap:balance;font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif)}.profile-headline{color:#26302d;color:var(--headline-copy);font-size:2.5rem;line-height:1.08;margin:24px 0 0;max-width:760px}.profile-bio{color:#454b49;color:var(--body-copy);font-size:1.02rem;line-height:1.62;margin:22px 0 0;max-width:720px}.role-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.role-list span{background:#fff;background:var(--surface);border-left:3px solid #d65a44;border-left:3px solid var(--coral);color:#626866;color:var(--muted);font-size:.78rem;font-weight:800;padding:4px 9px}.profile-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.profile-actions .text-link{margin-left:8px}.profile-media{align-self:stretch;min-height:570px;position:relative}.portrait-wrap{background:#d8ded9;inset:0 0 82px 0;overflow:hidden;position:absolute}.portrait-wrap:after{border:1px solid #171b1a3d;content:"";inset:0;pointer-events:none;position:absolute}.portrait-wrap img{filter:saturate(.84) contrast(1.03);height:100%;object-fit:cover;object-position:50% 34%;width:100%}.availability{align-items:center;background:#fff;background:var(--surface);border:1px solid #171b1a;border:1px solid var(--ink);bottom:128px;box-shadow:8px 8px 0 #e6c65b;box-shadow:8px 8px 0 var(--yellow);display:flex;font-size:.82rem;font-weight:800;gap:10px;max-width:270px;padding:12px 14px;position:absolute;right:0}.availability i{background:#3c9a67;border-radius:50%;box-shadow:0 0 0 4px #dcecdf;flex:0 0 auto;height:9px;width:9px}.profile-facts{border-top:1px solid #171b1a;border-top:1px solid var(--ink);display:grid;grid-template-columns:1fr 1.25fr;inset:auto 0 0;margin:0;position:absolute}.profile-facts div{padding:14px 0}.profile-facts div+div{border-left:1px solid #d9dcd7;border-left:1px solid var(--line);padding-left:20px}.profile-facts dt{color:#626866;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.profile-facts dd{font-weight:700;margin:5px 0 0}.content-section{border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);padding-block:clamp(4.5rem,9vw,8rem)}.section-heading{align-items:flex-end;display:flex;gap:32px;justify-content:space-between;margin-bottom:40px}.contact-panel h2,.education-band h2,.resume-heading h1,.section-heading h2{text-wrap:balance;font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:4.5rem;font-weight:500;letter-spacing:0;line-height:.98;margin:0;max-width:850px}.section-description{color:#626866;color:var(--muted);font-size:1.05rem;margin:18px 0 0;max-width:640px}.section-action{flex:0 0 auto;padding-bottom:5px}.projects-grid{border-top:1px solid #171b1a;border-top:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,1fr)}.project-card{background:#fff;background:var(--surface);border:1px solid #d9dcd7;border:1px solid var(--line);border-top:0;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);min-width:0;will-change:transform}.project-image{background:#e3e6e2;border-right:1px solid #d9dcd7;border-right:1px solid var(--line);display:block;min-height:430px;overflow:hidden;position:relative}.project-card:nth-child(2n) .project-image{border-left:1px solid #d9dcd7;border-left:1px solid var(--line);border-right:0;order:2}.project-image img{height:100%;object-fit:cover;object-position:top;transition:transform .3s ease;width:100%}.project-image:hover img{transform:scale(1.02)}.project-image>span{background:#fff;background:var(--surface);border:1px solid #171b1a;border:1px solid var(--ink);bottom:14px;display:grid;height:42px;place-items:center;position:absolute;right:14px;width:42px}.project-content{align-items:flex-start;display:flex;flex-direction:column;min-width:0;padding:36px}.project-meta{align-items:baseline;display:flex;gap:20px;justify-content:space-between;width:100%}.project-meta .card-kicker{margin-bottom:18px}.project-meta>span{color:#626866;color:var(--muted);font-size:1.05rem}.project-content h3,.project-meta>span{font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif)}.project-content h3{text-wrap:balance;font-size:3rem;font-weight:500;line-height:1;margin:0;max-width:15ch;overflow-wrap:anywhere}.project-content>p:not(.card-kicker){color:#454b49;color:var(--body-copy);margin:18px 0 0;max-width:62ch}.project-impact{border-top:1px solid #d9dcd7;border-top:1px solid var(--line);padding-top:17px}.skill-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.badge{align-items:center;background:#f8f8f5;background:var(--soft-surface);border:1px solid #d9dcd7;border:1px solid var(--line);border-radius:999px;color:#626866;color:var(--muted);display:inline-flex;font-size:.76rem;font-weight:750;line-height:1;padding:6px 10px}.card-link{margin-top:auto;padding-top:26px}.experience-list{border-top:1px solid #171b1a;border-top:1px solid var(--ink)}.experience-row{grid-gap:clamp(2rem,6vw,6rem);border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:grid;gap:clamp(2rem,6vw,6rem);grid-template-columns:minmax(210px,.42fr) minmax(0,1fr);padding-block:32px}.experience-meta{grid-gap:7px;align-content:start;display:grid;gap:7px}.experience-meta span{font-size:.82rem}.experience-meta small,.experience-meta span{color:#626866;color:var(--muted)}.experience-meta i{border:1px solid #d9dcd7;border:1px solid var(--line);border-radius:999px;color:#1f6b55;color:var(--green);font-size:.68rem;font-style:normal;font-weight:800;padding:3px 8px;text-transform:uppercase;width:-webkit-max-content;width:max-content}.experience-copy{min-width:0}.experience-copy h3{text-wrap:balance;font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:2.6rem;font-weight:500;line-height:1;margin:0;overflow-wrap:anywhere}.experience-copy>p{color:#454b49;color:var(--body-copy);font-size:1.02rem;margin:14px 0 0;max-width:760px}.education-list{border-top:1px solid #171b1a;border-top:1px solid var(--ink)}.education-entry{grid-gap:clamp(2rem,6vw,6rem);border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:grid;gap:clamp(2rem,6vw,6rem);grid-template-columns:minmax(210px,.42fr) minmax(0,1fr);padding-block:32px;position:relative}.education-meta{grid-gap:7px;align-content:start;display:grid;gap:7px}.education-meta small,.education-meta span{color:#626866;color:var(--muted)}.education-meta span{font-size:.82rem}.education-meta i{color:#1f6b55;color:var(--green);font-size:.78rem;font-style:normal;font-weight:800}.education-copy{min-width:0}.education-copy h3{text-wrap:balance;font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:2.6rem;font-weight:500;line-height:1;margin:0;overflow-wrap:anywhere}.education-copy>p{color:#454b49;color:var(--body-copy);font-size:1.02rem;margin:14px 0 0;max-width:760px}.skills-grid{grid-gap:1px;background:#d9dcd7;background:var(--line);border:1px solid #171b1a;border:1px solid var(--ink);display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.skill-group{background:#f5f4ef;background:var(--paper);min-width:0;padding:26px}.skill-group>span{color:#d65a44;color:var(--coral);font-size:1.15rem}.skill-group h3,.skill-group>span{font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif)}.skill-group h3{font-size:1.55rem;font-weight:500;margin:28px 0 18px}.skill-group-heading{align-items:center;display:flex;gap:16px;justify-content:space-between}.skill-group-heading h3{margin-right:auto}.skill-group ul{grid-gap:10px;color:#626866;color:var(--muted);display:grid;gap:10px;list-style:none;margin:0;padding:0}.skill-group li{min-width:0;position:relative}.skill-group li>div{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.skill-group li b{color:#171b1a;color:var(--ink);font-size:.9rem}.skill-group li small{color:#1f6b55;color:var(--green);flex:0 0 auto;font-size:.7rem;font-weight:800}.skill-group li p{color:#626866;color:var(--muted);font-size:.8rem;line-height:1.5;margin:6px 0 10px}.skill-group li>i{background:#d5d9d5;display:block;height:3px;overflow:hidden}.skill-group li>i span{background:#1f6b55;background:var(--green);display:block;height:100%}.skills-section:not(.is-detailed) .skill-group li{padding-block:3px}.skills-section:not(.is-detailed) .skill-group li b{font-weight:600}.contact-panel{grid-gap:50px;align-items:flex-end;background:#171b1a;background:var(--ink);color:#fff;display:grid;gap:50px;grid-template-columns:minmax(0,1fr) auto;margin-block:clamp(5rem,10vw,9rem);padding:clamp(32px,6vw,68px)}.contact-panel .eyebrow{color:#e6c65b;color:var(--yellow)}.contact-panel>div:first-child>p:not(.eyebrow){color:#bdc3c0;font-size:1.05rem;margin:24px 0 0;max-width:720px}.contact-panel>div:first-child>small{color:#8f9894;display:block;margin-top:14px}.contact-actions{grid-gap:10px;display:grid;gap:10px;min-width:190px}.social-row{grid-gap:1px;background:#d9dcd7;background:var(--line);border:1px solid #d9dcd7;border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(3,1fr);margin:-4rem 0 8rem}.social-row a{grid-gap:7px;background:#fff;background:var(--surface);display:grid;gap:7px;padding:28px}.social-row span{color:#626866;color:var(--muted);font-size:.75rem;text-transform:uppercase}.social-row b{overflow-wrap:anywhere}.education-band{grid-gap:40px;display:grid;gap:40px;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);padding-block:clamp(4rem,8vw,7rem)}.education-band h2{font-size:4rem;overflow-wrap:anywhere}.education-band h3{font-size:1.1rem;margin:20px 0 4px}.education-band span{color:#626866;color:var(--muted);font-size:.88rem}.education-band div>p{color:#454b49;color:var(--body-copy);margin:22px 0 0;max-width:760px}.coursework{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.coursework span{background:#fff;background:var(--surface);border:1px solid #d9dcd7;border:1px solid var(--line);color:#626866;color:var(--muted);font-size:.74rem;font-weight:750;padding:6px 10px}.profile-notes{grid-gap:1px;background:#d9dcd7;background:var(--line);border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-notes p{background:#f5f4ef;background:var(--paper);color:#454b49;color:var(--body-copy);font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:1.2rem;margin:0;padding:30px}.resume-page{padding-bottom:7rem}.resume-heading{align-items:flex-end;display:flex;gap:30px;justify-content:space-between;margin-bottom:36px}.resume-heading>div:last-child{display:flex;gap:10px}.resume-viewer{background:#fff;border:1px solid #d9dcd7;border:1px solid var(--line);height:min(1050px,78vh);width:100%}.site-footer{background:#ecece7;background:var(--footer-bg);border-top:1px solid #d9dcd7;border-top:1px solid var(--line)}.footer-inner{align-items:center;display:flex;gap:30px;justify-content:space-between;min-height:128px}.footer-inner>div:first-child{grid-gap:5px;display:grid;gap:5px}.footer-inner span{color:#626866;color:var(--muted);font-size:.85rem}.footer-links{display:flex;font-size:.84rem;font-weight:750;gap:26px}a:focus-visible,button:focus-visible{outline:3px solid color-mix(in srgb,#1f6b55 45%,#0000);outline:3px solid color-mix(in srgb,var(--green) 45%,#0000);outline-offset:3px}.admin-loading,.admin-login{background:#f5f4ef;background:var(--paper);display:grid;min-height:100vh;padding:24px;place-items:center}.admin-login>section{grid-gap:18px;background:#fff;border:1px solid #d9dcd7;border:1px solid var(--line);display:grid;gap:18px;padding:clamp(28px,6vw,54px);width:min(100%,480px)}.admin-login h1,.admin-title h1{font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:3.3rem;font-weight:500;margin:0;text-transform:capitalize}.admin-login>section>p:not(.eyebrow,.form-error,.admin-sign-in-status){color:#626866;color:var(--muted);margin:-6px 0 8px}.google-sign-in{display:grid;min-height:44px;place-items:center}.admin-sign-in-status{color:#626866;color:var(--muted);font-size:.86rem;margin:-6px 0 0}.admin-field{grid-gap:7px;color:#3d4341;display:grid;font-size:.82rem;font-weight:750;gap:7px}.admin-field input,.admin-field textarea,.input,.textarea{background:#fff;border:1px solid #c8ccc7;border-radius:3px;color:#171b1a;color:var(--ink);font-weight:500;padding:11px 12px;resize:vertical;width:100%}.admin-field input:focus,.admin-field textarea:focus,.input:focus,.textarea:focus{border-color:#1f6b55;border-color:var(--green);outline:3px solid #dcebe4;outline:3px solid var(--green-soft)}.form-error{color:#a93427;font-size:.86rem;margin:0}.admin-app{background:#f0f1ed;min-height:100vh}.admin-header{align-items:center;background:#fffffff5;border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;min-height:72px;padding:10px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.admin-header>div:last-child{display:flex;gap:10px}.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 72px)}.admin-nav{grid-gap:5px;align-content:start;background:#fff;border-right:1px solid #d9dcd7;border-right:1px solid var(--line);display:grid;gap:5px;padding:28px 18px}.admin-nav button{background:#0000;border:0;border-radius:3px;color:#626866;color:var(--muted);cursor:pointer;padding:11px 12px;text-align:left;text-transform:capitalize}.admin-nav button.active{background:#dcebe4;background:var(--green-soft);color:#1f6b55;color:var(--green);font-weight:800}.admin-main{margin:0 auto;padding-block:44px 80px;width:min(900px,calc(100% - 48px))}.admin-title{align-items:flex-end;display:flex;gap:24px;justify-content:space-between;margin-bottom:28px}.admin-title span{color:#1f6b55;color:var(--green);font-size:.85rem;font-weight:750}.admin-panel{grid-gap:20px;background:#fff;border:1px solid #d9dcd7;border:1px solid var(--line);display:grid;gap:20px;padding:clamp(22px,4vw,38px)}.admin-panel h2{font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:2rem;font-weight:500;margin:0 0 6px}.admin-card-list{grid-gap:20px;display:grid;gap:20px}.admin-two-column{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-skill-editor,.admin-skill-list{grid-gap:14px;display:grid;gap:14px}.admin-skill-editor{border-top:1px solid #d9dcd7;border-top:1px solid var(--line);padding-top:18px}.admin-visual-app{background:#f5f4ef;background:var(--paper);min-height:100vh}.visual-editor-bar{grid-gap:20px;align-items:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff7;border-bottom:1px solid #171b1a;border-bottom:1px solid var(--ink);display:grid;gap:20px;grid-template-columns:minmax(180px,1fr) auto minmax(360px,1fr);min-height:70px;padding:10px max(24px,calc(50vw - 590px));padding:10px max(24px,calc((100vw - var(--shell))/2));position:-webkit-sticky;position:sticky;top:0;z-index:100}.visual-editor-brand{align-items:center;display:flex;gap:12px}.visual-editor-brand>div{display:grid;line-height:1.15}.visual-editor-brand small{color:#626866;color:var(--muted);font-size:.72rem;margin-top:4px}.editor-status{color:#1f6b55;color:var(--green);font-size:.8rem;font-weight:750;text-align:center}.visual-editor-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.visual-editor-actions button:disabled{cursor:not-allowed;opacity:.45;transform:none}.admin-live-preview{padding-bottom:2rem}.editable-block,.experience-row,.project-card,.skill-group{position:relative}.editor-item-controls{background:#fffffff0;border:1px solid #171b1a2e;border-radius:999px;box-shadow:0 6px 18px #171b1a1f;display:flex;gap:6px;padding:4px;position:absolute;right:12px;top:12px;z-index:15}.editor-add-control,.editor-item-controls button{background:#fff;border:1px solid #d9dcd7;border:1px solid var(--line);border-radius:50%;color:#171b1a;color:var(--ink);cursor:pointer;display:inline-grid;height:36px;place-items:center;transition:border-color .16s ease,background-color .16s ease,transform .16s ease;width:36px}.editor-add-control:hover,.editor-item-controls button:hover{background:#f5f4ef;background:var(--paper);border-color:#171b1a;border-color:var(--ink);transform:translateY(-1px)}.editor-item-controls button.danger:hover{background:#fff0ed;border-color:#a93427;color:#a93427}.editor-add-control svg,.editor-item-controls svg{height:17px;width:17px}.skill-group li .editor-item-controls{opacity:0;padding:2px;right:-8px;top:-7px;transition:opacity .16s ease}.skill-group li:focus-within .editor-item-controls,.skill-group li:hover .editor-item-controls{opacity:1}.skill-group li .editor-item-controls button{height:29px;width:29px}.skill-group li:has(.editor-item-controls){padding-right:68px}.editor-modal-open{overflow:hidden}.editor-modal-backdrop{background:#171b1a9e;display:grid;inset:0;overflow-y:auto;padding:24px;place-items:center;position:fixed;z-index:200}.editor-modal{background:#fff;background:var(--surface);border:1px solid #171b1a;border:1px solid var(--ink);box-shadow:0 24px 70px #00000047;max-height:calc(100vh - 48px);overflow-y:auto;width:min(760px,100%)}.editor-modal>header{align-items:flex-start;background:#fffffffa;border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;padding:24px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.editor-modal h2{font-family:Charter,Iowan Old Style,Georgia,serif;font-family:var(--serif);font-size:2.25rem;font-weight:500;line-height:1;margin:0}.editor-modal .eyebrow{margin-bottom:10px}.editor-modal form{display:grid}.editor-modal-fields{grid-gap:18px;display:grid;gap:18px;padding:24px}.editor-modal footer{background:#fffffffa;border-top:1px solid #d9dcd7;border-top:1px solid var(--line);bottom:0;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;position:-webkit-sticky;position:sticky}.editor-modal .admin-field input,.editor-modal .admin-field select,.editor-modal .admin-field textarea{background:#fff;border:1px solid #c8ccc7;border-radius:3px;color:#171b1a;color:var(--ink);font:inherit;font-weight:500;padding:11px 12px;resize:vertical;width:100%}.editor-modal .admin-field input:focus,.editor-modal .admin-field select:focus,.editor-modal .admin-field textarea:focus{border-color:#1f6b55;border-color:var(--green);outline:3px solid #dcebe4;outline:3px solid var(--green-soft)}.editor-confirm{width:min(520px,100%)}.editor-confirm>p{color:#626866;color:var(--muted);margin:0;padding:24px}.editor-danger-button{background:#a93427;border-color:#a93427;color:#fff}:root[data-theme=dark] .brand-mark,:root[data-theme=dark] .button-dark,:root[data-theme=dark] .contact-panel{background:#080b0a;color:#f7f8f5}:root[data-theme=dark] .portrait-wrap,:root[data-theme=dark] .project-image{background:#252e2a}:root[data-theme=dark] .resume-viewer{background:#fff}:root[data-theme=dark] .admin-header,:root[data-theme=dark] .admin-login>section,:root[data-theme=dark] .admin-nav,:root[data-theme=dark] .admin-panel,:root[data-theme=dark] .editor-add-control,:root[data-theme=dark] .editor-item-controls,:root[data-theme=dark] .editor-item-controls button,:root[data-theme=dark] .editor-modal footer,:root[data-theme=dark] .editor-modal>header,:root[data-theme=dark] .visual-editor-bar{background:#fff;background:var(--surface);color:#171b1a;color:var(--ink)}:root[data-theme=dark] .admin-app{background:#f5f4ef;background:var(--paper)}:root[data-theme=dark] .admin-field,:root[data-theme=dark] .admin-field input,:root[data-theme=dark] .admin-field textarea,:root[data-theme=dark] .editor-modal .admin-field input,:root[data-theme=dark] .editor-modal .admin-field select,:root[data-theme=dark] .editor-modal .admin-field textarea,:root[data-theme=dark] .input,:root[data-theme=dark] .textarea{background:#fff;background:var(--field-bg);border-color:#d9dcd7;border-color:var(--line);color:#171b1a;color:var(--ink)}:root[data-theme=dark] .editor-item-controls button.danger:hover{background:#351a17}@media (max-width:1020px){.header-inner{grid-template-columns:1fr auto auto}.menu-button{display:inline-grid}.primary-nav{align-items:stretch;background:#f5f4ef;background:var(--paper);border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);display:none;left:0;padding:12px 24px 20px;position:absolute;right:0;top:72px}.primary-nav.is-open{display:grid}.primary-nav a{padding:12px 0}.nav-indicator{display:none}.profile-section{gap:40px;grid-template-columns:minmax(0,1fr) minmax(290px,.6fr)}.profile-copy h1{font-size:5.25rem}.profile-headline{font-size:2.15rem}.contact-panel h2,.education-band h2,.resume-heading h1,.section-heading h2{font-size:3.75rem}.project-card{grid-template-columns:minmax(0,1fr) minmax(330px,.9fr)}.project-content h3{font-size:2.5rem}.contact-panel{align-items:start;grid-template-columns:1fr}.contact-actions{grid-template-columns:repeat(3,auto);min-width:0}.visual-editor-bar{grid-template-columns:1fr auto}.editor-status{grid-column:1/-1;grid-row:2;padding-bottom:6px;text-align:left}}@media (max-width:900px){.profile-section,.profile-section.compact{grid-template-columns:1fr;min-height:0;padding-block:64px}.profile-copy h1{font-size:5.5rem;max-width:760px}.profile-media{min-height:620px;width:min(100%,620px)}.project-card{grid-template-columns:1fr}.project-card:nth-child(2n) .project-image{border-left:0;order:0}.project-image{aspect-ratio:16/10;border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);border-right:0;min-height:0}}@media (max-width:760px){[id$=-heading]{scroll-margin-top:78px}.site-shell{width:min(100% - 30px,1180px);width:min(100% - 30px,var(--shell))}.header-inner{gap:9px;min-height:64px}.brand-copy small{display:none}.brand-mark{height:38px;width:38px}.header-actions .button{display:none}.primary-nav{top:64px}.profile-section,.profile-section.compact{grid-template-columns:1fr;min-height:0;padding-block:50px}.profile-copy h1{font-size:4.2rem}.profile-headline{font-size:1.9rem}.profile-bio{font-size:1rem}.profile-actions .text-link{flex-basis:100%;margin:8px 0 0}.profile-media{min-height:500px}.portrait-wrap{inset:0 0 90px}.availability{bottom:130px;right:12px}.resume-heading,.section-heading{align-items:start;display:grid}.contact-panel h2,.resume-heading h1,.section-heading h2{font-size:3rem}.project-content{padding:26px 22px}.project-content h3{font-size:2.2rem;max-width:none}.education-entry,.experience-row{gap:16px;grid-template-columns:1fr}.contact-actions,.social-row{grid-template-columns:1fr}.social-row{margin-top:-3rem}.education-band{gap:12px;grid-template-columns:1fr}.education-band h2{font-size:2.6rem}.profile-notes{grid-template-columns:1fr}.resume-heading>div:last-child{flex-wrap:wrap}.resume-viewer{height:72vh}.footer-inner{flex-direction:column;justify-content:center}.admin-header,.footer-inner{align-items:flex-start}.admin-header .brand-copy,.admin-header .button-light{display:none}.admin-layout{grid-template-columns:1fr}.admin-nav{border-bottom:1px solid #d9dcd7;border-bottom:1px solid var(--line);border-right:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:10px 15px;position:-webkit-sticky;position:sticky;top:72px;z-index:10}.admin-main{padding-top:28px;width:min(100% - 30px,900px)}.admin-title{align-items:start;flex-direction:column}.admin-two-column,.visual-editor-bar{grid-template-columns:1fr}.visual-editor-bar{padding-inline:15px}.visual-editor-brand{display:none}.visual-editor-actions{justify-content:stretch}.visual-editor-actions .button{flex:1 1 auto}.editor-status{grid-column:auto;grid-row:auto;order:2;padding:0}.editor-modal-backdrop{align-items:end;padding:0}.editor-modal{max-height:92vh;width:100%}.editor-modal-fields,.editor-modal>header{padding:20px 15px}.editor-modal footer{padding:14px 15px}.skill-group li .editor-item-controls{opacity:1}}@media (max-width:420px){.brand-copy{display:none}.profile-copy h1{font-size:3.65rem}.profile-headline{font-size:1.7rem}.contact-panel h2,.resume-heading h1,.section-heading h2{font-size:2.55rem}.project-content h3{font-size:2rem}.profile-actions .button{flex:1 1 140px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
/*# sourceMappingURL=main.0b79d1e4.css.map*/