@import "https://fonts.googleapis.com/css2?family=Roboto:ital,wght@400;700&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap";.modal-page{background-color:color-mix(in srgb, var(--color-black) 50%, transparent);z-index:101;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-page .modal-container{background-color:var(--color-white);scrollbar-width:none;border-radius:16px;outline:none;width:720px;max-height:100dvh}.modal-page .modal-container .modal-header{background-color:var(--color-astronaut-blue);border-bottom:1px solid var(--color-boston-blue);border-radius:16px 16px 0 0;gap:14px;padding:24px;font-family:Roboto,sans-serif;line-height:normal;display:flex}.modal-page .modal-container .modal-header .header-left-section{background-color:var(--color-boston-blue);border-radius:10px;justify-content:center;align-items:center;width:42px;min-width:42px;height:42px;display:flex}.modal-page .modal-container .modal-header .header-center-section .header-title{color:var(--color-spindle);font-family:serif;font-size:20px}.modal-page .modal-container .modal-header .header-center-section .header-subtitle{color:var(--color-malibu);font-size:12px;font-weight:500}.modal-page .modal-container .modal-header .header-right-section{text-align:right;margin-left:auto}.modal-page .modal-container .modal-header .header-right-section button{cursor:pointer;vertical-align:top;background-color:#0000;border:none}.modal-page .modal-container .modal-header .header-right-section button:hover{background-color:var(--color-boston-blue)}.modal-page .modal-container .modal-header .header-right-section .badge{background-color:var(--color-bahama-blue);color:var(--color-pattens-blue);border-radius:5px;margin-top:7px;padding:2px 8px;font-size:11px;line-height:1;display:flex}.modal-page .modal-container .modal-header .header-right-section .badge .badge-dot{background:var(--color-boston-blue);border-radius:50%;align-self:center;width:6px;min-width:6px;height:6px;margin-right:4px}.modal-page .modal-container .modal-body{background-color:var(--color-midnight);gap:20px;padding:24px;display:flex}.modal-page .modal-container .modal-footer{background-color:var(--color-midnight);color:var(--color-boston-blue);border-radius:0 0 16px 16px;gap:6px;padding:0 24px 24px;display:flex}.modal-page .modal-container img{display:block}@media (width<=720px){.modal-page .modal-container.cover-letter-generator{border-radius:0}.modal-page .modal-container{overflow-y:auto}}.modal-page .cover-letter-generator .modal-body{color:var(--color-malibu)}.modal-page .cover-letter-generator .modal-body .red{color:var(--color-cinnabar);margin-left:2px}.modal-page .cover-letter-generator .job-description-label,.modal-page .cover-letter-generator .name-and-role-label,.modal-page .cover-letter-generator .experience-label{font-size:14px;display:block}.modal-page .cover-letter-generator #job-description,.modal-page .cover-letter-generator #name-and-role,.modal-page .cover-letter-generator #experience{background-color:color-mix(in srgb, var(--color-tuatara) 50%, transparent);border:.5px solid color-mix(in srgb, var(--color-westar) 15%, transparent);color:var(--color-boston-blue);border-radius:6px;padding:5px 10px;font-family:Roboto,sans-serif;font-size:16px}.modal-page .cover-letter-generator #job-description:focus,.modal-page .cover-letter-generator #name-and-role:focus,.modal-page .cover-letter-generator #experience:focus{border-color:var(--color-havelock-blue);box-shadow:0 0 0 3px var(--color-cloud-burst)}.modal-page .cover-letter-generator #job-description,.modal-page .cover-letter-generator #name-and-role{margin-bottom:12px}.modal-page .cover-letter-generator #job-description,.modal-page .cover-letter-generator #experience{resize:vertical;max-height:200px;display:block}.modal-page .cover-letter-generator #job-description{min-height:164px}.modal-page .cover-letter-generator #experience{min-height:126px}.modal-page .cover-letter-generator #name-and-role{width:100%}.modal-page .cover-letter-generator textarea::placeholder,.modal-page .cover-letter-generator input::placeholder{color:var(--color-bahama-blue)}.modal-page .cover-letter-generator textarea:focus-visible,.modal-page .cover-letter-generator input:focus-visible{outline:none}.modal-page .cover-letter-generator .modal-body-right-section{width:100%;padding-bottom:21px}.modal-page .cover-letter-generator #generated-cover-letter-container{background-color:var(--color-astronaut-blue);border:1px solid var(--color-bahama-blue);border-radius:8px;height:100%;min-height:367px}.modal-page .cover-letter-generator .cover-letter-container-label{font-size:14px}.modal-page .cover-letter-generator .ai-response-placeholder-container{text-align:center;align-content:center;height:100%;font-size:14px;line-height:normal;display:block}.modal-page .cover-letter-generator .ai-response-placeholder-container img{margin:0 auto 8px;display:block}.modal-page .cover-letter-generator .form-status--success{color:var(--color-spindle);scrollbar-width:none;white-space:pre-wrap;height:100%;max-height:474px;padding:16px;font-size:14px;line-height:1.75;overflow-y:auto}.modal-page .cover-letter-generator .tone-section{flex-wrap:wrap;gap:6px;display:flex}.modal-page .cover-letter-generator .footer-header{flex:0 0 100%;margin-bottom:-6px;font-size:14px}.modal-page .cover-letter-generator #professional-button.tone-active,.modal-page .cover-letter-generator #confident-button.tone-active,.modal-page .cover-letter-generator #conversational-button.tone-active{background-color:var(--color-boston-blue)}.modal-page .cover-letter-generator #professional-button,.modal-page .cover-letter-generator #confident-button,.modal-page .cover-letter-generator #conversational-button,.modal-page .cover-letter-generator #generate-button{border:1px solid color-mix(in srgb, var(--color-westar) 15%, transparent);color:var(--color-white);cursor:pointer;border-radius:6px;padding:8px 16px}.modal-page .cover-letter-generator #generate-button{align-self:baseline;min-width:150px;max-height:33px;margin-top:23px;margin-left:auto}.modal-page .cover-letter-generator #generate-button img{margin-right:6px;display:inline-block}.modal-page .cover-letter-generator #generate-button span{display:inline-block;overflow-y:auto}.modal-page .cover-letter-generator button{background-color:#0000}.modal-page .cover-letter-generator button:hover{background-color:var(--color-bahama-blue)}.modal-page .cover-letter-generator .bold{color:var(--color-spindle)}@media (width<=720px){.modal-page .cover-letter-generator .modal-header,.modal-page .cover-letter-generator .modal-footer{border-radius:0}.modal-page .cover-letter-generator .modal-body{flex-direction:column}.modal-page .cover-letter-generator #generate-button{margin-top:22px}.modal-page .cover-letter-generator .ai-response-placeholder-container{min-height:inherit}.modal-page .cover-letter-generator textarea{width:100%}}.modal-page .react-counter{width:400px}.modal-page .react-counter .modal-body{color:var(--color-boston-blue);flex-direction:column;align-items:center}.modal-page .react-counter .modal-body .counter-value{font-family:sans-serif}.modal-page .react-counter .modal-body .buttons-container{gap:8px;display:flex}.modal-page .react-counter .modal-footer .counter-reset-button{margin:auto}.modal-page .react-counter button{background-color:var(--color-bahama-blue);border:1px solid color-mix(in srgb, var(--color-westar) 15%, transparent);color:var(--color-white);cursor:pointer}.modal-page .react-counter button:not(.close-button){border-radius:6px;min-width:42px;padding:8px 16px}.modal-page .react-counter button:hover{background-color:var(--color-boston-blue)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{cursor:default;scroll-behavior:smooth}:root{--color-black:#000;--color-cod-gray:#111;--color-cod-gray-light:#1a1a1a;--color-tuatara:#30302e;--color-dorado:#5c4f4a;--color-schooner:#948880;--color-van-cleef:#50140a;--color-brown-derby:#501e14;--color-maroon:#7c0000;--color-old-brick:#96281b;--color-thunderbird:#cf1c1c;--color-cinnabar:#e74c3c;--color-red-orange:#fe3434;--color-flamingo:#f24242;--color-jewel:#1a7a3f;--color-moss-green:#a3d9b5;--color-ottoman:#edfaf1;--color-midnight:#011b2e;--color-astronaut-blue:#013e5a;--color-bahama-blue:#046b93;--color-cloud-burst:#253e5f;--color-boston-blue:#3390b5;--color-havelock-blue:#4682d5;--color-malibu:#52ceff;--color-spindle:#abd1ea;--color-pattens-blue:#d6efff;--color-westar:#dedcd1;--color-pampas:#f5f2ef;--color-white:#fff;--accent:var(--color-thunderbird);--accent2:var(--color-old-brick);--bg1:var(--color-pampas);--bg2:var(--color-white);--bg3:var(--color-black);--bg4:var(--color-flamingo);--bg5:var(--color-dorado);--border1:color-mix(in srgb, var(--color-brown-derby) 10%, transparent);--border2:color-mix(in srgb, var(--color-brown-derby) 18%, transparent);--card-shadow:0 1px 3px color-mix(in srgb, var(--color-van-cleef) 7%, transparent), 0 4px 16px color-mix(in srgb, var(--color-van-cleef) 5%, transparent);--text1:var(--color-dorado);--text2:var(--color-white);--text3:var(--color-black);--text4:var(--color-flamingo)}[data-theme=dark]{--accent:var(--color-red-orange);--bg1:var(--color-cod-gray);--bg2:var(--color-cod-gray-light);--bg3:var(--color-white);--bg4:var(--color-maroon);--bg5:var(--color-schooner);--border1:color-mix(in srgb, var(--color-white) 6%, transparent);--border2:color-mix(in srgb, var(--color-white) 10%, transparent);--card-shadow:0 1px 4px color-mix(in srgb, var(--color-black) 50%, transparent), 0 -4px 6px color-mix(in srgb, var(--color-black) 20%, transparent);--text1:var(--color-schooner);--text2:var(--color-black);--text3:var(--color-white);--text4:var(--color-maroon)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.items-center{align-items:center}.project-header{align-items:flex-start;margin-bottom:.75rem}.contact-wrap{align-items:start;gap:48px}.hero h1 em:after{content:"|";margin-left:2px;animation:1.1s step-end infinite blink}.bg-accent,.hero-eyebrow:before,.project-card:before{background:var(--accent)}.btn-primary:hover,.form-submit:hover{background:var(--accent2);color:var(--color-white)}.bg-bg1,body{background:var(--bg1)}.bg-bg2{background:var(--bg2)}.bg-bg3{background:var(--bg3)}.bg-bg4{background:var(--bg4)}.hamburger span{background:var(--bg5);border-radius:2px;width:22px;transition:transform .25s,opacity .25s}.contact-form .form-status--success{background:var(--color-ottoman);border:1px solid var(--color-moss-green);color:var(--color-jewel)}.hamburger{z-index:200;background:0 0;gap:5px;padding:4px;display:none}.bg-transparent{background:0 0}.solid-border1{border:1px solid var(--border1)}.solid-border2{border:1px solid var(--border2)}.border-none{border:none}.bottom-border1{border-bottom:1px solid var(--border1)}.theme-btn:hover,.btn-secondary:hover,.resume-download-btn:hover,.contact-link:hover .contact-link-icon,.form-input:focus{border-color:var(--accent)}.project-card:hover{border-color:var(--border2);transform:translateY(-2px)}.quote-section{border-left:3px solid var(--accent);margin:3rem auto;padding:2.5rem}.border-radius-4px{border-radius:4px}.border-radius-20px{border-radius:20px}.top-border1,.exp-item:first-child{border-top:1px solid var(--border1)}.project-card,.skills-card{box-shadow:var(--card-shadow);padding:1.5rem}.color-accent,.nav-logo:before,.nav-logo:after,.nav-links a:hover,.btn-secondary:hover,.resume-download-btn:hover,.project-link:hover,.contact-link:hover{color:var(--accent)}.exp-desc li::marker{color:var(--accent)}.color-text1,.form-input::placeholder,body{color:var(--text1)}.color-text2{color:var(--text2)}.color-text3{color:var(--text3)}.theme-btn:hover{color:var(--text4)}.hero-eyebrow:before,.project-card:before{content:""}.nav-logo:before,.nav-logo:after{content:"—"}.form-submit:disabled{cursor:not-allowed}.cursor-pointer{cursor:pointer}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block,.hero-eyebrow:before{display:inline-block}.resume-download-btn{margin-top:1rem;padding:10px 20px;display:inline-flex}.flex-column{flex-direction:column}.skills-card-title{letter-spacing:.01em;flex-shrink:0}.flex-wrap{flex-wrap:wrap}.font-dm-mono{font-family:DM Mono,monospace}.font-dm-sans,body{font-family:DM Sans,sans-serif}.quote-mark{font-family:Georgia,serif;font-size:4rem;line-height:1}.font-11px,.nav-logo:before,.nav-logo:after{font-size:11px}.font-12px{font-size:12px}.font-13px{font-size:13px}.font-14px{font-size:14px}.font-15px{font-size:15px}.font-16px{font-size:16px}.hero-bio{max-width:520px;margin-bottom:2.5rem;font-size:17px}.quote-text{max-width:700px;font-size:19px;font-weight:400}.section-title{letter-spacing:-.02em;font-size:28px}.hero h1{letter-spacing:-.03em;font-size:clamp(42px,5.5vw,64px);line-height:1.1}.font-normal{font-style:normal}.weight-500{font-weight:500}.weight-600{font-weight:600}.exp-desc{gap:4px;padding-left:1.1rem}.gap-6px{gap:6px}.gap-8px{gap:8px}.gap-10px{gap:10px}.gap-12px{gap:12px}.gap-16px{gap:16px}.exp-item{grid-template-columns:120px 1fr;gap:32px;padding:1.75rem 0}.hero-locations{gap:40px;margin-top:48px;padding-top:40px}.contact-wrap,.form-row{grid-template-columns:repeat(2,1fr)}.skills-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.project-card:before{width:3px;height:0;transition:height .25s;position:absolute;left:0}.height-2px,.hero-eyebrow:before{height:2px}.contact-link-icon svg{height:15px;stroke:var(--text1);stroke-width:1.75px;width:15px}.project-icon svg{stroke-width:1.5px;width:17px;height:17px}.contact-link-icon{width:32px;height:32px}.project-icon{width:36px;height:36px}nav{z-index:100;height:56px;padding:0 2rem;transition:background .3s;position:sticky}.height-100,.project-card:hover:before{height:100%}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.tracking-002em{letter-spacing:.02em}.tracking-004em{letter-spacing:.04em}.tracking-006em{letter-spacing:.06em}.tracking-014em{letter-spacing:.14em}body{line-height:1.6;transition:background .3s,color .3s;overflow-x:hidden}.tracking-165em{line-height:1.65}.tracking-170em{line-height:1.7}.tracking-180em{line-height:1.8}.margin-0-auto{margin:0 auto}.margin-bottom-3px{margin-bottom:3px}.margin-bottom-8px{margin-bottom:8px}.margin-bottom-10px{margin-bottom:10px}.margin-bottom-16px{margin-bottom:16px}.margin-bottom-24px{margin-bottom:24px}.section-header{text-align:center;margin-bottom:48px}.margin-top-24px{margin-top:24px}.max-width-960px{max-width:960px}.form-textarea{resize:vertical;min-height:110px}.hamburger-open span:nth-child(2){opacity:0}.nav-logo:before,.nav-logo:after,.form-submit:disabled{opacity:.6}.form-input{outline:none;width:100%;transition:border-color .15s}body:has(.modal-page){overflow:clip}.project-card{transition:border-color .2s,transform .2s;position:relative;overflow:hidden}.padding-4px-10px{padding:4px 10px}.theme-btn{padding:6px 14px;transition:all .15s}.padding-10px-14px{padding:10px 14px}.padding-10px-15px{padding:10px 15px}.form-submit{text-align:left;padding:11px 20px}.padding-11px-24px{padding:11px 24px}.padding-32px{padding:32px}.padding-48px-32px{padding:48px 32px}.padding-top-3px{padding-top:3px}.project-icon svg{stroke:var(--text3)}.contact-link:hover .contact-link-icon svg{stroke:var(--accent)}.decoration-none{text-decoration:none}.uppercase{text-transform:uppercase}.top-0,.project-card:before{top:0}.hamburger-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.hamburger-open span:first-child{transform:translateY(7px)rotate(45deg)}.form-submit,.btn-primary{transition:background .15s}.btn-secondary,.resume-download-btn{transition:background .15s,border-color .15s,color .15s}.contact-link,.nav-links a,.project-link{transition:color .15s}.hero-eyebrow:before{width:28px}@media (width<=860px){.skills-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=660px){.nav-links{background:var(--bg1);border-bottom:1px solid var(--border1);z-index:99;gap:0;padding:1rem 1.5rem 1.5rem;display:none;position:absolute;top:56px;left:0;right:0}.nav-links a:hover{background:var(--accent2);color:var(--color-white)}.nav-links a{color:var(--text1);text-align:center;width:100%;margin:0 -1.5rem;font-size:15px}.hamburger,.nav-links.nav-open{display:flex}.hamburger,.nav-links,footer{flex-direction:column}.hero-locations{flex-wrap:wrap;gap:1.5rem}.exp-item{gap:.4rem}footer{gap:.5rem}.contact-wrap,.form-row,.exp-item{grid-template-columns:1fr}nav{padding:0 1rem}section{padding:3.5rem 1rem}}@media (width<=505px){.skills-cards-grid{grid-template-columns:1fr}}
