@keyframes react-loading-skeleton{to{transform:translate(100%)}}.react-loading-skeleton{--base-color: #ebebeb;--highlight-color: #f5f5f5;--animation-duration: 1.5s;--animation-direction: normal;--pseudo-element-display: block;background-color:var(--base-color);width:100%;border-radius:.25rem;display:inline-flex;line-height:1;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden}.react-loading-skeleton:after{content:" ";display:var(--pseudo-element-display);position:absolute;top:0;left:0;right:0;height:100%;background-repeat:no-repeat;background-image:var( --custom-highlight-background, linear-gradient( 90deg, var(--base-color) 0%, var(--highlight-color) 50%, var(--base-color) 100% ) );transform:translate(-100%);animation-name:react-loading-skeleton;animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite}@media(prefers-reduced-motion){.react-loading-skeleton{--pseudo-element-display: none}}.contact-info{display:flex;gap:1.75rem;flex-wrap:wrap;margin-top:0}.contact-info-item{margin:0;color:#ffffff73;font-size:.82rem;display:flex;align-items:center;gap:.4rem}.contact-info-item a{color:#ffffffb8;text-decoration:none;font-family:var(--font-mono);font-size:.8rem;transition:color .2s ease}.contact-info-item a:hover{color:var(--color-teal-bright)}.contact-icon{width:13px;height:13px;flex-shrink:0;opacity:.5}.contact-link-url{display:none}@media(max-width:768px){.contact-info{flex-direction:column;gap:.5rem}}@media print{.contact-info-item--social{display:none}.contact-info{flex-direction:column;gap:.25rem;align-items:flex-end}.contact-info-item{color:#333;font-size:.75rem;justify-content:flex-end;gap:.3rem}.contact-info-item a{color:#333;text-decoration:none;font-family:var(--font-body);font-size:.75rem}.contact-icon{width:10px;height:10px;opacity:1;color:var(--color-teal)}.contact-link-label{display:none}.contact-link-url{display:inline}.url-protocol{display:none}}.user-profile{background:linear-gradient(135deg,var(--color-profile-bg-start) 0%,var(--color-profile-bg-end) 100%);padding:2.5rem 3rem;border-radius:12px;position:relative;overflow:hidden}.user-profile:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-teal),transparent 70%)}.profile-header{display:flex;align-items:flex-start;gap:2rem;margin-bottom:0}.profile-image-wrapper{flex-shrink:0}.profile-image{width:96px;height:96px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.18);display:block}.profile-info{flex:1;min-width:0}.profile-info h1{margin:0 0 .4rem;color:#fff;font-size:2.8rem;font-weight:700;letter-spacing:-.02em;line-height:1.05}.profile-info .title{display:block;margin:0 0 1rem;color:var(--color-teal-bright);font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;border:none;padding:0}.profile-bio{margin-top:1.75rem;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.08)}.profile-bio-heading{font-family:var(--font-body);font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-teal-bright);margin-bottom:.75rem;border:none;padding:0}.profile-bio p{color:#fffc;line-height:1.75;margin:0;font-size:.93rem}@media(max-width:768px){.user-profile{padding:2rem 1.5rem}.profile-header{flex-direction:column;align-items:flex-start;gap:1.25rem}.profile-info h1{font-size:2.2rem}}@media print{.user-profile{background:#fff;border:none;border-left:4px solid var(--color-teal);border-bottom:2px solid var(--color-teal);padding:.5rem 0 1rem 1rem;margin-bottom:0;position:static;overflow:visible;border-radius:0;display:block}.user-profile:before{display:none}.profile-image-wrapper{display:block;flex-shrink:0}.profile-image{width:68px;height:68px;border-radius:50%;border:1.5px solid var(--color-teal);object-fit:cover}.profile-header{display:flex;flex-direction:row;gap:1rem;margin-bottom:.5rem;align-items:flex-start}.profile-info{display:grid;grid-template-columns:1fr auto;column-gap:2rem;align-items:start;width:100%}.profile-info h1{grid-column:1;grid-row:1;color:var(--color-navy);font-size:2.2rem;margin:0 0 .2rem;font-family:var(--font-display);letter-spacing:-.02em;line-height:1}.profile-info .title{grid-column:1;grid-row:2;color:var(--color-teal);font-size:.65rem;margin-bottom:0;font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-body);display:block}.contact-info{grid-column:2;grid-row:1 / 3}.profile-bio{margin-top:.6rem;padding-top:0;border-top:none}.profile-bio-heading{display:none}.profile-bio p{color:#444;font-size:.82rem;line-height:1.55}}.job-history h2{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-teal-accessible);background:none;border:none;padding:0;border-radius:0}.job-history h2:after{content:"";flex:1;display:block;height:1px;background:var(--color-border)}.jobs-container{position:relative;padding-left:1.5rem;border-left:2px solid var(--color-border);display:flex;flex-direction:column}.job-card{position:relative;padding:0 0 2rem;background:none;border:none;box-shadow:none;border-radius:0;transition:none}.job-card:last-child{padding-bottom:0}.job-card:before{content:"";position:absolute;left:calc(-1.5rem - 1px);top:5px;width:10px;height:10px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-teal);transform:translate(-50%);box-sizing:border-box;transition:background .2s ease}.job-card:hover:before{background:var(--color-teal)}.job-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.2rem;flex-wrap:wrap;gap:.25rem}.job-header h3{margin:0;color:var(--color-text-primary);font-size:1rem;font-family:var(--font-body);font-weight:600}.company{color:var(--color-teal-accessible);font-weight:600;font-size:.88rem}.job-dates{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-muted);background:none;padding:0;border-radius:0;letter-spacing:.02em;margin-bottom:.55rem}.job-description{color:var(--color-text-secondary);line-height:1.65;margin:0;font-size:.9rem;white-space:pre-wrap}@media print{.job-history{margin:1rem 0 .75rem}.job-history h2{color:var(--color-navy);margin-bottom:.75rem;font-size:.82rem}.job-history h2:after{background:var(--color-teal)}.jobs-container{padding-left:0;border-left:none}.job-card{padding:.5rem 0;border-top:1px solid #ddd;page-break-inside:avoid}.job-card:before{display:none}.job-header{flex-wrap:wrap;gap:0;align-items:baseline;margin-bottom:.1rem}.company{order:-1;color:var(--color-navy);font-weight:700;font-size:.88rem}.job-header h3{color:var(--color-text-secondary);font-size:.85rem;font-weight:400;font-style:italic}.job-header h3:before{content:" — ";font-style:normal}.job-dates{color:#555;font-size:.75rem}.job-description{color:#444;font-size:.78rem}}.education-history h2{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-teal-accessible);background:none;border:none;padding:0;border-radius:0}.education-history h2:after{content:"";flex:1;display:block;height:1px;background:var(--color-border)}.education-container{position:relative;padding-left:1.5rem;border-left:2px solid var(--color-border);display:flex;flex-direction:column}.education-card{position:relative;padding:0 0 2rem;background:none;border:none;box-shadow:none;border-radius:0;transition:none}.education-card:last-child{padding-bottom:0}.education-card:before{content:"";position:absolute;left:calc(-1.5rem - 1px);top:5px;width:10px;height:10px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-teal);transform:translate(-50%);box-sizing:border-box;transition:background .2s ease}.education-card:hover:before{background:var(--color-teal)}.education-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.2rem;flex-wrap:wrap;gap:.25rem}.education-header h3{margin:0;color:var(--color-text-primary);font-size:1rem;font-family:var(--font-body);font-weight:600}.institution{color:var(--color-teal-accessible);font-weight:600;font-size:.88rem}.education-field{display:block;color:var(--color-text-muted);font-size:.85rem;font-style:italic;margin-bottom:.35rem}.education-dates{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-muted);background:none;padding:0;border-radius:0;letter-spacing:.02em;margin-bottom:.55rem}.education-description{color:var(--color-text-secondary);line-height:1.65;margin:0;font-size:.9rem}@media print{.education-history{margin:1rem 0 .75rem}.education-history h2{color:var(--color-navy);margin-bottom:.75rem;font-size:.82rem}.education-history h2:after{background:var(--color-teal)}.education-container{padding-left:0;border-left:none}.education-card{padding:.5rem 0;border-top:1px solid #ddd;page-break-inside:avoid}.education-card:before{display:none}.education-header{flex-wrap:wrap;gap:0;align-items:baseline;margin-bottom:.1rem}.institution{order:-1;color:var(--color-navy);font-weight:700;font-size:.88rem}.education-header h3{color:var(--color-text-secondary);font-size:.85rem;font-weight:400;font-style:italic}.education-header h3:before{content:" — ";font-style:normal}.education-field,.education-dates{color:#555;font-size:.75rem}.education-description{color:#444;font-size:.78rem}}.projects h2{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-teal-accessible);background:none;border:none;padding:0;border-radius:0}.projects h2:after{content:"";flex:1;display:block;height:1px;background:var(--color-border)}.projects-container{display:flex;flex-direction:column;gap:.875rem}.project-card{background:var(--color-surface);padding:1.125rem 1.375rem;border-radius:8px;border:1px solid var(--color-border);box-shadow:none;transition:border-color .2s ease}.project-card:hover{border-color:var(--color-teal);transform:none}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;gap:.75rem}.project-header h3{margin:0;color:var(--color-text-primary);font-size:.95rem;font-family:var(--font-body);font-weight:600}.project-role{display:inline-block;background:var(--color-teal-light);color:var(--color-teal-accessible);font-size:.7rem;font-weight:700;padding:.2rem .65rem;border-radius:100px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.project-description{color:var(--color-text-secondary);line-height:1.6;margin:0;font-size:.88rem}@media print{.projects{margin:1rem 0 .75rem}.projects h2{color:var(--color-navy);margin-bottom:.75rem;font-size:.82rem}.projects h2:after{background:var(--color-teal)}.projects-container{gap:.5rem}.project-card{background:transparent;border:none;border-top:1px solid #ddd;border-radius:0;padding:.5rem 0;page-break-inside:avoid}.project-header h3{color:var(--color-navy);font-size:.9rem}.project-role{background:transparent;color:var(--color-teal);padding:0;font-size:.75rem;border-radius:0;text-transform:none}.project-description{color:#444;font-size:.78rem}}.skills h2{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-teal-accessible);background:none;border:none;padding:0;border-radius:0}.skills h2:after{content:"";flex:1;display:block;height:1px;background:var(--color-border)}.skills-list{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0;background:none;border:none;box-shadow:none}.skill-item{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);padding:.3rem .75rem;border-radius:100px;font-size:.82rem;font-weight:500;line-height:normal;transition:border-color .2s ease,color .2s ease;cursor:default}.skill-item:hover{border-color:var(--color-teal);color:var(--color-teal)}@media print{.skills{margin:1rem 0 .75rem}.skills h2{color:var(--color-navy);margin-bottom:.75rem;font-size:.82rem}.skills h2:after{background:var(--color-teal)}.skills-list{display:block;list-style:disc;padding-left:1.1rem}.skill-item{display:list-item;border:none;background:transparent;padding:0;border-radius:0;color:#333;font-size:.78rem;margin-bottom:.1rem}}.achievements h2{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-teal-accessible);background:none;border:none;padding:0;border-radius:0}.achievements h2:after{content:"";flex:1;display:block;height:1px;background:var(--color-border)}.achievements-container{display:flex;flex-direction:column;gap:.75rem}.achievement-card{background:var(--color-surface);padding:1rem 1.125rem;border-radius:6px;border:1px solid var(--color-border);box-shadow:none;transition:border-color .2s ease}.achievement-card:hover{border-color:var(--color-teal)}.achievement-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.35rem;gap:.5rem}.achievement-header h3{margin:0;color:var(--color-text-primary);font-size:.9rem;font-family:var(--font-body);font-weight:600;line-height:1.3}.achievement-date{display:inline-block;font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);background:none;padding:0;border-radius:0;white-space:nowrap;flex-shrink:0}.achievement-description{color:var(--color-text-secondary);line-height:1.55;margin:0;font-size:.84rem}@media print{.achievements{margin:1rem 0 .75rem}.achievements h2{color:var(--color-navy);margin-bottom:.75rem;font-size:.82rem}.achievements h2:after{background:var(--color-teal)}.achievements-container{gap:.5rem}.achievement-card{background:transparent;border:none;border-top:1px solid #ddd;border-radius:0;padding:.5rem 0;page-break-inside:avoid}.achievement-header{justify-content:flex-start;gap:.35rem;align-items:baseline;margin-bottom:.15rem}.achievement-header h3{color:var(--color-navy);font-size:.82rem}.achievement-date{color:#555;font-size:.72rem;font-family:var(--font-body);font-weight:600;background:none;padding:0}.achievement-description{color:#444;font-size:.75rem}}.profile-page{min-height:100vh;background-color:var(--color-background);padding:2.5rem 1.5rem}.container{max-width:1100px;margin:0 auto}.content-grid{display:grid;grid-template-columns:1fr 300px;gap:2.5rem;margin-top:2.5rem;align-items:start}.main-column{display:flex;flex-direction:column;gap:2.5rem}.sidebar-column{display:flex;flex-direction:column;gap:2rem}.profile-skeleton-container{background:var(--color-navy);padding:2.5rem 3rem;border-radius:12px;display:flex;gap:2rem;align-items:flex-start}.profile-skeleton-image{flex-shrink:0}.profile-skeleton-info{flex:1}.profile-skeleton-contact{display:flex;gap:2rem;flex-wrap:wrap}.history-skeleton-card{background:var(--color-surface);padding:1.5rem;border-radius:8px;border:1px solid var(--color-border)}.loading,.error{background:var(--color-surface);padding:2rem;border-radius:8px;text-align:center;font-size:1rem;border:1px solid var(--color-border)}.loading{color:var(--color-text-muted)}.error{color:var(--color-error);border-left:4px solid var(--color-error)}@media(max-width:900px){.content-grid{grid-template-columns:1fr}}@media(max-width:600px){.profile-page{padding:1.5rem 1rem}}@media print{:root{--print-bg: #ffffff;--print-text: #0d1f36;--print-accent: #0a9ba4;--print-strong: #0d1f36}body,.profile-page{background:var(--print-bg);color:var(--print-text);padding:0;min-height:0}*{box-shadow:none!important;text-shadow:none!important;background-image:none!important}.container{max-width:100%;margin:0;padding:0}html,body{margin:0;padding:0}a{color:var(--print-accent);text-decoration:underline}.content-grid{display:flex;flex-direction:row;align-items:flex-start;gap:1.25rem;margin-top:.75rem}.main-column{display:flex;flex-direction:column;flex:1;gap:0}.sidebar-column{display:flex;flex-direction:column;width:200px;flex-shrink:0;gap:0}button,[role=button]{display:none}.user-profile{page-break-inside:avoid}.user-profile{margin-bottom:.5rem}}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:fixed;top:0;left:0;width:auto;height:auto;padding:.75rem 1.5rem;background:var(--color-navy);color:#fff;font-size:1rem;font-weight:600;z-index:9999;outline:2px solid var(--color-teal-bright);outline-offset:2px}.App-header{background-color:var(--color-navy);min-height:52px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;color:#fff;box-shadow:0 1px #ffffff0f;padding:0 2rem;position:sticky;top:0;z-index:100}.App-header .site-title{font-family:var(--font-display);font-size:1.55rem;font-weight:600;margin:0;letter-spacing:0}@media print{.App-header{display:none}}.App-header-link{color:inherit;text-decoration:none}.App-header-link:hover{text-decoration:none}.App-header-link:focus{text-decoration:none}.App-header-link:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px;border-radius:2px}.header-actions{display:flex;align-items:center;gap:.75rem}.download-btn{background:transparent;color:#ffffffb3;border:1px solid rgba(255,255,255,.22);padding:.35rem 1rem;border-radius:4px;font-size:.72rem;font-family:var(--font-body);font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.download-btn:hover{background-color:#ffffff1a;color:#fff;border-color:#ffffff73}.download-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;color:#fff;border-color:#ffffff73}.language-switcher{display:flex;align-items:center}.language-select{background-color:#ffffff26;color:#ffffffe6;border:1px solid rgba(255,255,255,.3);padding:.375rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem;font-family:var(--font-body);transition:all .2s ease}.language-select:hover{background-color:var(--color-focus-ring);color:var(--color-navy);border-color:var(--color-focus-ring)}.language-select:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.language-select option{background-color:var(--color-navy);color:#fff;font-family:var(--font-body)}.theme-switcher{display:flex;align-items:center}.theme-select{background-color:#ffffff26;color:#ffffffe6;border:1px solid rgba(255,255,255,.3);padding:.375rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem;font-family:var(--font-body);transition:all .2s ease}.theme-select:hover{background-color:var(--color-focus-ring);color:var(--color-navy);border-color:var(--color-focus-ring)}.theme-select:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.theme-select option{background-color:var(--color-navy);color:#fff;font-family:var(--font-body)}.App-footer{text-align:center;padding:1rem 2rem;font-size:.75rem;color:var(--color-text-muted)}@media print{.App-footer{display:none}}@media(max-width:600px){.App-header{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 1.5rem}.header-actions{align-self:flex-end}}:root{--color-navy: #0d1f36;--color-teal: #0a9ba4;--color-teal-accessible: #065f65;--color-teal-bright: #12bdc8;--color-teal-light: #e3f6f8;--color-background: #f0ece7;--color-surface: #ffffff;--color-text-primary: #0d1f36;--color-text-secondary: #445566;--color-text-muted: #5a6470;--color-border: #dcd6ce;--color-bio-text: #c8dde8;--color-error: #d32f2f;--color-profile-bg-start: #0d1f36;--color-profile-bg-end: #0a2740;--color-focus-ring: #12bdc8;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-family:var(--font-display)}code{font-family:var(--font-mono)}html,body,#root{height:100%;width:100%}@media print{html,body,#root{height:auto}}
