section{width:100%;margin-bottom:1.85rem}.resume{width:100%;padding:0;box-sizing:border-box}.section-header-row{width:100%;margin-bottom:.95rem;align-items:center}.section-header-row .section-title{margin-bottom:0}.export-pdf-button{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em;padding:.45rem .85rem;border-radius:8px;border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent);white-space:nowrap}.export-pdf-button:hover{background:var(--accent);border-color:var(--accent);color:#0b0d11}.exp-skill{align-items:flex-start;gap:1.5rem;width:100%}.experience-item,.education-item{margin-bottom:1.1rem;padding:1.15rem 1.35rem;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px}.experience-container li{max-width:82ch;word-wrap:break-word;margin-bottom:.38rem;color:var(--text-secondary);font-size:.92rem;line-height:1.6}.experience-container ul{margin-left:1.1rem;margin-top:.55rem}.company{margin-bottom:.15rem}.company h3{font-family:var(--font-serif);font-size:1.12rem;font-weight:500;color:var(--text-primary);margin-right:1rem}.company p{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.role{gap:1rem;margin-bottom:.2rem}.role p:first-child{font-weight:500;font-size:.88rem;color:var(--accent)}.role p:last-child{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.org-about{font-size:.88rem;color:var(--text-muted);margin:.35rem 0 .5rem;max-width:80ch}.show-more-button{margin-top:.25rem;font-family:var(--font-mono);font-size:.76rem}.thesis-item{max-width:100%;padding:1.15rem 1.35rem;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px}.thesis-item h3{font-family:var(--font-serif);font-size:1.1rem;font-weight:500;margin-bottom:.25rem}.thesis-item p{color:var(--text-secondary);font-size:.92rem;margin-top:.3rem}.project-container{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:1rem;width:100%;padding-bottom:.65rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.project-container::-webkit-scrollbar{height:6px}.project-container::-webkit-scrollbar-track{background:var(--bg-subtle);border-radius:999px}.project-container::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.project-item{flex:0 0 250px;width:250px;height:250px;scroll-snap-align:start;border:1px solid var(--border-subtle);border-radius:12px;padding:1.15rem;background:var(--bg-card);transition:transform .2s ease,border-color .2s ease,background-color .2s ease;display:flex;flex-direction:column;gap:.45rem;overflow:hidden}.project-item:hover{transform:translateY(-2px);border-color:var(--border-strong);background:var(--bg-card-hover)}.project-item h3{font-family:var(--font-serif);font-size:1.06rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-item p{font-size:.84rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.project-tools{font-family:var(--font-mono);font-size:.7rem!important;color:var(--accent)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block!important;flex-shrink:0}.project-item a{margin-top:auto;padding-top:.35rem;font-family:var(--font-mono);font-size:.74rem;flex-shrink:0}.course-item{padding:.85rem 1.15rem;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;margin-bottom:.65rem}.course-item h3{font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:.3rem}.course-item p{font-size:.9rem;color:var(--text-secondary)}.eca-item,.award-item{margin-bottom:.55rem;padding:.8rem 1.15rem;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px}.eca-item h3{font-size:.94rem;font-weight:600;color:var(--text-primary);margin-bottom:.2rem}.eca-item ul{margin-left:1.1rem;color:var(--text-secondary);font-size:.88rem}.award-item p{font-size:.9rem;color:var(--text-secondary)}.contact{margin-left:1em;margin-right:1em}@media only screen and (min-width: 960px){.experience-section{flex:1 1 68%;max-width:70%}.skill-section{flex:0 0 27%;width:27%;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:1.15rem 1.25rem;box-sizing:border-box}.skill-section .flex-horizontal{display:block;margin-bottom:.85rem;padding-bottom:.65rem;border-bottom:1px solid var(--border-subtle)}.skill-section .flex-horizontal:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.skill-section h3{font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:.25rem}.skill-section p{font-size:.84rem;line-height:1.5;color:var(--text-secondary)}}.categories{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:.45rem;margin-bottom:1.25rem;width:100%}.category-button{background-color:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:999px;padding:.36rem .85rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em;cursor:pointer;transition:all .2s ease}.category-button:hover{background-color:var(--accent-soft);color:var(--text-primary);border-color:var(--border-strong)}.category-button.active{background-color:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.card-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));grid-auto-rows:340px;gap:1.15rem;width:100%}.card{height:100%;border:1px solid var(--border-subtle);border-radius:12px;padding:1.1rem 1.2rem;background-color:var(--bg-card);position:relative;overflow:hidden;transition:transform .2s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease;display:grid;grid-template-rows:1.65rem 142px 1fr 1.65rem;gap:.7rem}.card:hover{transform:translateY(-2px);border-color:var(--border-strong);background-color:var(--bg-card-hover);box-shadow:var(--shadow-card)}.card-header{display:flex;justify-content:space-between;align-items:center;gap:.65rem;width:100%;min-width:0}.card-title{font-family:var(--font-serif);font-size:1.08rem;font-weight:500;color:var(--text-primary);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.card-title:hover{color:var(--accent)}.card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.github-icon{color:var(--text-muted);font-size:1rem;display:inline-flex;align-items:center;justify-content:center;transition:color .2s ease}.github-icon:hover{color:var(--text-primary)}.card-media-wrap{width:100%;height:142px;border-radius:8px;overflow:hidden;background:var(--bg-elevated);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center}.card-display{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.card:hover .card-display{transform:scale(1.03)}.card-schematic-preview{width:100%;height:100%;padding:1rem;display:flex;flex-direction:column;justify-content:space-between;background-color:var(--bg-elevated);background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px),linear-gradient(to bottom,var(--border-subtle) 1px,transparent 1px);background-size:22px 22px}.schematic-code{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);align-self:flex-start;padding:.15rem .45rem;border-radius:4px;background:var(--accent-soft);border:1px solid var(--accent-border)}.schematic-title{font-family:var(--font-serif);font-size:1.15rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-description{font-size:.86rem;line-height:1.5;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0}.card-topics{display:flex;align-items:center;flex-wrap:nowrap;gap:.35rem;overflow:hidden;width:100%}.card-topic{font-family:var(--font-mono);font-size:.68rem;background-color:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:6px;padding:.14rem .45rem;white-space:nowrap;flex-shrink:0}.extra-button{font-family:var(--font-mono);font-size:.7rem;background-color:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);border-radius:6px;padding:.18rem .48rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:all .2s ease}.extra-button:hover{background-color:var(--accent);color:#0b0d11}:root,[data-theme=dark]{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-serif: "Newsreader", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg-base: #0b0d11;--bg-elevated: #11151c;--bg-card: rgba(19, 24, 34, .78);--bg-card-hover: rgba(26, 33, 47, .92);--bg-subtle: rgba(255, 255, 255, .028);--panel: rgba(16, 20, 29, .85);--panel-strong: rgba(20, 25, 36, .92);--border-subtle: rgba(255, 255, 255, .085);--border-strong: rgba(255, 255, 255, .18);--text-primary: #eef2f6;--text-secondary: #a7b4c8;--text-muted: #6f7f96;--accent: #e5a952;--accent-soft: rgba(229, 169, 82, .13);--accent-border: rgba(229, 169, 82, .36);--link: #93a8ff;--link-hover: #b8c6ff;--shadow-card: 0 12px 32px rgba(0, 0, 0, .32);--shadow-nav: 0 8px 24px rgba(0, 0, 0, .35);--radial-1: rgba(147, 168, 255, .055);--radial-2: rgba(229, 169, 82, .045);color-scheme:dark}[data-theme=light]{--bg-base: #faf8f5;--bg-elevated: #f2efe9;--bg-card: rgba(255, 255, 255, .86);--bg-card-hover: #ffffff;--bg-subtle: rgba(15, 23, 42, .035);--panel: rgba(255, 255, 255, .88);--panel-strong: rgba(255, 255, 255, .94);--border-subtle: rgba(15, 23, 42, .09);--border-strong: rgba(15, 23, 42, .2);--text-primary: #141821;--text-secondary: #3f4a5a;--text-muted: #667387;--accent: #b76e11;--accent-soft: rgba(183, 110, 17, .1);--accent-border: rgba(183, 110, 17, .32);--link: #2945b8;--link-hover: #1b318f;--shadow-card: 0 8px 24px rgba(15, 23, 42, .06);--shadow-nav: 0 6px 20px rgba(15, 23, 42, .07);--radial-1: rgba(41, 69, 184, .045);--radial-2: rgba(183, 110, 17, .05);color-scheme:light}:root{font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}.flex-horizontal{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center}.flex-vertical{display:flex;flex-direction:column;justify-content:center;align-items:center}.br{height:1rem}*{margin:0;box-sizing:border-box}body{width:100%;min-height:100vh;line-height:1.65;font-weight:400;color:var(--text-primary);background-color:var(--bg-base);background-image:radial-gradient(circle at 12% 15%,var(--radial-1),transparent 38%),radial-gradient(circle at 85% 10%,var(--radial-2),transparent 35%);background-attachment:fixed;transition:background-color .2s ease,color .2s ease}a{font-weight:500;color:var(--link);text-decoration:none;transition:color .2s ease,opacity .2s ease}a:hover{color:var(--link-hover)}button{border-radius:8px;border:1px solid var(--border-subtle);padding:.5em 1.05em;font-size:.875rem;font-weight:500;font-family:var(--font-sans);background-color:var(--bg-subtle);cursor:pointer;transition:all .2s ease;color:var(--text-primary)}button:hover{border-color:var(--accent);background-color:var(--accent-soft);color:var(--text-primary)}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}#root{padding:0;font-family:var(--font-sans);min-height:100vh;width:100%;display:flex;flex-direction:column}header{position:sticky;top:0;width:100%;z-index:30;padding:1rem 0 .5rem;pointer-events:none}nav{pointer-events:auto;max-width:1320px;margin:0 auto;padding:0 2rem;display:flex;justify-content:flex-end}nav>div{display:inline-flex;align-items:center;gap:.25rem;background:var(--panel-strong);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-subtle);padding:.35rem .5rem;border-radius:999px;box-shadow:var(--shadow-nav)}.nav-link{display:inline-flex;align-items:center;padding:.36rem .9rem;font-size:.85rem;font-weight:500;letter-spacing:.01em;color:var(--text-secondary);border-radius:999px;border:1px solid transparent;transition:all .2s ease}.nav-link:hover{color:var(--text-primary);background:var(--bg-subtle)}.nav-link.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;margin-left:.15rem;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:.85rem}.theme-toggle:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}.page-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:2.25rem;max-width:1320px;width:100%;margin:.5rem auto 0;padding:0 2rem 3rem;align-items:start;flex:1}.sidebar{position:sticky;top:4.5rem;min-height:calc(100vh - 6rem);width:100%;padding:2.25rem 1.45rem;background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:14px;box-shadow:var(--shadow-card);justify-content:center;gap:1.5rem;z-index:10}.fullname{gap:.1rem;text-align:center}.name{font-family:var(--font-serif);font-size:1.75rem;font-weight:500;letter-spacing:-.02em;line-height:1.14;color:var(--text-primary)}.location-label{margin-top:.35rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.02em}.sidebar-groups{display:flex;flex-direction:column;gap:.75rem;width:100%;padding:.9rem 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.sidebar-group{text-align:center;gap:.1rem}.subtitle{font-size:.85rem;line-height:1.38;color:var(--text-secondary)}.subtitle-primary{font-weight:600;color:var(--text-primary)}.subtitle-secondary{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.social-icons{display:flex;align-items:center;justify-content:center;gap:.5rem}.icon a{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);font-size:.96rem;transition:all .2s ease}.icon a:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft);transform:translateY(-1px)}.resume-link{width:100%;display:flex;justify-content:center}.resume-button{width:100%;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.03em;text-transform:uppercase;padding:.65rem .9rem;border-color:var(--accent-border);background:var(--accent-soft);color:var(--text-primary)}.resume-button:hover{background:var(--accent);border-color:var(--accent);color:#0b0d11}.section-title{align-self:flex-start;position:relative;font-family:var(--font-serif);font-size:1.35rem;font-weight:500;letter-spacing:-.015em;line-height:1.25;color:var(--text-primary);margin-bottom:.95rem;padding-bottom:.4rem}.section-title:after{content:"";position:absolute;bottom:0;left:0;background:var(--accent);border-radius:2px;width:32px;height:2px;display:block}main{width:100%;min-width:0;justify-content:flex-start!important}.container{justify-content:flex-start;width:100%}main>.container+.container{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-subtle)}.about-editorial{width:100%;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;padding:1.45rem 1.75rem;margin-bottom:1.25rem;display:flex;flex-direction:column}.about-para{margin-bottom:.85rem;max-width:82ch;color:var(--text-secondary);font-size:.95rem;line-height:1.68}.about-lead{font-size:1.05rem;color:var(--text-primary);line-height:1.62;font-weight:400}.more-button{background:none;border:none;padding:0;margin-top:.15rem;align-self:flex-start;font-family:var(--font-mono);color:var(--accent);font-size:.78rem;letter-spacing:.02em}.more-button:hover{background:none;border-color:transparent;color:var(--link-hover)}.research-writing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1.25rem;width:100%}.writing-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;padding:1.4rem 1.6rem;display:flex;flex-direction:column;height:100%}.writing-panel .section-title{font-size:1.22rem;margin-bottom:.9rem}.writing-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;justify-content:space-between;flex:1;gap:.65rem}.writing-item{border-bottom:1px solid var(--border-subtle);padding-bottom:.65rem}.writing-item:last-child{border-bottom:none;padding-bottom:0}.writing-link{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.writing-title{font-size:.92rem;color:var(--text-primary);font-weight:500;transition:color .2s ease}.writing-link:hover .writing-title{color:var(--accent)}.writing-tag{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);flex-shrink:0}.thesis-callout{display:flex;flex-direction:column;gap:.45rem;flex:1}.thesis-title-link{font-family:var(--font-serif);font-size:1.08rem;line-height:1.38;color:var(--text-primary);font-weight:500}.thesis-title-link:hover{color:var(--accent)}.thesis-venue{font-family:var(--font-mono);font-size:.74rem;color:var(--accent);text-transform:uppercase;letter-spacing:.03em}.thesis-summary{font-size:.9rem;line-height:1.6;color:var(--text-secondary);margin-top:.15rem}.thesis-action-link{margin-top:auto;padding-top:.5rem;font-family:var(--font-mono);font-size:.78rem;color:var(--accent);align-self:flex-start}.thesis-action-link:hover{color:var(--link-hover)}footer{width:100%;padding:1.5rem 0;margin-top:auto;border-top:1px solid var(--border-subtle)}.footer{width:max-content;max-width:92%;margin:0 auto;font-family:var(--font-mono);color:var(--text-muted);font-size:.76rem;letter-spacing:.02em}.games-container{height:100vmin;width:100vmin}.pdf-view{width:100%;align-items:flex-start}.pdf-download{margin:.25rem 0 .9rem;font-family:var(--font-mono);font-size:.82rem}.pdf-frame{width:100%;height:min(82vh,920px);border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-elevated)}@media only screen and (max-width: 980px){.research-writing-grid{grid-template-columns:1fr}}@media only screen and (max-width: 860px){header{padding:.65rem 0;background:var(--panel-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}nav{padding:0 1rem;justify-content:center}nav>div{background:transparent;border:none;box-shadow:none;padding:0}.page-shell{grid-template-columns:1fr;gap:1.5rem;padding:0 1.25rem 2.5rem;margin-top:1rem}.sidebar{position:static;min-height:0;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;padding:1.25rem 1.4rem}.fullname{align-items:flex-start;text-align:left}.sidebar-groups{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:1.25rem;padding:.75rem 0}.sidebar-group{align-items:flex-start;text-align:left}.resume-link{width:auto}}@media only screen and (max-width: 540px){.name{font-size:1.45rem}.nav-link{font-size:.82rem;padding:.32rem .7rem}.writing-link{flex-direction:column;gap:.2rem}.pdf-frame{height:65vh}}
