:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#ede7da;--color-bg:var(--color-background);--color-surface:#f5f0e6;--color-text:#211e19;--color-muted:#635c51;--color-border:#d3caba;--color-accent:#9c5424;--color-accent-soft:#9c542414;--glow-color:#211e190b;--color-overlay:#000000d9;--font-serif:"Fraunces", Georgia, serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--font-display-mono:"Major Mono Display", "Courier New", monospace;--font-size-ui:.75rem;--font-size-body:1.05rem;--font-size-h1:clamp(2.5rem, 6vw, 4rem);--line-height-body:1.65;--line-height-heading:1.05;--tracking-ui:.08em;--tracking-heading:-.025em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:5rem;--content-width:68.75rem;--prose-width:68ch;--header-height:4rem}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#14120f;--color-bg:var(--color-background);--color-surface:#1c1a16;--color-text:#ede8df;--color-muted:#9a938a;--color-border:#2c2822;--color-accent:#c2703d;--color-accent-soft:#c2703d14;--glow-color:#c2703d1a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height);scrollbar-gutter:stable}body{background-color:var(--color-background);color:var(--color-text);font-family:var(--font-serif);font-size:var(--font-size-body);font-variation-settings:"opsz" 14;line-height:var(--line-height-body);margin:0;transition:background-color .2s,color .2s}button,a{color:inherit}button{font:inherit}a{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.22em}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.site-shell{flex-direction:column;min-height:100vh;display:flex}.pointer-glow{--px:50vw;--py:50vh;z-index:0;pointer-events:none;background:radial-gradient(600px circle at var(--px) var(--py), var(--glow-color), transparent 70%);opacity:0;transition:opacity .3s;position:fixed;inset:0}.pointer-glow.is-visible{opacity:1}.container,.main-content{width:100%;max-width:var(--content-width);padding-inline:var(--space-5);margin-inline:auto}.skip-link{z-index:100;top:var(--space-3);left:var(--space-3);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:100;min-height:var(--header-height);border-bottom:1px solid var(--color-border);background-color:var(--color-bg);transition:background-color .2s,color .2s;position:sticky;top:0}.header-bar{min-height:var(--header-height);justify-content:space-between;align-items:center;gap:var(--space-5);display:flex}.header-primary,.header-actions{align-items:center;display:flex}.header-primary{gap:var(--space-7);min-width:0}.header-actions{gap:var(--space-4);flex:none}.nav-list a,.language-toggle,.icon-button{font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase}.logo,.nav-list a{line-height:1.4}.logo{color:var(--color-text);font-family:var(--font-serif);font-variation-settings:"opsz" 18;letter-spacing:-.015em;margin:0;padding:0;font-size:.95rem;font-weight:500;text-decoration:none;transform:translateY(1px)}.logo:hover{color:var(--color-accent);text-decoration:none}.logo-short,.desktop-nav{display:none}.nav-list{gap:var(--space-5);margin:0;padding:0;list-style:none;display:flex}.nav-list a{color:var(--color-muted);text-decoration:none;position:relative}.nav-list a:hover{color:var(--color-text)}.nav-list a.active{color:var(--color-accent)}.nav-list a.active:after{background-color:var(--color-accent);content:"";height:2px;position:absolute;bottom:-.4rem;left:0;right:0}.icon-button{width:1.75rem;height:1.75rem;color:var(--color-muted);cursor:pointer;background-color:#0000;border:0;place-items:center;padding:0;display:grid}.icon-button:hover{color:var(--color-accent)}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem}.language-toggle{align-items:center;gap:var(--space-2);color:var(--color-border);display:flex}.language-toggle button{color:var(--color-muted);cursor:pointer;font:inherit;background-color:#0000;border:0;padding:0}.language-toggle button[aria-pressed=true]{color:var(--color-text);font-weight:500}.mobile-menu{border-top:1px solid var(--color-border);background-color:var(--color-surface)}.mobile-menu .nav-list{padding-block:var(--space-5);gap:var(--space-3);flex-direction:column}.mobile-menu a{padding-block:var(--space-2);display:block}.main-content{z-index:1;flex:1;position:relative}.page{max-width:var(--prose-width);padding-block:var(--space-7) 4rem}.page-header{padding-top:var(--space-3)}.eyebrow{margin-bottom:var(--space-4);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-weight:500}.page h1{color:var(--color-text);font-family:var(--font-serif);font-size:var(--font-size-h1);font-variation-settings:"opsz" 120;letter-spacing:var(--tracking-heading);font-weight:600;line-height:var(--line-height-heading);margin:0}.lede{max-width:var(--prose-width);margin:var(--space-5) 0 0;color:var(--color-muted);font-size:1.2rem}.page-rule{width:3.5rem;height:1px;margin-block:var(--space-6);background-color:var(--color-accent)}.page-body{max-width:var(--prose-width);margin-top:var(--space-6)}.page-body p{margin-block:0 var(--space-5);color:var(--color-text)}.project-list{margin:var(--space-6) 0 0;padding-left:var(--space-5)}.project-list li+li{margin-top:var(--space-2)}.site-footer{border-top:1px solid var(--color-border)}.footer-inner{padding-block:3rem}.footer-columns{gap:var(--space-7);grid-template-columns:minmax(0,1fr);display:grid}.footer-name{color:var(--color-text);font-family:var(--font-serif);font-variation-settings:"opsz" 20;letter-spacing:-.01em;font-size:1.1rem;font-weight:500}.footer-discipline,.footer-source{font-family:var(--font-mono);letter-spacing:var(--tracking-ui)}.footer-discipline{margin-top:var(--space-3);color:var(--color-muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.7rem}.footer-icon-links{gap:var(--space-4);margin-top:var(--space-3);display:flex}.footer-icon-links a{width:1.5rem;height:1.5rem;color:var(--color-muted);place-items:center;text-decoration:none;display:grid}.footer-icon-links a:hover,.footer-source a:hover{color:var(--color-accent)}.footer-handle{align-self:center;align-items:center;gap:var(--space-3);display:flex}.footer-handle-value{color:var(--color-accent);font-family:var(--font-display-mono);letter-spacing:.08em;opacity:.7;font-size:1.4rem;font-weight:400}.footer-handle-icons{align-items:center;gap:var(--space-2);color:var(--color-accent);opacity:.7;display:flex}.footer-source{margin-top:var(--space-7);color:var(--color-muted);text-transform:uppercase;font-size:.7rem}.footer-source a{color:var(--color-muted);text-decoration:none}@media (width<=29.99rem){.logo-full{display:none}.logo-short{display:inline}}.home-page{padding-bottom:4rem}.home-hero{max-width:var(--prose-width);padding-block:var(--space-8);flex-direction:column;justify-content:center;display:flex}.home-label,.section-label,.home-links,.all-projects-link,.project-index,.project-tech{font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase}.home-label,.section-label{color:var(--color-muted);font-weight:500}.home-hero h1{margin:var(--space-4) 0 0;color:var(--color-text);font-family:var(--font-serif);font-size:var(--font-size-h1);font-variation-settings:"opsz" 120;letter-spacing:var(--tracking-heading);font-weight:600;line-height:var(--line-height-heading)}.home-lede{max-width:60ch;margin:var(--space-5) 0 0;color:var(--color-muted);font-variation-settings:"opsz" 16;font-size:1.25rem;line-height:1.55}.home-links{gap:var(--space-5);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.text-link,.all-projects-link{width:fit-content;color:var(--color-text);text-decoration:none;position:relative}.text-link:after,.all-projects-link:after{background-color:var(--color-accent);content:"";transform-origin:0;height:1px;transition:transform .2s;position:absolute;bottom:-.25rem;left:0;right:0;transform:scaleX(.35)}.text-link:hover:after,.all-projects-link:hover:after{transform:scaleX(1)}.text-link span,.all-projects-link span{color:var(--color-accent)}.home-section{margin-top:6rem}.section-label{margin:0 0 var(--space-6);font-size:var(--font-size-ui)}.featured-projects{border-bottom:1px solid var(--color-border)}.project-card{gap:var(--space-4);padding:var(--space-6) 0;border-top:1px solid var(--color-border);color:var(--color-text);grid-template-columns:max-content minmax(0,1fr);text-decoration:none;transition:padding-left .2s;display:grid;position:relative}.project-card-main-link{z-index:1;position:absolute;inset:0}.project-card-marker{align-items:baseline;gap:var(--space-3);min-width:2.5rem;display:flex}.project-index{color:var(--color-muted);transition:color .2s}.project-status{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);white-space:nowrap;text-transform:uppercase;font-size:.65rem}.project-card.is-muted{opacity:.6}.project-card-content{flex-direction:column;min-width:0;display:flex}.project-card-icons{z-index:2;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-muted);grid-column:2;justify-self:start;display:flex;position:relative}.project-card-icon-link{width:44px;height:44px;color:inherit;place-items:center;display:grid}.project-card-icon-link:hover,.project-card:hover .project-card-icons{color:var(--color-accent)}.project-card-title{font-family:var(--font-serif);font-variation-settings:"opsz" 48;font-size:clamp(1.45rem,3vw,2rem);font-weight:600;line-height:1.2;transition:color .2s}.project-card-blurb{max-width:74ch;margin-top:var(--space-3);color:var(--color-muted);line-height:1.55}.project-tech{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;font-size:.7rem;display:flex}.tech-tag{border:1px solid var(--color-border);color:var(--color-muted);border-radius:2px;padding:.16rem .4rem}.project-card:hover{color:var(--color-text);padding-left:4px}.project-card:hover .project-card-title{color:var(--color-accent)}.project-card:hover .project-index{color:var(--color-text)}.all-projects-link{margin-top:var(--space-6);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;display:inline-block}.projects-page,.project-detail-page,.about-page,.contact-page{max-width:none}.projects-page .page-header,.project-detail-page .page-header,.about-page .page-header,.contact-page .page-header{max-width:var(--prose-width)}.all-project-rows{margin-top:var(--space-8);border-bottom:1px solid var(--color-border)}.all-project-rows .project-card{grid-template-columns:7.5rem minmax(0,1fr)}.project-back-link{margin-bottom:var(--space-7);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;text-decoration:none;display:inline-block}.project-back-link:hover{color:var(--color-accent)}.floating-project-back{display:none}.project-meta{margin:var(--space-7) 0 0;padding-block:var(--space-4);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr);display:grid}.project-meta-item{gap:var(--space-3);padding-block:var(--space-2);grid-template-columns:7rem minmax(0,1fr);display:grid}.project-meta dt,.project-meta dd{font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;margin:0}.project-meta dt{color:var(--color-muted)}.project-meta dd{color:var(--color-text)}.project-detail-tech{margin-top:var(--space-5)}.project-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.project-action{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);min-height:44px;font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;border-radius:2px;padding:.6rem 1rem;line-height:1.3;text-decoration:none;display:inline-flex}.project-action-live{border-color:var(--color-accent);color:var(--color-accent)}.project-action-live:hover{background-color:var(--color-accent);color:var(--color-background)}.project-action-source{color:var(--color-muted)}.project-action-source:hover{border-color:var(--color-accent);color:var(--color-accent)}.notice{max-width:var(--prose-width);margin-top:var(--space-4);border:1px solid var(--color-border);border-radius:2px;padding:1rem}.notice-label{margin-bottom:var(--space-2);color:var(--color-accent);font-size:.65rem;font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase}.notice-body{color:var(--color-muted);font-family:var(--font-serif);font-variation-settings:"opsz" 14;font-size:.9rem;line-height:1.55}.stat-strip{margin:var(--space-7) 0 0;padding-block:var(--space-4);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat-item{min-width:0;padding:var(--space-3)}.stat-item dt{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-size:.65rem;line-height:1.4}.stat-item dd{margin:var(--space-1) 0 0;overflow-wrap:anywhere;color:var(--color-text);font-family:var(--font-serif);font-variation-settings:"opsz" 20;font-size:1.1rem;line-height:1.25}.detail-section{max-width:var(--prose-width);margin-top:var(--space-8)}.section-eyebrow{margin-bottom:var(--space-2);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase}.detail-section h2{margin:0 0 var(--space-4);font-variation-settings:"opsz" 38;font-size:1.4rem;line-height:1.25}.project-writeup p{margin:0}.project-writeup p+p{margin-top:var(--space-5)}.media-gallery{gap:var(--space-6);margin-top:var(--space-8);grid-template-columns:minmax(0,1fr);display:grid}.media-item{min-width:0;margin:0}.media-trigger{border:1px solid var(--color-border);background-color:var(--color-surface);cursor:zoom-in;border-radius:2px;width:100%;padding:0;display:block;overflow:hidden}.media-trigger:hover{border-color:var(--color-accent)}.media-trigger img{width:100%;height:auto;display:block}.media-item figcaption{margin-top:var(--space-2);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-size:.7rem;line-height:1.5}.media-item-1 .image-placeholder{min-height:20rem}.data-table-shell{max-width:100%;margin-top:var(--space-6);position:relative}.data-table-scroll{max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border)}.data-table th{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-align:left;text-transform:uppercase;font-size:.7rem;font-weight:500}.data-table td{color:var(--color-text);font-family:var(--font-mono);font-size:.85rem;line-height:1.4}.data-table td:first-child{font-family:var(--font-serif);font-variation-settings:"opsz" 14}.data-table .is-numeric{text-align:right}.capital-section{max-width:none}.capital-section>.project-writeup{max-width:var(--prose-width)}.capital-case-study>.media-gallery{margin-top:var(--space-8)}.capital-followup{margin-top:var(--space-6)}.capital-mobile-image{width:50%}.capital-attribution{padding-top:var(--space-6);border-top:1px solid var(--color-border)}.capital-attribution h2{font-size:1.15rem}.capital-attribution .section-eyebrow,.capital-attribution .project-writeup{color:var(--color-muted);font-size:.85rem}.olist-section{max-width:none}.olist-section>.project-writeup,.olist-section>.detail-subheading,.olist-section>.data-table-shell{max-width:var(--prose-width)}.detail-subheading{margin:var(--space-7) 0 var(--space-4);color:var(--color-text);font-family:var(--font-serif);font-variation-settings:"opsz" 30;font-size:1.15rem;font-weight:600}.olist-table-followup{margin-top:var(--space-6)}.olist-data{padding-top:var(--space-6);border-top:1px solid var(--color-border)}.olist-data h2,.olist-data .section-eyebrow,.olist-data .project-writeup{color:var(--color-muted);font-size:.85rem}.markethub-section{max-width:var(--prose-width)}.external-project-link,.cv-link{margin-top:var(--space-7);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;text-decoration:none;display:inline-block}.external-project-link:hover,.cv-link:hover{border-color:var(--color-accent);background-color:var(--color-accent);color:var(--color-background)}.about-content{margin-top:var(--space-7)}.about-intro{gap:var(--space-7);grid-template-areas:"photo""bio";align-items:start;display:grid}.about-bio{grid-area:bio;max-width:62ch}.about-bio p{margin:0}.about-bio p+p{margin-top:var(--space-5)}.about-photo{aspect-ratio:4/5;border:1px solid var(--color-border);border-radius:2px;grid-area:photo;width:min(100%,260px);overflow:hidden}.about-photo img{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.about-photo .image-placeholder{width:100%;height:100%;min-height:0}.skills-section{width:100%;max-width:var(--prose-width);border-top:1px solid var(--color-border);padding-top:3rem}.skills-eyebrow{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-weight:500}.skills-section>h2{margin:var(--space-2) 0 0;font-family:var(--font-serif);font-variation-settings:"opsz" 42;font-size:1.6rem;font-weight:600;line-height:1.2}.skills-grid{margin-top:var(--space-7);grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}.skill-group{border-top:1px solid var(--color-border);min-width:0}.skill-group h3{width:fit-content;padding-right:var(--space-3);color:var(--color-accent);background-color:var(--color-background);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;margin:0;font-size:.7rem;font-weight:500;line-height:1.4;transform:translateY(-.55rem)}.skill-group ul{gap:var(--space-2);margin:var(--space-1) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.skill-group li{border:1px solid var(--color-border);min-height:44px;color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;background-color:#0000;border-radius:2px;align-items:center;padding:.35rem .7rem;font-size:.78rem;line-height:1.3;transition:border-color .18s,background-color .18s,color .18s;display:flex}.skill-group li:hover{border-color:var(--color-accent);background-color:var(--color-accent-soft);color:var(--color-accent)}.spoken-languages{max-width:var(--prose-width);margin-block:3rem}.spoken-languages h2{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;margin:0;font-size:.7rem;font-weight:500;line-height:1.4}.spoken-language-list{margin-top:var(--space-2);color:var(--color-text);font-family:var(--font-serif);font-variation-settings:"opsz" 20;flex-wrap:wrap;font-size:1.15rem;line-height:1.6;display:flex}.spoken-separator{margin-inline:var(--space-4);color:var(--color-accent);display:inline-block}.contact-links{max-width:var(--prose-width);margin-top:var(--space-8);border-bottom:1px solid var(--color-border)}.contact-row{gap:var(--space-2);padding-block:var(--space-5);border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr);display:grid}.contact-label{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase}.contact-row a{overflow-wrap:anywhere;width:fit-content;font-family:var(--font-serif);font-size:1.2rem;text-decoration:none}.contact-row a:hover{color:var(--color-accent);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.experience-page{max-width:none;padding-bottom:0}.experience-page .page-header{max-width:var(--prose-width)}.experience-list{margin-top:var(--space-8)}.experience-entry{gap:var(--space-5);padding-block:var(--space-7);border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr);display:grid}.experience-meta{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;flex-direction:column;line-height:1.6;display:flex}.experience-content{min-width:0}.experience-content h2{font-family:var(--font-serif);font-variation-settings:"opsz" 42;letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:600;line-height:1.2}.experience-role-kicker{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1.4}.experience-content .experience-project-title{margin-top:var(--space-2);font-variation-settings:"opsz" 32;font-size:1.25rem}.experience-org{margin-top:var(--space-2);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-ui);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-weight:500}.experience-copy{max-width:var(--prose-width);margin-top:var(--space-5)}.experience-copy p{margin:0}.experience-copy p+p{margin-top:var(--space-4)}.rich-text-lead{color:var(--color-text);font-weight:600}.rich-text-link{color:var(--color-accent);text-decoration-line:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.15em;text-decoration-thickness:1px}.rich-text-link:hover{color:var(--color-text)}.experience-tech{margin-top:var(--space-5)}.experience-gallery-groups{margin-top:var(--space-7)}.experience-gallery-group+.experience-gallery-group{margin-top:var(--space-8)}.experience-gallery-label{margin-bottom:var(--space-3);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-size:.7rem}.experience-gallery{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.experience-image{min-width:0;margin:0}.experience-image-trigger{border:1px solid var(--color-border);background-color:var(--color-surface);cursor:zoom-in;border-radius:2px;width:100%;padding:0;display:block;overflow:hidden}.experience-image-trigger:hover{border-color:var(--color-accent)}.experience-image-trigger img{width:100%;height:auto;display:block}.image-placeholder{min-height:13rem;padding:var(--space-5);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;place-items:center;font-size:.7rem;display:grid}.experience-image-featured .image-placeholder{min-height:20rem}.experience-image figcaption,.lightbox figcaption{margin-top:var(--space-2);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:var(--tracking-ui);text-transform:uppercase;font-size:.7rem;line-height:1.5}.lightbox{z-index:1000;padding:var(--space-6);background-color:var(--color-overlay);cursor:zoom-out;place-items:center;display:grid;position:fixed;inset:0}.lightbox-close{top:var(--space-5);right:var(--space-5);border:1px solid var(--color-muted);width:2.5rem;height:2.5rem;color:var(--color-surface);cursor:pointer;font-family:var(--font-mono);background-color:#0000;place-items:center;padding:0;font-size:1.25rem;display:grid;position:fixed}.lightbox-figure{flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;margin:0;display:flex}.lightbox-figure img{object-fit:contain;max-width:90vw;max-height:calc(90vh - 3rem);display:block}.lightbox figcaption{max-width:90vw;color:var(--color-surface);text-align:center}@media (width>=48rem){.desktop-nav{display:block}.menu-button,.mobile-menu{display:none}.container,.main-content{padding-inline:var(--space-6)}.footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-handle{text-align:right;justify-content:flex-end}.page{padding-block:var(--space-8) 4rem}.experience-page{padding-bottom:0}.home-hero{min-height:70vh;padding-block:var(--space-7)}.experience-entry{gap:var(--space-7);grid-template-columns:11.25rem minmax(0,1fr);padding-block:4rem}.experience-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-image-featured{grid-column:1/-1}.project-meta{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.project-meta-item{padding:0 var(--space-4);border-left:1px solid var(--color-border);display:block}.project-meta-item:first-child{border-left:0;padding-left:0}.project-meta dt{margin-bottom:var(--space-1)}.media-gallery-3{grid-template-columns:repeat(2,minmax(0,1fr))}.media-gallery-3 .media-item-1{grid-column:1/-1}.media-gallery-2{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{grid-template-columns:max-content minmax(0,1fr) auto}.all-project-rows .project-card{grid-template-columns:7.5rem minmax(0,1fr) auto}.project-card-icons{grid-column:3;place-self:center end;margin-top:0}.project-card-icon-link{width:2rem;height:2rem}.stat-strip{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.stat-item{padding-inline:var(--space-4);border-left:1px solid var(--color-border)}.stat-item:first-child{border-left:0;padding-left:0}.contact-row{grid-template-columns:10rem minmax(0,1fr);align-items:baseline}}@media (width>=56.25rem){.about-intro{grid-template-columns:minmax(0,62ch) 320px;grid-template-areas:"bio photo";align-items:stretch;gap:3rem}.about-photo{aspect-ratio:auto;width:320px;height:100%;max-height:512px}.about-photo img{object-position:center 30%}}@media (width>=75rem){.floating-project-back{z-index:10;top:50%;left:max(1rem, calc((100vw - var(--content-width)) / 2 - 3.5rem));border:1px solid var(--color-border);background-color:var(--color-background);width:44px;height:44px;color:var(--color-muted);opacity:0;pointer-events:none;border-radius:50%;place-items:center;padding:0;text-decoration:none;transition:opacity .2s,border-color .2s,color .2s;display:grid;position:fixed;transform:translateY(-50%)}.floating-project-back.is-visible{opacity:1;pointer-events:auto}.floating-project-back:hover{border-color:var(--color-accent);color:var(--color-accent)}.floating-project-back svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;transition:transform .2s}.floating-project-back:hover svg{transform:translate(-2px)}}@media (width<=39.99rem){.data-table-shell:after{background:linear-gradient(to right, transparent, var(--color-background));content:"";pointer-events:none;width:2.5rem;position:absolute;top:0;bottom:0;right:0}.data-table{min-width:48rem}}@media (width>=56.25rem){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body,.site-header,.text-link:after,.all-projects-link:after,.project-card,.project-index,.project-card-title{transition:none}.pointer-glow{transition:none;display:none}.skill-group li,.floating-project-back,.floating-project-back svg{transition:none}}
