:root{--sidebar-width: 272px;--topbar-height: 52px;--surface-app: #191919;--surface-sidebar: #202020;--surface-hover: #2b2b2b;--surface-active: #30302f;--surface-raised: #242424;--surface-subtle: #222222;--border: #343434;--border-soft: #2c2c2c;--text-primary: #e9e9e7;--text-secondary: #b9b9b6;--text-muted: #8f8f8c;--blue: #529cca;--blue-soft: rgba(82, 156, 202, .16);--green: #4dab9a;--green-soft: rgba(77, 171, 154, .14);--icon-accent: #4ab1ff;--yellow-soft: rgba(203, 145, 47, .14);--page-width: 860px;--page-wide: 1160px}.workspace{min-height:100svh;background:var(--surface-app);color:var(--text-primary)}.workspace-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;width:var(--sidebar-width);height:100svh;flex-direction:column;border-right:1px solid var(--border-soft);background:var(--surface-sidebar)}.sidebar-header{display:flex;min-height:var(--topbar-height);align-items:center;gap:.5rem;padding:.45rem .55rem}.workspace-identity{display:flex;min-width:0;flex:1;align-items:center;gap:.68rem;padding:.35rem;border-radius:6px;color:inherit;text-decoration:none}.workspace-identity:hover{background:var(--surface-hover)}.workspace-identity img{width:29px;height:29px;flex:0 0 auto;border-radius:5px;object-fit:cover;object-position:center 30%}.workspace-identity span{display:grid;min-width:0;gap:.05rem}.workspace-identity strong,.workspace-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-identity strong{font-size:.88rem;font-weight:600}.workspace-identity small{color:var(--text-muted);font-size:.7rem}.icon-button{display:inline-flex;width:34px;height:34px;flex:0 0 auto;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;text-decoration:none}.icon-button:hover{background:var(--surface-hover);color:var(--text-primary)}.icon-button svg{width:18px;height:18px;stroke-width:1.8}.sidebar-close{display:none}.sidebar-nav{min-height:0;flex:1;overflow-y:auto;padding:.7rem .55rem}.sidebar-label{margin:0 0 .35rem;padding:0 .5rem;color:var(--text-muted);font-size:.68rem;font-weight:600;letter-spacing:0;text-transform:uppercase}.sidebar-label-secondary{margin-top:1.5rem}.sidebar-link{display:flex;min-height:36px;align-items:center;gap:.72rem;padding:.42rem .58rem;border-radius:6px;color:var(--text-secondary);font-size:.88rem;font-weight:500;text-decoration:none}.sidebar-link:hover{background:var(--surface-hover);color:var(--text-primary)}.sidebar-link.is-active{background:var(--surface-active);color:var(--text-primary)}.sidebar-link svg{width:18px;height:18px;flex:0 0 auto;color:var(--text-muted);stroke-width:1.8}.sidebar-link.is-active svg{color:var(--icon-accent)}.workspace-main{display:flex;height:100svh;margin-left:var(--sidebar-width);flex-direction:column;background:var(--surface-app)}.workspace-topbar{position:relative;z-index:20;display:flex;min-height:var(--topbar-height);flex:0 0 var(--topbar-height);align-items:center;justify-content:space-between;gap:1rem;padding:0 .75rem 0 1rem;border-bottom:1px solid var(--border-soft);background:#191919f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-page,.topbar-actions{display:flex;align-items:center}.topbar-page{min-width:0;gap:.55rem;color:var(--text-secondary);font-size:.86rem;font-weight:500}.topbar-page>svg{width:17px;height:17px;color:var(--text-muted);stroke-width:1.8}.topbar-actions{gap:.15rem}.mobile-menu-button{display:none}.workspace-content{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}.workspace-page{min-height:100%;padding-bottom:4rem}.info-page{padding-bottom:1.5rem}.page-header{position:relative}.page-cover{position:relative;height:270px;overflow:hidden;background:var(--surface-raised)}.page-cover img{width:100%;height:100%;object-fit:cover}.info-page .page-cover{height:320px;background:#000}.info-page .page-cover img{object-fit:cover;object-position:center 50%}.page-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(25,25,25,.48));pointer-events:none}.page-header-inner,.page-body{width:calc(100% - 3rem);max-width:var(--page-width);margin-inline:auto}.page-header-inner{padding-top:4rem}.page-header.has-cover .page-header-inner{position:relative;margin-top:-31px;padding-top:0}.page-width-wide{width:calc(100% - 3rem);max-width:var(--page-wide)}.page-icon{display:flex;width:66px;height:66px;overflow:hidden;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised);color:var(--icon-accent);box-shadow:0 8px 24px #0000003d}.page-icon svg{width:34px;height:34px;stroke-width:1.65}.page-icon img{width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:50% 25%}.page-eyebrow{margin:1.25rem 0 0;color:var(--text-muted);font-size:.72rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.page-header h1{max-width:900px;margin:.4rem 0 0;color:#f1f1ef;font-size:3.25rem;font-weight:700;letter-spacing:0;line-height:1.08;overflow-wrap:anywhere}.page-header h1:focus{outline:none}.page-subtitle{max-width:720px;margin:.85rem 0 0;color:var(--text-secondary);font-size:1rem;line-height:1.65}.page-body{display:grid;gap:2.25rem;padding-top:2.6rem}.page-section{min-width:0}.section-title-row{display:flex;align-items:center;gap:.55rem;padding-bottom:.7rem;border-bottom:1px solid var(--border-soft)}.section-title-row svg{width:18px;height:18px;flex:0 0 auto;color:var(--text-muted);stroke-width:1.8}.section-title-row h2{margin:0;font-size:1.05rem;font-weight:650}.property-list{margin:0}.property-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1rem;min-height:45px;align-items:center;padding:.55rem .35rem;border-bottom:1px solid var(--border-soft)}.property-row dt,.property-row dd{margin:0}.property-row dt{color:var(--text-muted);font-size:.82rem}.property-row dd{min-width:0;color:var(--text-secondary);font-size:.88rem;overflow-wrap:anywhere}.property-with-icon{display:inline-flex;align-items:center;gap:.4rem}.property-with-icon svg{width:15px;height:15px;color:var(--text-muted)}.status-tag,.tag{display:inline-flex;align-items:center;min-height:23px;padding:.18rem .48rem;border-radius:4px;font-size:.75rem;line-height:1.2}.status-tag{min-height:0;padding:0;background:transparent;color:inherit;font-size:inherit;line-height:inherit}.tag-blue{background:var(--blue-soft);color:#91c4e1}.tag-neutral{background:#ffffff12;color:var(--text-secondary)}.page-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.check-list{display:grid;gap:.65rem;margin:0;padding:1rem 0 0;list-style:none}.check-list li{display:flex;align-items:flex-start;gap:.6rem;color:var(--text-secondary);font-size:.88rem;line-height:1.5}.check-list svg{width:16px;height:16px;flex:0 0 auto;margin-top:.15rem;color:var(--green)}.section-copy{margin:0;padding-top:1rem;color:var(--text-secondary);font-size:.9rem;line-height:1.7}.notion-link-list{display:grid}.notion-link-row{display:flex;min-width:0;min-height:53px;align-items:center;gap:.7rem;padding:.5rem .4rem;border-bottom:1px solid var(--border-soft);color:inherit;text-decoration:none}.notion-link-row:hover{background:var(--surface-subtle)}.info-credit{color:var(--text-muted);font-size:.72rem;line-height:1.6}.info-credit a{color:inherit;text-underline-offset:.15em}.info-credit a:hover{color:var(--text-secondary)}.link-row-icon{display:flex;width:30px;height:30px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:5px;background:var(--surface-raised);color:var(--text-secondary)}.link-row-icon svg,.link-row-arrow{width:16px;height:16px}.link-row-copy{display:grid;min-width:0;flex:1;gap:.05rem}.link-row-copy strong{font-size:.85rem;font-weight:550}.link-row-copy small{overflow:hidden;color:var(--text-muted);font-size:.72rem;text-overflow:ellipsis}.link-row-arrow{flex:0 0 auto;color:var(--text-muted)}.course-list{display:grid}.course-row{display:grid;grid-template-columns:42px minmax(0,1fr);min-height:48px;align-items:center;border-bottom:1px solid var(--border-soft);color:var(--text-secondary)}.course-row span{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.course-row strong{font-size:.88rem;font-weight:500;text-transform:capitalize}.project-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.project-toolbar .section-title-row{min-width:150px;border-bottom:0;padding-bottom:0}.filter-control{display:flex;max-width:100%;gap:2px;padding:3px;overflow-x:auto;border:1px solid var(--border-soft);border-radius:7px;background:var(--surface-subtle);scrollbar-width:none}.filter-control::-webkit-scrollbar{display:none}.filter-control button{min-height:29px;flex:0 0 auto;padding:0 .65rem;border:0;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.74rem;font-weight:550}.filter-control button:hover{color:var(--text-secondary)}.filter-control button.is-active{background:var(--surface-active);color:var(--text-primary);box-shadow:0 1px 3px #00000040}.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.project-gallery-card{display:flex;min-width:0;overflow:hidden;flex-direction:column;border:1px solid var(--border);border-radius:7px;background:var(--surface-subtle);transition:border-color .16s ease,transform .16s ease}.project-gallery-card:hover{border-color:#494949;transform:translateY(-2px)}.project-cover{aspect-ratio:16 / 9;overflow:hidden;border-bottom:1px solid var(--border-soft);background:#151515}.project-cover img{width:100%;height:100%;object-fit:cover}.project-card-body{display:flex;flex:1;flex-direction:column;gap:.85rem;padding:.9rem}.project-heading{display:flex;min-width:0;align-items:flex-start;gap:.65rem}.project-page-icon{display:flex;width:28px;height:28px;flex:0 0 auto;align-items:center;justify-content:center;color:var(--blue)}.project-page-icon svg{width:20px;height:20px}.project-heading>div{min-width:0}.project-heading h2,.project-heading p{margin:0}.project-heading h2{color:var(--text-primary);font-size:1rem;font-weight:650;line-height:1.3;overflow-wrap:anywhere}.project-heading p{margin-top:.12rem;color:var(--text-muted);font-size:.72rem}.project-properties{display:flex;min-height:27px;align-items:center;justify-content:space-between;gap:.5rem;color:var(--text-muted);font-size:.72rem}.project-description{margin:0;color:var(--text-secondary);font-size:.8rem;line-height:1.58}.project-award{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .62rem;border-radius:5px;background:var(--yellow-soft);color:#d9b671;font-size:.72rem;line-height:1.45}.project-award svg{width:15px;height:15px;flex:0 0 auto;margin-top:.05rem;color:var(--icon-accent)}.project-skills{display:flex;flex-wrap:wrap;gap:.3rem}.tag-skill{min-height:21px;background:var(--blue-soft);color:#91c4e1;font-size:.67rem}.project-links{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.65rem}.project-links a{display:inline-flex;min-height:30px;align-items:center;gap:.4rem;padding:0 .6rem;border:1px solid var(--border);border-radius:5px;background:var(--surface-raised);color:var(--text-secondary);font-size:.71rem;font-weight:550;text-decoration:none}.project-links a:hover{background:var(--surface-hover);color:var(--text-primary)}.project-links svg{width:14px;height:14px}.experience-page .page-header-inner{padding-top:5.5rem}.experience-timeline{display:grid;gap:1.25rem;margin:0;padding:1.35rem 0 0;list-style:none}.experience-item{display:grid;grid-template-columns:130px 28px minmax(0,1fr);align-items:stretch;gap:.8rem}.experience-period{padding-top:.85rem;color:var(--text-muted);font-size:.76rem;line-height:1.45;text-align:right}.experience-rail{position:relative;min-height:100%}.experience-item:not(:last-child) .experience-rail:after{content:"";position:absolute;top:21px;bottom:-1.7rem;left:50%;width:1px;background:var(--border);transform:translate(-50%)}.experience-rail>span{position:absolute;top:15px;left:50%;z-index:1;width:11px;height:11px;border:2px solid var(--surface-app);border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px var(--blue-soft);transform:translate(-50%)}.experience-item--current .experience-rail>span{background:var(--green);box-shadow:0 0 0 2px var(--green-soft)}.experience-entry{display:grid;grid-template-columns:68px minmax(0,1fr);gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:7px;background:var(--surface-subtle)}.experience-logo{display:flex;width:68px;height:68px;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#fff}.experience-logo img{width:100%;height:100%;object-fit:contain}.experience-copy{min-width:0}.experience-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.experience-heading>div{min-width:0}.experience-company,.experience-heading h3,.experience-focus,.experience-description{margin:0}.experience-company{color:var(--text-muted);font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.experience-heading h3{margin-top:.18rem;color:var(--text-primary);font-size:1.02rem;font-weight:650;line-height:1.35}.experience-focus{margin-top:.22rem;color:var(--blue);font-size:.78rem;line-height:1.45}.experience-status{display:inline-flex;min-height:24px;flex:0 0 auto;align-items:center;padding:.2rem .52rem;border-radius:4px;font-size:.7rem;font-weight:600}.experience-status--upcoming{background:var(--blue-soft);color:#91c4e1}.experience-status--current{background:var(--green-soft);color:#8bc8bd}.experience-description{margin-top:.85rem;color:var(--text-secondary);font-size:.84rem;line-height:1.65}.contact-page .page-header-inner{padding-top:5.5rem}.contact-location{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;color:var(--text-muted);font-size:.8rem}.contact-location svg{width:14px;height:14px}.page-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:1.2rem;border-top:1px solid var(--border-soft);color:var(--text-muted);font-size:.72rem}.sidebar-backdrop{display:none}@media(max-width:1180px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.workspace-sidebar{width:min(86vw,300px);transform:translate(-101%);box-shadow:18px 0 48px #0000006b;transition:transform .18s ease}.workspace-sidebar.is-open{transform:translate(0)}.sidebar-close,.mobile-menu-button{display:inline-flex}.workspace-main{margin-left:0}.sidebar-backdrop{position:fixed;inset:0;z-index:25;display:block;width:100%;height:100%;padding:0;border:0;background:#00000094}.page-cover{height:225px}.info-page .page-cover{height:240px}}@media(max-width:640px){.workspace-topbar{padding-left:.45rem}.topbar-actions .icon-button{display:none}.page-header-inner,.page-body{width:calc(100% - 2rem);max-width:var(--page-width)}.page-width-wide{width:calc(100% - 2rem);max-width:var(--page-wide)}.page-cover{height:185px}.info-page .page-cover{height:210px}.page-icon{width:56px;height:56px}.page-icon svg{width:29px;height:29px}.page-header h1{font-size:2.25rem;line-height:1.12}.page-subtitle{font-size:.92rem}.page-body{gap:2rem;padding-top:2.2rem}.property-row{grid-template-columns:108px minmax(0,1fr);gap:.7rem}.page-columns{grid-template-columns:1fr}.project-toolbar{align-items:stretch;flex-direction:column}.filter-control{width:100%}.project-gallery{grid-template-columns:1fr}.project-gallery-card:hover{transform:none}.contact-page .page-header-inner,.experience-page .page-header-inner{padding-top:4rem}.experience-item{grid-template-columns:24px minmax(0,1fr);gap:0 .7rem}.experience-period{grid-column:2;grid-row:1;padding:0 0 .55rem;text-align:left}.experience-rail{grid-column:1;grid-row:1 / 3}.experience-rail>span{top:4px}.experience-item:not(:last-child) .experience-rail:after{top:10px}.experience-entry{grid-column:2;grid-row:2;grid-template-columns:52px minmax(0,1fr);gap:.75rem;padding:.8rem}.experience-logo{width:52px;height:52px}.experience-heading{align-items:flex-start;flex-direction:column;gap:.5rem}.page-footer{flex-direction:column}}@media(prefers-reduced-motion:reduce){.workspace-content{scroll-behavior:auto}.workspace-sidebar,.project-gallery-card{transition:none}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;color:#e9e9e7;background:#191919;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#191919}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden;background:#191919}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}img{display:block;max-width:100%}:focus-visible{outline:2px solid #529cca;outline-offset:2px}::selection{background:#529cca52;color:#fff}
