:root{--mono-font: "JetBrains Mono", "Fira Code", monospace;--serif-font: "Lora", "Georgia", serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-solid);color:var(--fg);font-family:var(--mono-font);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;padding:1.5rem}h1,h2,h3,h4{font-family:var(--serif-font);font-weight:400;line-height:1.3;color:var(--accent)}::selection{background:var(--accent);color:var(--bg-solid)}html{scroll-behavior:smooth}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-solid)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--muted)}a{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px;text-decoration-color:var(--muted);transition:color .15s ease,background-color .15s ease,text-decoration-color .15s ease;border-radius:0}@media(hover:hover){a:hover{text-decoration-color:var(--accent);color:var(--accent);background-color:var(--hover-bg)}}a:active{text-decoration-color:var(--accent);color:var(--accent);background-color:var(--hover-bg)}.masthead-title a{text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:2px;transition:color .15s ease,text-decoration-color .15s ease}@media(hover:hover){.masthead-title a:hover{text-decoration-color:currentColor;background-color:transparent}}.masthead-title a:active{text-decoration-color:currentColor;background-color:transparent}.mono{font-family:var(--mono-font);font-size:.85em;letter-spacing:.02em}.mono.upper{text-transform:uppercase;letter-spacing:.05em}.serif-display{font-family:var(--serif-font);font-size:clamp(2rem,4vw,3.5rem);font-weight:400;letter-spacing:-.01em}.container{max-width:840px;margin:0 auto}.masthead{padding-bottom:2rem;margin-bottom:3rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1.5rem}.masthead-title{margin-bottom:.6rem;font-weight:400;line-height:1.1;font-family:EB Garamond,Georgia,serif;font-style:normal;font-size:clamp(2.5rem,5.5vw,4rem)}.masthead-title .name-first{font-style:normal}.masthead-title .name-last{font-style:italic}.masthead-info{display:flex;flex-direction:column;gap:.7rem}.masthead-tagline{white-space:normal}.masthead-sub{color:var(--fg);font-size:.9rem;font-weight:500;letter-spacing:.05em;line-height:1.5}.masthead-cv-link{font-weight:500}.masthead-sep-cv{display:none}@media(min-width:641px){.masthead-sep-cv{display:inline}}.masthead-links{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;font-size:.75rem;letter-spacing:.04em;line-height:1.6}.masthead-links a{text-decoration:none;padding-bottom:1px;color:var(--fg);transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;box-shadow:0 2px 0 var(--muted);overflow-wrap:anywhere}@media(hover:hover){.masthead-links a:hover{box-shadow:0 2px 0 var(--accent);color:var(--accent);background-color:var(--hover-bg)}}.masthead-links a:active{box-shadow:0 2px 0 var(--accent);color:var(--accent);background-color:var(--hover-bg)}.masthead-sep{font-size:.8em;opacity:.4;color:var(--border)}.masthead-controls{display:flex;align-items:center;gap:1rem;text-align:right;font-size:.8rem}.lang-switcher{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono-font);font-size:.8rem}.lang-switcher a{text-decoration:none;color:var(--muted);transition:color .15s ease}.link-icon{text-decoration:none!important}.link-icon svg{display:inline;vertical-align:-1px}@media(hover:hover){.lang-switcher a:not(.active):hover{color:var(--accent)}}.lang-switcher a:not(.active):active{color:var(--accent)}.lang-switcher .masthead-sep{color:var(--border)}.site-footer{font-family:var(--mono-font);margin-top:5rem;padding-top:2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;color:var(--muted);font-size:.8rem;flex-wrap:wrap;gap:1rem}.footer-links{display:flex;gap:1.5rem}.section-about{margin-bottom:5rem}.section-projects,.section-experience{margin-bottom:4rem}.section-title{font-family:var(--mono-font);text-transform:uppercase;font-size:1rem;font-weight:700;color:var(--muted);margin-bottom:2rem}.section-about .section-title{margin-bottom:1.5rem}.about-text{font-family:var(--serif-font);font-size:1.25rem;line-height:1.7;color:var(--fg)}.about-degree{margin-bottom:.2rem}.about-meta{font-family:var(--serif-font);font-size:1rem;line-height:1.7;color:var(--muted)}.about-meta--tight{margin-bottom:.2rem}.edu-entry{border:1px solid var(--border);border-left:3px solid var(--accent);padding:1.25rem 1.5rem;transition:border-color .15s ease}@media(hover:hover){.edu-entry:hover{border-color:var(--muted);border-left-color:var(--accent)}}.edu-list{display:flex;flex-direction:column;gap:1rem}.edu-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.edu-degree{font-family:var(--serif-font);font-size:1.2rem;font-weight:600;line-height:1.4;color:var(--fg);margin:0;flex:1}.edu-year{font-family:var(--mono-font);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:.3rem .6rem;white-space:nowrap;line-height:1.4;margin-top:.15rem;display:inline-flex;align-items:center;gap:.45rem}.edu-year--current{color:var(--accent);border-color:var(--accent)}.edu-dot{position:relative;width:5px;height:5px;background:var(--accent);display:inline-block}.edu-dot:after{content:"";position:absolute;inset:0;border:2px solid var(--accent);transform-origin:center;animation:edu-ping 1s ease-out infinite}.edu-major{font-family:var(--serif-font);font-size:1rem;font-weight:500;line-height:1.6;color:var(--fg);margin:0 0 .35rem}.edu-school{font-family:var(--mono-font);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.6;color:var(--muted);margin:0}.project-description{font-family:var(--mono-font);font-size:.95rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.6}.project-links{font-family:var(--mono-font);display:flex;flex-wrap:wrap;gap:1.5rem;font-size:.85rem}.project-links a{text-decoration:none;padding-bottom:1px;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;box-shadow:0 2px 0 var(--border)}@media(hover:hover){.project-links a:hover{box-shadow:0 2px 0 var(--accent)}}.project-links a:active{box-shadow:0 2px 0 var(--accent)}.project-article{max-width:760px}.back-link-container{margin-bottom:3rem}.back-link{font-family:var(--mono-font);color:var(--muted);text-decoration:none;padding-bottom:1px;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;box-shadow:0 2px 0 transparent}@media(hover:hover){.back-link:hover{box-shadow:0 2px 0 var(--accent);background-color:var(--hover-bg);color:var(--accent)}}.back-link:active{box-shadow:0 2px 0 var(--accent);background-color:var(--hover-bg);color:var(--accent)}.project-detail-header{margin-bottom:3rem;border-bottom:1px solid var(--border);padding-bottom:2rem}.project-detail-title{margin-bottom:1rem}.gallery-section{margin-top:5rem;padding-top:3rem;border-top:1px solid var(--border)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}@media(min-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}.gallery-item{border:1px solid var(--border);padding:.5rem;background:var(--bg-solid);cursor:zoom-in;transition:border-color .2s ease,box-shadow .2s ease}@media(hover:hover){.gallery-item:hover{border-color:var(--accent);box-shadow:0 0 20px var(--gallery-shadow)}}.gallery-item img{width:100%;height:auto;display:block}.gallery-item.is-pixelating>img{display:none}.pixel-view{width:100%;height:auto;display:block;image-rendering:pixelated}.zoom-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;z-index:1000;justify-content:center;align-items:center;padding:2rem;cursor:zoom-out}.gallery-item.zoomed .zoom-overlay{display:flex}.zoom-overlay img{max-width:100%;max-height:100%;border:2px solid #fff;box-shadow:0 0 50px #00000080;width:auto!important}.zoom-close{position:absolute;top:1rem;right:1rem;color:#fff;background:#000;padding:.5rem;cursor:pointer;font-family:var(--mono-font)}.markdown-body{font-family:var(--serif-font);font-size:1.125rem;line-height:1.8;color:var(--fg);overflow-wrap:break-word;min-width:0}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote{margin-bottom:1.5rem;text-wrap:pretty}.markdown-body>*:first-child{margin-top:0}.markdown-body>*:last-child{margin-bottom:0}.markdown-body h2{font-size:1.65rem;line-height:1.35;letter-spacing:-.01em;text-wrap:balance;margin-top:2.75rem;margin-bottom:1rem;padding-top:1.5rem;border-top:1px solid var(--border);font-weight:600}.markdown-body h2:first-child{margin-top:0;padding-top:0;border-top:none}.markdown-body h3{font-size:1.25rem;line-height:1.4;letter-spacing:-.01em;text-wrap:balance;margin-top:2rem;margin-bottom:.75rem;font-weight:600}.markdown-body h4{font-family:var(--mono-font);text-transform:uppercase;font-size:.85rem;letter-spacing:.05em;color:var(--muted);margin-top:2rem;margin-bottom:.75rem;font-weight:700}.markdown-body ul,.markdown-body ol{padding-left:1.5rem}.markdown-body li{margin-bottom:.5rem}.markdown-body li::marker{color:var(--muted)}.markdown-body ul ul,.markdown-body ol ol,.markdown-body ul ol,.markdown-body ol ul{margin-top:.5rem;margin-bottom:0}.markdown-body li>p:last-child{margin-bottom:.5rem}.markdown-body strong{font-weight:600;color:var(--accent)}.markdown-body blockquote{border:1px solid var(--border);border-left:3px solid var(--muted);padding:1rem 1.25rem;color:var(--muted);font-style:italic}.markdown-body blockquote>*:last-child{margin-bottom:0}.markdown-body code{font-family:var(--mono-font);font-size:.85em;background:var(--code-bg);padding:.15em .4em;border:1px solid var(--border);border-radius:0;-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:anywhere}.markdown-body pre{background:var(--pre-bg);border:1px solid var(--border);border-radius:0;padding:1.25rem;overflow-x:auto;margin-bottom:1.5rem}.markdown-body pre code{background:none;border:none;padding:0;font-size:.8rem;line-height:1.6}.markdown-body table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.85rem}.markdown-body th{font-family:var(--mono-font);text-transform:uppercase;font-size:.8rem;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--border);padding:.6rem .8rem;text-align:left}.markdown-body td{padding:.6rem .8rem;border-bottom:1px solid var(--td-border)}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.markdown-body img{max-width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:0;margin:1rem 0}.markdown-alert{border:1px solid var(--border);border-left:3px solid var(--border);padding:1rem 1.25rem;margin-bottom:1.5rem;background:var(--alert-bg);font-style:normal}.markdown-alert>*:last-child{margin-bottom:0}.markdown-alert .markdown-alert-title{display:flex;align-items:center;gap:.5rem;font-family:var(--mono-font);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-top:0;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--td-border)}.markdown-alert-title svg{fill:currentColor;flex-shrink:0}.markdown-alert-note{border-left-color:var(--note-color)}.markdown-alert-note .markdown-alert-title{color:var(--note-color)}.markdown-alert-warning{border-left-color:var(--warning-color)}.markdown-alert-warning .markdown-alert-title{color:var(--warning-color)}.markdown-alert-important{border-left-color:var(--important-color)}.markdown-alert-important .markdown-alert-title{color:var(--important-color)}.markdown-alert-caution{border-left-color:var(--caution-color)}.markdown-alert-caution .markdown-alert-title{color:var(--caution-color)}.markdown-alert-tip{border-left-color:var(--tip-color)}.markdown-alert-tip .markdown-alert-title{color:var(--tip-color)}.project-list{display:flex;flex-direction:column}.project-card{padding:2.5rem 0}.project-card:first-of-type{padding-top:0}.project-card:last-of-type{padding-bottom:0}.project-card+.project-card{border-top:1px solid var(--border)}.project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;flex-wrap:wrap;gap:1rem}.project-title{font-family:var(--serif-font);font-size:1.75rem;font-weight:600;text-decoration:none!important}.experience-list{display:flex;flex-direction:column;gap:1rem}.experience-card{border:1px solid var(--border);transition:border-color .15s ease}@media(hover:hover){.experience-card:hover{border-color:var(--muted)}}.experience-row{padding:1rem 1.5rem}.experience-row+.experience-row{border-top:1px solid var(--td-border)}.experience-row--head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:2rem;row-gap:.75rem;padding-top:1.15rem;padding-bottom:1.15rem}.experience-row--tags{padding-top:.7rem;padding-bottom:.7rem}.experience-row--tags .tag-list{margin-bottom:0}.experience-row--body{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;padding-top:.9rem;padding-bottom:1.15rem}.experience-head{min-width:0}.experience-role{font-family:var(--serif-font);font-size:1.45rem;font-weight:600;line-height:1.3;margin-bottom:.35rem}.experience-role a{transition:color .2s ease}@media(hover:hover){.experience-role a:hover{color:var(--accent)}}.experience-company{font-family:var(--mono-font);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.5;color:var(--fg)}.experience-kind{font-family:var(--mono-font);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;line-height:1.5;color:var(--muted);margin-top:.2rem}.experience-when{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;text-align:right;padding-top:.35rem}.experience-dates{font-family:var(--mono-font);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;line-height:1.4}.experience-location{font-family:var(--mono-font);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;line-height:1.4}.experience-description{font-family:var(--serif-font);font-size:1rem;line-height:1.7;color:var(--muted);max-width:62ch;margin-bottom:0}.experience-link{display:inline-block;flex-shrink:0;font-family:var(--mono-font);font-size:.8rem;text-decoration:none;padding-bottom:1px;margin-bottom:2px;box-shadow:0 2px 0 var(--border);transition:color .15s ease,background-color .15s ease,box-shadow .15s ease}@media(hover:hover){.experience-link:hover{box-shadow:0 2px 0 var(--accent)}}.experience-link:active{box-shadow:0 2px 0 var(--accent)}.experience-detail-kicker{font-family:var(--mono-font);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.45rem}.experience-kicker-sep{opacity:.4;margin:0 .25em}.experience-detail-header{margin-bottom:2.5rem;padding-bottom:0;border-bottom:none}.experience-table-head{padding:1.25rem 1rem 1rem;border-bottom:1px solid var(--td-border)}.experience-detail-header .project-detail-title{font-size:clamp(1.6rem,3vw,2.5rem);margin-bottom:0}.experience-meta-table{border:1px solid var(--td-border)}.experience-facts{display:grid;grid-template-columns:1.5fr 1fr 1fr;border-bottom:1px solid var(--td-border)}.experience-fact{min-width:0;padding:.85rem 1rem}.experience-fact+.experience-fact{border-left:1px solid var(--td-border)}.experience-fact dt{font-family:var(--mono-font);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;line-height:1.4;color:var(--muted);margin-bottom:.3rem}.experience-fact dd{font-family:var(--mono-font);font-size:.8rem;line-height:1.5;color:var(--fg);overflow-wrap:anywhere}.experience-tags{padding:.75rem 1rem}.experience-tags .tag-list{margin-bottom:0}.tag-list{display:flex;flex-wrap:wrap;column-gap:.75rem;margin-bottom:1.25rem}.tag{font-family:var(--mono-font);font-size:.75rem;color:var(--muted);background:transparent;padding:0;margin-right:0}.tag:before{content:"#";opacity:.5;margin-right:1px}.btn{position:relative;display:inline-block;font-family:var(--mono-font);font-size:.8rem;text-decoration:none;padding:.55rem 1.1rem;border:2px solid var(--border);border-radius:0;color:var(--fg);cursor:pointer;background:transparent;transition:color .2s ease,border-color .2s ease,background-color .2s ease;line-height:1}@media(hover:hover){.btn:hover{color:var(--accent);border-color:var(--accent);background-color:var(--hover-bg)}}.btn:active{color:var(--accent);border-color:var(--accent);background-color:var(--hover-bg)}.cv-section{display:flex;justify-content:center;margin-bottom:5rem}.cv-section--about{justify-content:center;margin:-2rem 0 3.5rem}.cv-link{font-family:var(--mono-font);font-size:1.1rem;text-decoration:none;padding-bottom:1px;color:var(--fg);transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;box-shadow:0 2px 0 var(--muted)}@media(hover:hover){.cv-link:hover{box-shadow:0 2px 0 var(--accent);color:var(--accent);background-color:var(--hover-bg)}}.cv-link:active{box-shadow:0 2px 0 var(--accent);color:var(--accent);background-color:var(--hover-bg)}.theme-toggle{position:relative;display:inline-flex;align-items:center;gap:.25rem;padding:.55rem .5rem;border:2px solid var(--border);border-radius:0;background:transparent;cursor:pointer;transition:border-color .15s ease;line-height:1}@media(hover:hover){.theme-toggle:hover{border-color:var(--accent)}}.theme-toggle:active{border-color:var(--accent)}.theme-toggle svg{display:none;position:relative;z-index:1;transition:color .2s ease;color:var(--accent)}:root:not([data-theme]) .theme-toggle .theme-icon-system,[data-theme=light] .theme-toggle .theme-icon-light,[data-theme=dark] .theme-toggle .theme-icon-dark{display:block}.theme-toggling,.theme-toggling *,.theme-toggling *:before,.theme-toggling *:after{transition:background-color .6s ease,border-color .6s ease,color .6s ease,fill .6s ease,stroke .6s ease,box-shadow .6s ease,outline-color .6s ease,text-decoration-color .6s ease!important}@keyframes edu-ping{0%{transform:scale(1);opacity:1}70%{opacity:0}to{transform:scale(3.4);opacity:0}}a:focus-visible,.btn:focus-visible,.theme-toggle:focus-visible,.gallery-item:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{transition:color .15s ease,background-color .15s ease,text-decoration-color .2s ease,box-shadow .2s ease}.lang-switcher a{padding:0 2px;transition:color .15s ease,background-color .15s ease,box-shadow .2s ease}.lang-switcher a.active{color:var(--fg);background-color:var(--hover-bg);box-shadow:0 2px 0 var(--accent)}@media(hover:hover){.lang-switcher a:not(.active):hover{background-color:var(--hover-bg);box-shadow:0 2px 0 var(--accent)}}.theme-toggle{transition:border-color .15s ease,box-shadow .2s ease,background-color .2s ease}.theme-toggle svg{transition:color .2s ease}@media(hover:hover){.theme-toggle:hover{border-color:var(--accent);background-color:var(--hover-bg);box-shadow:3px 3px 0 var(--accent)}}.theme-toggle:active{box-shadow:1px 1px 0 var(--accent)}.section-title{cursor:default;transition:color .2s ease}@media(hover:hover){.section-title:hover{color:var(--accent)}}.edu-entry{transition:border-color .15s ease,box-shadow .2s ease,background-color .2s ease}@media(hover:hover){.edu-entry:hover{border-color:var(--accent);border-left-color:var(--accent);background-color:var(--hover-bg);box-shadow:4px 4px 0 var(--accent)}.edu-entry:hover .edu-year{border-color:var(--accent);color:var(--accent)}.edu-entry:hover .edu-degree{color:var(--accent)}}.edu-degree,.edu-year,.edu-dot{transition:color .2s ease,border-color .2s ease}.project-title a{transition:color .2s ease}@media(hover:hover){.project-title a:hover{color:var(--accent)}}.tag{display:inline-block;transition:color .2s ease}.tag:before{transition:opacity .2s ease}@media(hover:hover){.tag:hover{color:var(--accent)}.tag:hover:before{opacity:1}}.project-links a,.cv-link{display:inline-block}.btn{transition:color .2s ease,border-color .2s ease,box-shadow .2s ease,background-color .2s ease}@media(hover:hover){.btn:hover{box-shadow:3px 3px 0 var(--accent)}}.btn:active{box-shadow:1px 1px 0 var(--accent)}.back-link{display:inline-block}.gallery-item{position:relative;transition:border-color .2s ease,box-shadow .25s ease,background-color .2s ease}.gallery-item:after{content:"ZOOM [+]";position:absolute;top:.8rem;right:.8rem;font-family:var(--mono-font);font-size:.65rem;letter-spacing:.06em;background:var(--accent);color:var(--bg-solid);padding:.2rem .45rem;opacity:0;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}@media(hover:hover){.gallery-item:hover{border-color:var(--accent);box-shadow:5px 5px 0 var(--accent)}.gallery-item:hover:after{opacity:1;transform:translateY(0)}}.footer-links a{display:inline-block}.markdown-body a{transition:color .15s ease,background-color .2s ease,text-decoration-color .2s ease}.markdown-body img{transition:border-color .2s ease,box-shadow .25s ease}@media(hover:hover){.markdown-body img:hover{border-color:var(--accent);box-shadow:4px 4px 0 var(--accent)}}@media(prefers-reduced-motion:reduce){a,.masthead-links a,.lang-switcher a,.theme-toggle,.theme-toggle svg,.section-title,.edu-entry,.project-title a,.tag,.project-links a,.cv-link,.btn,.back-link,.gallery-item img,.gallery-item:after,.footer-links a,.markdown-body img{transition:none;transform:none;animation:none}.gallery-item:after,.edu-dot:after{display:none}}@media(max-width:640px){body{padding:1.25rem 1rem;font-size:20px}.masthead{display:grid;grid-template-columns:1fr;gap:1rem;padding-bottom:1.5rem;margin-bottom:2rem;align-items:start}.masthead-left{grid-column:1}.masthead-controls{grid-column:1;justify-content:flex-start;gap:.75rem}.masthead-info{margin-top:.75rem}.masthead-tagline{white-space:normal;font-size:.68rem;overflow-wrap:break-word}.masthead-title{font-size:clamp(3.5rem,10vw,3.75rem);line-height:1.05}.masthead-sub{font-size:.7rem;margin-bottom:.3rem;line-height:1.5}.masthead-links{font-size:.65rem;row-gap:.5rem}.masthead-links a{overflow-wrap:anywhere}.masthead-sep-cv{display:none}.serif-display:not(.masthead-title){font-size:clamp(1.3rem,5vw,1.8rem)}.section-title{font-size:.85rem;margin-bottom:1.25rem}.about-text{font-size:1rem;line-height:1.7}.about-meta{font-size:.8rem}.edu-entry{padding:1.1rem 1.25rem}.edu-header{flex-direction:column;align-items:flex-start;gap:.6rem}.edu-year{font-size:.7rem;padding:.25rem .5rem;gap:.35rem;margin-top:0}.edu-degree{font-size:.95rem}.edu-major{font-size:.8rem}.edu-school{font-size:.68rem}.project-description{font-size:.75rem}.markdown-body{font-size:1rem;overflow-wrap:break-word}.markdown-body h2{font-size:1.2rem;margin-top:2rem;padding-top:1.25rem}.markdown-body h3{font-size:1rem;margin-top:1.5rem}.markdown-body pre{padding:.85rem;max-width:100%}.markdown-body table{font-size:.78rem;display:block;overflow-x:auto;max-width:100%}.markdown-body th,.markdown-body td{padding:.5rem}.section-about{margin-bottom:2.5rem}.section-projects,.section-experience{margin-bottom:2rem}.project-card{padding:1.25rem 0}.project-title{font-size:1.15rem}.experience-list{gap:1rem}.experience-row{padding:.9rem 1.1rem}.experience-row--head{grid-template-columns:1fr;row-gap:.6rem;padding-top:1rem;padding-bottom:1rem}.experience-row--tags{padding-top:.6rem;padding-bottom:.6rem}.experience-row--body{flex-direction:column;align-items:flex-start;gap:.75rem;padding-top:.75rem;padding-bottom:1rem}.experience-role{font-size:1.15rem}.experience-company{font-size:.7rem}.experience-kind{font-size:.64rem}.experience-when{align-items:flex-start;text-align:left;padding-top:0}.experience-dates{font-size:.7rem}.experience-location{font-size:.65rem}.experience-description{font-size:.92rem}.experience-detail-kicker{font-size:.64rem}.experience-detail-header.project-detail-header{margin-bottom:2rem;padding-bottom:0}.experience-table-head{padding:1rem 1rem .9rem}.experience-facts{grid-template-columns:1fr}.experience-tags{padding:.65rem 1rem}.experience-fact{padding:.7rem 1rem}.experience-fact+.experience-fact{border-left:none;border-top:1px solid var(--td-border)}.project-links{font-size:.7rem;flex-wrap:wrap;row-gap:.75rem;column-gap:1.25rem}.gallery-grid{grid-template-columns:1fr;gap:.75rem}.gallery-section{margin-top:3rem;padding-top:2rem}.back-link-container{margin-bottom:2rem}.back-link{font-size:.75rem}.project-detail-header{margin-bottom:2rem;padding-bottom:1.5rem}.cv-link{font-size:.85rem}.cv-section{margin-bottom:3rem}.cv-section--about{justify-content:center;margin:-.5rem 0 2.5rem}.site-footer{flex-direction:column;gap:.4rem;font-size:.65rem;margin-top:3rem;padding-top:1.5rem}.lang-switcher{font-size:.65rem}.theme-toggle{padding:.65rem .6rem}}@media(min-width:768px){body{padding:3rem}}
