:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e8edf3;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--color-bg:#11151b;--color-surface:#1a2028;--color-surface-subtle:#222a34;--color-text:#e8edf3;--color-muted:#abb5c2;--color-border:#35404c;--color-control-border:#768393;--color-accent:#4caa88;--color-accent-hover:#6bb99c;--color-on-accent:#06251b;--color-error:#f77;--color-success:#59d98e;--color-shadow:#0000007a;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;background:#11151b;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:400;line-height:1.6}*{box-sizing:border-box}html{scrollbar-color:transparent var(--color-bg);scrollbar-width:auto;min-width:320px;scroll-padding-top:1rem}html.scrollbar-visible{scrollbar-color:#657181 #222a34}html::-webkit-scrollbar{width:12px;height:12px}html::-webkit-scrollbar-track{background:var(--color-bg)}html::-webkit-scrollbar-thumb{background:0 0;border:2px solid #0000;border-radius:999px}html.scrollbar-visible::-webkit-scrollbar-track{background:#222a34}html.scrollbar-visible::-webkit-scrollbar-thumb{background:#657181;border-color:#222a34}html.scrollbar-visible::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}body{min-width:320px;min-height:100vh;margin:0}button,a{font:inherit}a{color:var(--color-accent);text-underline-offset:.2em}a:focus-visible,button:focus-visible,main:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}button{color:inherit}.skip-link{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);padding:.65rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.footer-inner{width:min(100% - 2rem,72rem);margin-inline:auto}.site-navigation{z-index:20;left:50%;bottom:max(1rem, env(safe-area-inset-bottom));border:1px solid color-mix(in srgb, var(--color-accent) 45%, var(--color-border));background:var(--color-surface);max-width:calc(100vw - 1rem);box-shadow:0 .25rem .9rem var(--color-shadow);border-radius:999px;align-items:center;gap:.25rem;padding:.45rem .55rem;display:flex;position:fixed;transform:translate(-50%)}.nav-link{width:clamp(3.25rem,5vw,3.75rem);min-width:44px;height:3.25rem;min-height:44px;color:var(--color-text);border-radius:.75rem;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.08rem;text-decoration:none;transition:transform .15s,background-color .15s,color .15s;display:flex}.navigation-icon-wrap{border:2px solid var(--color-border);background:var(--color-bg);border-radius:50%;place-items:center;width:2.15rem;height:2.15rem;transition:transform .15s,background-color .15s,color .15s;display:grid}.navigation-icon{width:1.3rem;height:1.3rem}.nav-link-label{letter-spacing:.015em;font-size:.68rem;font-weight:600;line-height:1}.nav-link:hover{color:var(--color-accent)}.nav-link:hover .navigation-icon-wrap{transform:translateY(-2px)}.nav-link.is-active .navigation-icon-wrap{border-color:var(--color-border);background:var(--color-accent);color:var(--color-on-accent)}.nav-link.is-active .nav-link-label{color:var(--color-accent)}.nav-link:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.footer-inner{align-items:center;display:flex}.main-content{width:min(100% - 2rem,72rem);min-height:calc(100vh - 9rem);margin-inline:auto}.main-content.admin-main-content{width:min(100% - 2rem,92rem)}.page-section{padding-block:clamp(2rem,4vw,3rem)}.main-content>.page-section+.page-section{border-top:2px solid var(--color-border)}.main-content>#home+.page-section{border-top:0}.page-section[id]{scroll-margin-top:1rem}.eyebrow{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.875rem}h1,h2,h3,h4{color:var(--color-text);font-family:var(--font-mono);font-weight:500;line-height:1.25}h1{max-width:18ch;margin:0;font-size:clamp(1.75rem,5vw,2.5rem)}.home-name{font-weight:700}.home-role{color:var(--color-muted);font-family:var(--font-mono);margin:.35rem 0 0;font-size:1.05rem}.home-hero .page-intro{margin-top:.65rem}.home-hero{background-image:radial-gradient(ellipse at center, transparent 24%, var(--color-bg) 100%), linear-gradient(to right, color-mix(in srgb, var(--color-accent) 12%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--color-accent) 12%, transparent) 1px, transparent 1px);background-position:50%,0 0,0 0;background-size:auto,28px 28px,28px 28px;padding-block:clamp(4rem,8vw,6rem)}.home-hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.home-hero-actions .button{text-decoration:none}.home-cta-primary{background:var(--color-accent);color:var(--color-on-accent);text-decoration:none}.home-cta-primary:hover{background:var(--color-accent-hover)}.home-hero.has-photo{grid-template-columns:minmax(0,62ch) minmax(12rem,18rem);grid-template-areas:"copy photo";justify-content:start;align-items:center;gap:clamp(4.5rem,6vw,5.5rem);display:grid}.home-hero-copy{grid-area:copy;min-width:0;max-width:52ch}.home-hero-badge{grid-area:photo;justify-self:start;width:min(100%,18rem);margin-left:.5rem;padding-top:2.65rem;position:relative}.home-hero-rope{box-sizing:border-box;border:2px solid var(--color-border);background:var(--color-accent);transform-origin:bottom;width:.65rem;height:calc(100vh + 4rem);position:absolute;top:calc(-100vh - .75rem);left:calc(50% - .325rem)}.home-hero-rope-left{transform:rotate(-4deg)}.home-hero-rope-right{transform:rotate(4deg)}.home-hero-photo{aspect-ratio:1;z-index:1;border:2px solid var(--color-border);width:100%;box-shadow:6px 6px 0 var(--color-shadow);object-fit:cover;border-radius:8px;display:block;position:relative}.home-hero .page-intro{max-width:62ch}h2{margin:0 0 1rem;font-size:1.25rem}.content-section>h2{color:var(--color-accent);margin-bottom:1.5rem;font-size:clamp(1.65rem,3vw,2rem);font-weight:600}p{margin-block:0 1rem}.page-intro{max-width:62ch;color:var(--color-muted);margin-top:1.25rem;font-size:1.125rem}.content-block{margin-top:clamp(3rem,7vw,5rem)}.empty-state{color:var(--color-muted);border-top:1px solid var(--color-border);margin-top:2rem;padding:1rem 0}.project-list{gap:2rem;margin-top:2rem;display:grid}.project-entry{border-bottom:1px solid var(--color-border);gap:1.25rem;min-width:0;padding-bottom:2rem;display:grid}.project-image,.detail-image{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;width:100%;height:auto;display:block}.project-copy{min-width:0}.project-heading{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.project-heading h3{font-family:var(--font-mono);margin:0;font-size:1.1rem;font-weight:500;line-height:1.35}.status-tag,.technology-tag{border:1px solid var(--color-border);min-height:28px;font-family:var(--font-mono);border-radius:4px;align-items:center;padding:.15rem .55rem;font-size:.8rem;line-height:1.35;display:inline-flex}.status-tag{color:var(--color-muted);white-space:nowrap}.technology-list{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.technology-tag{background:var(--color-surface)}.project-copy .technology-tag{border-color:color-mix(in srgb, var(--color-accent) 38%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));color:var(--color-accent);font-weight:600}.project-actions{flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1rem;display:flex}.project-actions a{min-height:44px;font-family:var(--font-mono);align-items:center;font-size:.9rem;display:inline-flex}.detail-actions a{min-height:48px;font-size:1rem;font-weight:600}.skills-section{margin-top:clamp(2rem,5vw,3rem)}.profile-details-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem;margin-top:clamp(2rem,5vw,3rem);display:grid}.profile-details-grid .skills-section,.profile-details-grid .profile-section{background:0 0;border:0;border-radius:0;margin-top:0;padding:0}.profile-details-grid .profile-section{border-top:1px solid var(--color-border);padding-top:1.5rem}.profile-details-grid .skills-section{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;display:grid}.profile-details-grid .skills-heading{grid-column:1/-1}.profile-details-grid .skill-category+.skill-category{margin-top:0}.skills-heading{color:var(--color-accent);font-family:var(--font-mono);margin:0 0 1rem;font-size:1.3rem;font-weight:600}.skill-category h4{color:var(--color-accent-hover);font-family:var(--font-mono);margin:0;font-size:1.1rem;font-weight:700}.skill-bullet-list{gap:.35rem;margin:.65rem 0 0;padding-left:1.25rem;list-style:outside;display:grid}.profile-intro{margin:0}.profile-intro-education-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(2rem,4vw,3rem);margin-top:1.25rem;display:grid}.profile-intro-education-grid>.profile-section{margin-top:0}.profile-intro-education-grid>:only-child{grid-column:1/-1}.profile-intro-copy,.profile-entry-description{max-width:70ch;color:var(--color-muted);white-space:pre-wrap}.profile-section{margin-top:2rem}.profile-section>h3{color:var(--color-accent);font-family:var(--font-mono);margin:0 0 1rem;font-size:1.3rem;font-weight:600}.profile-entry-list{gap:1.25rem;display:grid}.profile-entry h4{font-family:var(--font-mono);margin:0;font-size:.98rem;font-weight:600}.profile-entry-meta{color:var(--color-muted);margin:.2rem 0 0}.profile-entry-description{margin:.5rem 0 0}.profile-cv-actions{margin-top:1.25rem;display:flex}.cv-download{margin-top:0;text-decoration:none}.detail-status{margin-top:.75rem}.detail-image{object-fit:contain;max-height:28rem}.project-gallery{margin-top:1.25rem}.gallery-main-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.gallery-main-button .detail-image{margin:0}.gallery-thumbnails{gap:.75rem;margin-top:.75rem;padding:.25rem 0 .5rem;display:flex;overflow-x:auto}.gallery-thumbnail{background:var(--color-surface);cursor:pointer;border:2px solid #0000;border-radius:4px;flex:0 0 6rem;width:6rem;height:4rem;padding:0}.gallery-thumbnail.is-selected{border-color:var(--color-accent)}.gallery-thumbnail img{object-fit:cover;width:100%;height:100%;display:block}.detail-block{margin-top:1.5rem}.detail-summary-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem;margin-top:.75rem;display:grid}.detail-summary-grid.has-technologies{grid-template-columns:minmax(0,1fr) minmax(12rem,.65fr)}.detail-summary-grid .page-intro,.detail-summary-grid .detail-block{margin:0}.detail-summary-grid .page-intro{max-width:none}.detail-summary-grid .technology-list{margin-top:0}.detail-block h2{color:var(--color-accent);margin-bottom:.65rem}.detail-copy{white-space:pre-wrap}.detail-actions{margin-top:1rem}.project-back-link{margin-bottom:1rem}.project-back-bottom{margin-top:1.5rem;margin-bottom:0}.project-detail-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;padding:clamp(1.25rem,3vw,1.75rem)}.project-detail-panel h1{max-width:32ch;font-size:clamp(1.5rem,3.5vw,2rem);line-height:1.25}.project-detail-panel .page-intro{margin-top:.75rem;font-size:1rem}.lightbox{color:#fff;background:#141414;border:0;width:min(100vw,72rem);max-width:100vw;height:100dvh;max-height:100dvh;padding:1rem;position:fixed;inset:0}.lightbox::backdrop{background:#000000e0}.lightbox[open]{grid-template-rows:auto minmax(0,1fr);align-items:center;display:grid}.lightbox-toolbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.lightbox-toolbar .button{color:#fff;border-color:#ffffffa6}.lightbox-image{object-fit:contain;max-width:min(100%,64rem);max-height:calc(100dvh - 6rem);margin:auto;display:block}.lightbox-nav{z-index:1;color:#fff;cursor:pointer;background:#0000008c;border:1px solid #ffffffa6;border-radius:50%;width:48px;height:48px;font-size:2rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-previous{left:1rem}.lightbox-next{right:1rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.text-link{min-height:44px;font-family:var(--font-mono);align-items:center;gap:.45rem;font-weight:600;display:inline-flex}.button{border:1px solid var(--color-accent);min-height:44px;font-family:var(--font-mono);cursor:pointer;border-radius:4px;padding:.55rem 1rem}.button-secondary{color:var(--color-accent);background:0 0}.button-secondary:hover{background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface))}.admin-auth-page{width:min(100%,30rem);margin-inline:auto;padding-block:clamp(3rem,10vh,6rem)}.admin-auth-page>.eyebrow{margin-bottom:.5rem}.admin-auth-page>h1{margin-bottom:1.5rem}.admin-auth-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;padding:clamp(1.25rem,4vw,2rem)}.admin-auth-form{gap:.6rem;display:grid}.admin-auth-form label{font-family:var(--font-mono);margin-top:.5rem;font-size:.9rem}.admin-auth-form input{border:1px solid var(--color-control-border);background:var(--color-bg);width:100%;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.55rem .7rem}.admin-primary-button{background:var(--color-accent);color:var(--color-on-accent);margin-top:.75rem}.admin-primary-button:hover{background:var(--color-accent-hover)}.admin-primary-button:disabled,.admin-google-button:disabled{opacity:.6;cursor:wait}.admin-google-button{width:100%;margin-top:1rem}.admin-forgot-link{align-items:center;min-height:44px;margin-top:.5rem;display:inline-flex}.auth-notice,.auth-success{border:1px solid var(--color-border);border-radius:4px;margin:0 0 1rem;padding:.75rem}.auth-notice{color:var(--color-error)}.auth-success{color:var(--color-text);background:color-mix(in srgb, var(--color-success) 13%, var(--color-surface))}.admin-shell{grid-template-columns:11rem minmax(0,1fr);gap:1.5rem;width:min(100%,92rem);margin-inline:auto;display:grid}.admin-sidebar{padding-block:1rem;border-right:1px solid var(--color-border);flex-direction:column;align-self:start;align-items:stretch;gap:1rem;height:calc(100vh - 2rem);padding-right:1rem;display:flex;position:sticky;top:1rem}.admin-sidebar-header,.admin-sidebar-panel{display:contents}.admin-brand{color:var(--color-text);font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:.75rem;font-weight:700;text-decoration:none;display:inline-flex}.admin-menu-toggle{border:1px solid var(--color-border);background:var(--color-surface);min-width:44px;min-height:44px;font-family:var(--font-mono);border-radius:4px;justify-content:center;align-items:center;gap:.45rem;display:none}.admin-navigation{align-content:start;gap:.25rem;display:grid}.admin-nav-link{min-height:44px;color:var(--color-muted);font-family:var(--font-mono);border-left:3px solid #0000;align-items:center;padding-inline:.75rem;text-decoration:none;display:flex}.admin-nav-link.is-current,.admin-nav-link:hover{border-left-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));color:var(--color-accent)}.admin-signout{margin-top:auto}.admin-content{min-width:0;padding-block:.75rem 1.5rem}.admin-profile-page{gap:1.25rem;max-width:64rem;display:grid}.admin-profile-top-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1.25rem;display:grid}.admin-profile-section{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;align-content:start;gap:.85rem;min-width:0;padding:1rem;display:grid}.admin-profile-section>h2{margin:0;font-size:1.2rem}.admin-profile-section h3{font-family:var(--font-mono);margin:0;font-size:1rem}.admin-homepage-form{gap:1.25rem;display:grid}.admin-homepage-actions{gap:.75rem;display:grid}.admin-homepage-action-card{border:1px solid var(--color-border);background:var(--color-surface-subtle);border-radius:4px;align-content:start;gap:.5rem;min-width:0;padding:.85rem;display:grid}.admin-homepage-save{width:100%}.admin-profile-section textarea,.admin-profile-section input,.admin-profile-section select{border:1px solid var(--color-control-border);background:var(--color-bg);width:100%;min-width:0;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.6rem .7rem}.admin-profile-section input[type=file],.admin-media-upload>input[type=file]{border:1px solid var(--color-control-border);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.35rem}.admin-profile-section input[type=file]::file-selector-button{border:1px solid var(--color-border);background:var(--color-surface-subtle);min-height:34px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:3px;margin-right:.65rem;padding:.35rem .7rem}.admin-media-upload>input[type=file]::file-selector-button{border:1px solid var(--color-border);background:var(--color-surface-subtle);min-height:34px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:3px;margin-right:.65rem;padding:.35rem .7rem}.admin-profile-section input[type=file]:disabled,.admin-media-upload>input[type=file]:disabled{opacity:.6;cursor:wait}.admin-profile-section textarea{resize:vertical}.admin-profile-wide-field,.admin-profile-entry-fields label,.admin-profile-file-card>label,.admin-profile-add-category>label,.admin-profile-add-skill>label,.admin-profile-category-heading>label,.admin-profile-skill-list label{font-family:var(--font-mono);gap:.35rem;font-size:.9rem;display:grid}.admin-profile-files{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.admin-profile-cv-card{grid-column:1/-1}.admin-profile-file-card,.admin-profile-entry,.admin-profile-add-entry,.admin-profile-category{border:1px solid var(--color-border);border-radius:4px;align-content:start;gap:.75rem;min-width:0;padding:.9rem;display:grid}.admin-profile-photo-preview{aspect-ratio:1;border:1px solid var(--color-border);background:var(--color-bg);object-fit:cover;border-radius:4px;width:min(100%,14rem);max-height:14rem;display:block}.admin-profile-entry-list,.admin-profile-categories,.admin-profile-skill-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.admin-profile-entry-list-education,.admin-profile-entry-list-experience{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-profile-entry-add-card{min-width:0}.admin-profile-categories{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.admin-profile-entry-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.admin-profile-entry-fields label.is-wide{grid-column:1/-1}.admin-profile-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.admin-profile-actions>.button,.admin-profile-add-entry>.button{min-height:44px;margin-top:0;padding:.4rem .65rem;font-size:.85rem}.admin-profile-add-category,.admin-profile-add-skill{justify-items:start;gap:.4rem;display:grid}.admin-profile-add-category>div,.admin-profile-add-skill>div{align-items:center;gap:.5rem;width:min(100%,32rem);display:flex}.admin-profile-add-category .button,.admin-profile-add-skill .button{white-space:nowrap;min-height:44px;margin-top:0}.admin-profile-category-add{background:var(--color-surface-subtle);border-style:dashed;align-content:center;min-height:10rem}.admin-profile-category-add .admin-profile-add-category,.admin-profile-category-add .admin-profile-add-category>div{width:100%}.admin-profile-save-skills{justify-self:stretch;width:100%}.admin-profile-category-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:.65rem;display:grid}.admin-profile-category-heading>label{text-align:left;justify-self:stretch}.admin-profile-category-heading>.admin-profile-drag-handle{grid-row:1;align-self:end}.admin-profile-category-heading>.admin-profile-actions{grid-area:1/3}.admin-profile-skill-list>li{border:1px solid var(--color-border);background:var(--color-bg);border-radius:4px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.75rem;display:grid}.admin-profile-skill-list>li>label{grid-area:1/2}.admin-profile-skill-list>li>.admin-profile-actions{flex-direction:column;grid-area:1/3;align-items:stretch}.admin-profile-skill-list>li>.admin-profile-actions>.button{white-space:nowrap;width:100%}.admin-profile-category.is-dragging,.admin-profile-skill-list>li.is-dragging,.admin-profile-entry.is-dragging{opacity:.55}.admin-profile-drag-handle,.admin-drag-handle{border:1px solid var(--color-border);background:var(--color-surface);width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;color:var(--color-muted);cursor:grab;touch-action:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:1.35rem;display:inline-flex}.admin-profile-drag-handle:hover:not(:disabled),.admin-drag-handle:hover:not(:disabled){border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));color:var(--color-text)}.admin-profile-drag-handle:active,.admin-drag-handle:active{cursor:grabbing}.admin-profile-cleanups{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-profile-cleanups li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.admin-profile-cleanups code{overflow-wrap:anywhere}.admin-page-heading{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:end;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.admin-page-heading h1{max-width:none;font-size:clamp(1.5rem,2.5vw,2rem)}.admin-toolbar{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem;display:flex}.admin-search{gap:.4rem;width:min(100%,25rem);display:grid}.admin-search label{font-family:var(--font-mono);font-size:.9rem}.admin-search input{border:1px solid var(--color-control-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.55rem .7rem}.admin-add-project{min-height:44px;color:var(--color-on-accent);white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.admin-list-help{color:var(--color-muted);margin:0 0 .75rem;font-size:.9rem}.admin-project-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.admin-project-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;grid-template-columns:auto minmax(0,1fr);align-content:start;align-items:start;gap:.75rem;min-width:0;padding:1rem;display:grid}.admin-project-row.is-dragging{opacity:.55}.admin-drag-handle{grid-row:span 2;height:2.75rem;min-height:2.75rem;font-size:1.4rem}.admin-project-main{min-width:0}.admin-project-main h2{overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:600}.admin-project-main p{color:var(--color-muted);margin:.2rem 0 0;font-size:.875rem}.admin-row-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:start;align-items:center;gap:.4rem;display:flex}.admin-edit-link{white-space:nowrap;justify-content:center;align-items:center;min-height:44px;padding-inline:.65rem;font-size:.8rem;text-decoration:none;display:inline-flex}.admin-error,.admin-error-panel{color:var(--color-error)}.admin-error-panel{border:1px solid var(--color-border);border-radius:4px;padding:1rem}.admin-error-panel p{margin-bottom:.75rem}.admin-error-panel .button{color:var(--color-accent)}.admin-editor-back{align-items:center;margin-bottom:1rem;text-decoration:none;display:inline-flex}.admin-project-form{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;gap:1.5rem;max-width:64rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.admin-project-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.admin-project-primary-row{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1rem;display:grid}.admin-project-primary-fields{align-content:start;gap:1rem;min-width:0;display:grid}.admin-field{align-content:start;gap:.35rem;min-width:0;display:grid}.admin-field.is-wide{grid-column:1/-1}.admin-field label,.admin-add-technology>label{font-family:var(--font-mono);font-size:.9rem}.admin-field input,.admin-field textarea,.admin-field select,.admin-add-technology input{border:1px solid var(--color-control-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.6rem .7rem}.admin-field textarea{resize:vertical;min-height:6rem}.admin-field-error{color:var(--color-error);font-size:.875rem}.admin-technology-picker{border:1px solid var(--color-border);border-radius:4px;gap:.8rem;margin:0;padding:1rem;display:grid}.admin-technology-picker legend{font-family:var(--font-mono);padding-inline:.35rem;font-weight:600}.admin-technology-options{flex-wrap:wrap;gap:.5rem;display:flex}.admin-technology-option{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;align-items:center;gap:.5rem;min-height:44px;padding:.35rem .65rem;display:inline-flex}.admin-technology-option input{width:1rem;height:1rem;accent-color:var(--color-accent)}.admin-new-technologies{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.admin-new-technologies li{border:1px solid var(--color-accent);min-height:44px;color:var(--color-accent);border-radius:4px;align-items:center;gap:.5rem;padding:.25rem .5rem;display:inline-flex}.admin-remove-technology{min-width:44px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:.2rem .35rem;text-decoration:underline;display:inline-flex}.admin-add-technology{gap:.35rem;max-width:30rem;display:grid}.admin-add-technology>div{align-items:center;gap:.5rem;display:flex}.admin-add-technology .button{white-space:nowrap}.admin-add-technology .button:disabled,.admin-editor-actions .button:disabled,.admin-edit-link:disabled{opacity:.6;cursor:wait}.admin-editor-actions{flex-wrap:wrap;gap:.75rem;display:flex}.admin-editor-actions>.button{white-space:nowrap;justify-content:center;align-items:center;width:10rem;min-height:44px;margin-top:0;padding-inline:.6rem;display:inline-flex}.admin-project-media{border:0;border-top:1px solid var(--color-border);border-radius:0;gap:1rem;margin:0;padding:1.25rem 0 0;display:grid}.admin-project-media>legend{font-family:var(--font-mono);padding-inline:.35rem;font-weight:600}.admin-project-media>.admin-list-help,.admin-project-media>.empty-state{margin:0}.admin-media-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.admin-media-item{border:1px solid var(--color-border);border-radius:4px;grid-template-columns:minmax(8rem,12rem) minmax(0,1fr);gap:1rem;padding:.85rem;display:grid}.admin-media-preview{aspect-ratio:4/3;border:1px solid var(--color-border);background:var(--color-surface);object-fit:contain;border-radius:4px;align-self:start;width:100%;display:block}.admin-media-details{align-content:start;gap:.4rem;min-width:0;display:grid}.admin-media-details>label,.admin-media-upload>label:not(.admin-media-main-choice){font-family:var(--font-mono);font-size:.9rem}.admin-media-meta{color:var(--color-muted);margin:0;font-size:.85rem}.admin-media-alt-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.admin-media-alt-row input,.admin-media-upload>input:not([type=file]){border:1px solid var(--color-control-border);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.6rem .7rem}.admin-media-actions{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.35rem;display:flex}.admin-media-actions .button,.admin-media-alt-row .button{min-height:44px;padding:.45rem .65rem;font-size:.8rem}.admin-media-replace{cursor:pointer;align-items:center;display:inline-flex;position:relative;overflow:hidden}.admin-media-replace input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.admin-media-upload{border-top:1px solid var(--color-border);justify-items:start;gap:.5rem;max-width:36rem;padding-top:.9rem;display:grid}.admin-media-selected-preview{gap:.35rem;width:min(100%,22rem);margin:.25rem 0;display:grid}.admin-media-selected-preview img{aspect-ratio:4/3;border:1px solid var(--color-border);background:var(--color-surface);object-fit:contain;border-radius:4px;width:100%;max-height:18rem;display:block}.admin-media-selected-preview figcaption{color:var(--color-muted);font-size:.85rem}.admin-media-upload h3,.admin-media-cleanup h3{font-family:var(--font-mono);margin:0;font-size:1rem}.admin-media-main-choice{align-items:center;gap:.5rem;min-height:44px;display:inline-flex}.admin-media-main-choice input{width:1rem;height:1rem;accent-color:var(--color-accent)}.admin-media-cleanup{border:1px solid var(--color-border);border-radius:4px;gap:.5rem;padding:.9rem;display:grid}.admin-media-cleanup p{color:var(--color-muted);margin:0}.admin-media-cleanup ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-media-cleanup li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.admin-media-cleanup code{overflow-wrap:anywhere}.button-danger{color:var(--color-error);background:0 0}.button-danger:hover{background:color-mix(in srgb, var(--color-error) 14%, var(--color-surface))}.site-footer{padding-bottom:calc(6rem + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);color:var(--color-muted);font-size:.875rem}.footer-inner{text-align:center;justify-content:center;align-items:center;min-height:4.5rem;display:flex}.public-contact-methods{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:.75rem 1.5rem;margin:0;padding:0;list-style:none;display:grid}.public-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.public-contact-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;align-content:start;gap:.85rem;min-width:0;padding:1rem;display:grid}.public-contact-panel>h3{margin:0;font-size:1.1rem}.public-contact-methods li{grid-template-rows:auto auto;grid-template-columns:3rem minmax(0,1fr);align-items:start;gap:.15rem .65rem;min-width:0;padding-block:.35rem;display:grid}.public-contact-icon{border:1px solid color-mix(in srgb, var(--color-accent) 28%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 7%, var(--color-surface));width:2.75rem;height:2.75rem;color:var(--color-accent);border-radius:50%;grid-area:1/1/span 2;place-items:center;margin-top:.15rem;display:inline-grid}.public-contact-icon-svg{fill:currentColor;width:1.65rem;height:1.65rem;display:block}.public-contact-label{font-weight:600}.public-contact-methods a{overflow-wrap:anywhere;grid-column:2;min-width:0}.contact-form{gap:.55rem;display:grid}.contact-form label{font-family:var(--font-mono);margin-top:.3rem;font-size:.9rem}.contact-form input,.contact-form textarea{border:1px solid var(--color-control-border);background:var(--color-bg);width:100%;min-width:0;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.6rem .7rem}.contact-form textarea{resize:vertical;min-height:7rem}.contact-form>.button{justify-self:center;margin-top:.35rem}.contact-character-count{color:var(--color-muted);justify-self:end;margin:-.35rem 0 0;font-size:.82rem}.contact-field-error,.contact-form-error{color:var(--color-error);margin:0;font-size:.9rem}.contact-form-success{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-success) 13%, var(--color-surface));border-radius:4px;margin:0;padding:.6rem .75rem}.contact-form :disabled{cursor:wait;opacity:.7}.admin-mailbox-page{gap:1.25rem;max-width:64rem;display:grid}.admin-mailbox-section-heading,.admin-message-row-heading{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.admin-mailbox-section-heading>span{color:var(--color-muted);font-size:.9rem}.admin-message-list,.admin-contact-method-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.admin-message-row{border:1px solid var(--color-border);background:var(--color-bg);border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.65rem;min-width:0;padding:.85rem;display:grid}.admin-message-row.is-unread{border-left:3px solid var(--color-accent)}.admin-message-open{min-width:0;color:var(--color-text);gap:.3rem;text-decoration:none;display:grid}.admin-message-row-heading strong,.admin-message-row-heading time,.admin-message-detail time{overflow-wrap:anywhere}.admin-message-row-heading time,.admin-message-detail time{color:var(--color-muted);font-size:.85rem}.admin-message-preview{color:var(--color-muted);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.admin-message-notification{color:var(--color-muted);font-size:.85rem}.admin-message-notification.is-failed,.admin-message-warning{color:var(--color-error)}.admin-message-actions,.admin-contact-method-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.admin-message-actions{justify-content:flex-end}.admin-contact-method{border:1px solid var(--color-border);background:var(--color-bg);border-radius:4px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.75rem;min-width:0;padding:.85rem;display:grid}.admin-contact-method.is-dragging{opacity:.55}.admin-contact-method-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;min-width:0;display:grid}.admin-contact-method-fields label{min-width:0;font-family:var(--font-mono);align-content:start;gap:.35rem;font-size:.9rem;display:grid}.admin-contact-method-fields input,.admin-contact-method-fields select{border:1px solid var(--color-control-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);font:inherit;border-radius:4px;padding:.55rem .7rem}.admin-contact-method-fields label.is-wide{grid-column:1/-1}.admin-contact-method-controls{justify-items:end;gap:.65rem;display:grid}.admin-contact-enabled{white-space:nowrap;align-items:center;gap:.45rem;min-height:44px;display:inline-flex}.admin-contact-method-actions{justify-content:space-between;margin-top:1rem}.admin-message-detail>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.admin-message-detail-meta{flex-wrap:wrap;flex:18rem;justify-content:space-between;align-items:center;gap:.5rem 1rem;min-width:0;display:flex}.admin-message-detail>header a{overflow-wrap:anywhere}.admin-message-notification.is-detail,.admin-message-warning{margin:0}.admin-message-body{border-block:1px solid var(--color-border);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding-block:.75rem}@media (width<=1023px){.admin-shell{grid-template-columns:minmax(0,1fr);gap:0}.admin-sidebar{z-index:30;border-right:0;border-bottom:1px solid var(--color-border);background:var(--color-bg);grid-template-columns:minmax(0,1fr);gap:.5rem;height:auto;min-height:auto;padding:.75rem 0;display:grid;position:sticky;top:0}.admin-sidebar-header{z-index:33;background:var(--color-bg);grid-column:1/-1;justify-content:space-between;align-items:center;gap:.75rem;min-height:4rem;display:flex;position:relative}.admin-sidebar-header.is-menu-open{border-bottom:1px solid var(--color-border);margin-top:-.75rem;padding-inline:.25rem;position:sticky;top:0}.admin-menu-toggle{display:inline-flex}.admin-sidebar-panel{z-index:32;border-left:1px solid var(--color-border);background:var(--color-bg);visibility:hidden;pointer-events:none;grid-template-rows:1fr auto;align-content:start;gap:1rem;width:min(22rem,100vw - 2rem);padding:.75rem 1rem;transition:transform .22s,visibility 0s linear .22s;display:grid;position:fixed;top:4rem;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.admin-sidebar-panel.is-open{visibility:visible;pointer-events:auto;transition:transform .22s,visibility;transform:translate(0)}.admin-menu-backdrop{z-index:31;background:#22222259;border:0;width:100vw;position:fixed;inset:4rem auto 0 0}.admin-navigation{grid-template-columns:minmax(0,1fr);gap:0}.admin-nav-link{border-left:0;border-bottom:1px solid var(--color-border);min-height:48px;padding-inline:.5rem}.admin-nav-link.is-current,.admin-nav-link:hover{color:var(--color-accent);background:0 0;border-left-color:#0000}.admin-nav-link.is-current{border-bottom-color:var(--color-accent)}.admin-signout{margin-top:0}}@media (width<=640px){.detail-summary-grid.has-technologies{grid-template-columns:minmax(0,1fr)}.profile-intro-education-grid{grid-template-columns:minmax(0,1fr);gap:1.5rem}.public-contact-grid{grid-template-columns:minmax(0,1fr)}.admin-contact-method{grid-template-columns:auto minmax(0,1fr)}.admin-contact-method-fields{grid-template-columns:minmax(0,1fr)}.admin-contact-method-controls{flex-wrap:wrap;grid-column:2;justify-content:space-between;align-items:center;display:flex}.admin-contact-method-actions{flex-direction:column;align-items:stretch}.admin-contact-method-actions .button{width:100%}.admin-message-row-heading{flex-direction:column;align-items:start;gap:.1rem}.profile-details-grid .skills-section{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-profile-files,.admin-profile-entry-fields,.admin-profile-entry-list-education,.admin-profile-entry-list-experience{grid-template-columns:minmax(0,1fr)}.admin-profile-entry-fields label.is-wide{grid-column:auto}.admin-profile-categories,.admin-media-list,.admin-media-item{grid-template-columns:minmax(0,1fr)}.admin-media-preview{max-width:22rem}.admin-media-alt-row{grid-template-columns:minmax(0,1fr)}}@media (width<=359px){.profile-details-grid .skills-section{grid-template-columns:minmax(0,1fr)}}@media (width<=800px){.admin-profile-top-grid,.admin-project-primary-row{grid-template-columns:minmax(0,1fr)}}@media (width>=641px) and (width<=800px){.admin-profile-categories,.admin-profile-entry-list-education,.admin-profile-entry-list-experience{grid-template-columns:minmax(0,1fr)}}@media (width>=768px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1rem}.project-grid .project-entry{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;grid-template-columns:minmax(0,1fr);align-content:start;gap:.75rem;height:100%;padding:.75rem}.project-grid .project-image{aspect-ratio:16/9;object-fit:cover;max-height:13rem}}@media (width>=1024px){.site-navigation{gap:.45rem;padding:.55rem .85rem}.nav-link{width:4.25rem}.admin-homepage-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.admin-homepage-form>section[aria-labelledby=homepage-actions-title]{grid-column:1/-1}.admin-homepage-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.project-entry{grid-template-columns:minmax(16rem,.9fr) minmax(0,1fr);align-items:start;gap:2rem}}@media (width<=639px){.nav-link{width:3.25rem;height:3.15rem}.navigation-icon-wrap{width:2.05rem;height:2.05rem}.main-content{min-height:calc(100vh - 8rem)}.page-section{padding-block:2rem}.footer-inner{flex-direction:column;justify-content:center;align-items:center;padding-block:1rem}.home-hero.has-photo{grid-template-columns:minmax(0,1fr);grid-template-areas:"photo""copy";gap:1rem}.home-hero{padding-block:3.25rem 3rem}.home-hero,.home-hero-copy{min-width:0;max-width:100%}.home-hero-copy{text-align:center}.home-role,.home-hero .page-intro{overflow-wrap:anywhere}.home-hero-copy h1,.home-hero .page-intro{margin-inline:auto}.home-hero-actions{justify-content:center}.home-hero-actions>.button{overflow-wrap:anywhere;max-width:100%}.home-hero-badge{justify-self:center;width:10rem;margin-left:.35rem;padding-top:2.35rem}.home-hero-rope{width:.55rem;height:calc(100vh + 3.7rem);left:calc(50% - .275rem)}.home-hero-photo{aspect-ratio:1;object-fit:cover;width:9rem;margin-inline:auto}.lightbox{padding:.75rem}.lightbox-previous{left:.5rem}.lightbox-next{right:.5rem}.admin-content{padding-block:1.75rem}.admin-toolbar{flex-direction:column;align-items:stretch}.admin-search{width:100%}.admin-add-project{align-self:flex-start}.admin-project-list{grid-template-columns:minmax(0,1fr)}.admin-project-row{gap:.6rem .75rem}.admin-row-actions{grid-column:1/-1;justify-content:start}.admin-project-fields{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
