@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=Roboto+Slab:wght@500;700&display=swap";:root{--bg: #dfe6ee;--bg-deep: #d4dde7;--paper: #eef4f9;--paper-alt: #e8eff6;--text: #28313d;--text-soft: #516072;--accent: #5f7692;--accent-2: #7f98b4;--line: #b4c1cf;--line-strong: #8ea2b8;--card-shadow: 0 10px 24px rgba(29, 46, 65, .12)}html{scroll-behavior:smooth}body{background:linear-gradient(180deg,#ffffff38,#ffffff1f),linear-gradient(180deg,var(--bg),var(--bg-deep));color:var(--text);font-family:IBM Plex Mono,monospace;font-size:15px;line-height:1.6}.scrapbook-page{min-height:100vh;padding:34px 20px 60px;position:relative;overflow:hidden}.scrapbook-page:before{content:"";position:fixed;inset:-100px auto -120px -180px;width:min(50vw,760px);background:url(/utility-lines.svg) left center / contain no-repeat;opacity:.12;pointer-events:none;z-index:0}.grain-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.14;background-image:radial-gradient(rgba(40,58,77,.18) .45px,transparent .45px),radial-gradient(rgba(40,58,77,.1) .45px,transparent .45px);background-size:3px 3px,4px 4px;background-position:0 0,1px 1px}.board-main{position:relative;z-index:1;max-width:1020px;margin:0 auto;display:grid;gap:16px}.home-cluster,.subpage-shell{display:grid;grid-template-columns:minmax(0,1.55fr) 260px;gap:14px;align-items:start}.home-main,.home-side,.subpage-main,.subpage-side{display:grid;gap:14px;min-width:0}.subpage-shell{grid-template-columns:minmax(0,1fr) 260px}.subpage-main{grid-column:1;overflow:visible}.subpage-side{grid-column:2;align-content:start}.subpage-topline{padding:6px 10px;border:1px dotted var(--line);background:#ffffff52;color:var(--text-soft);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;letter-spacing:.03em;text-transform:lowercase}.subpage-back{color:#395575;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;white-space:nowrap}.sidebar-shell{background:linear-gradient(180deg,#e4ecf3,#dde7ef);border:1px solid var(--line-strong);padding:12px 14px;box-shadow:var(--card-shadow);clip-path:polygon(2% 1%,98% 2%,100% 12%,99% 98%,4% 99%,1% 88%,0% 6%);position:relative}.sidebar-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(65,86,110,.12) .45px,transparent .45px);background-size:3px 3px;opacity:.35;pointer-events:none}.sidebar-nav{margin-top:2px;display:grid;gap:7px}.sidebar-link{color:#2f3f52;text-decoration:none;width:fit-content;font-size:13px;transition:transform .2s ease,color .2s ease}.sidebar-link:before{content:"›";margin-right:6px;color:var(--accent)}.sidebar-link.active,.sidebar-link:hover,.sidebar-link:focus-visible{color:#4c6684;transform:translate(2px)}.paper-card{position:relative;background:linear-gradient(180deg,var(--paper),var(--paper-alt));border:1px dotted var(--line);box-shadow:var(--card-shadow);padding:12px 14px;overflow:hidden}.paper-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(83,102,122,.08) .5px,transparent .5px);background-size:3px 3px;opacity:.25}.paper-tape{position:absolute;top:-8px;width:58px;height:15px;background:#8ca2bab8;border:1px solid rgba(90,109,128,.2)}.paper-tape--left{left:22px;transform:rotate(-7deg)}.paper-tape--center{left:calc(50% - 29px);transform:rotate(1deg)}.paper-tape--right{right:20px;transform:rotate(8deg)}.hero-card{padding:0}.hero-banner{height:104px;border-bottom:1px dotted var(--line);background:linear-gradient(120deg,rgba(54,75,100,.09) 10%,transparent 34%),repeating-linear-gradient(-28deg,rgba(56,76,98,.16) 0,rgba(56,76,98,.16) 1px,transparent 1px,transparent 40px),linear-gradient(180deg,#eef4fa,#e4ecf4);position:relative}.hero-banner:before{content:"";position:absolute;right:21%;top:-14px;width:6px;height:170px;background:#324458cc}.hero-banner:after{content:"";position:absolute;right:21%;top:42px;width:122px;height:4px;transform:rotate(-21deg);transform-origin:right center;background:#324458cc}.hero-card .eyebrow,.hero-card h1,.hero-card .hero-subtitle,.hero-card .hero-summary,.hero-card .hero-meta{padding-left:14px;padding-right:14px}.hero-card .eyebrow{margin-top:9px;font-family:Roboto Slab,serif;font-size:13px;font-style:italic;text-transform:none;letter-spacing:.01em;color:var(--accent)}.hero-card h1{margin-top:3px;font-family:Roboto Slab,serif;font-size:clamp(1.85rem,4vw,2.45rem);line-height:1.08}.hero-subtitle{margin-top:5px;color:var(--text-soft);font-size:12px}.hero-summary{margin-top:8px;max-width:70ch;font-size:13px}.hero-meta{margin-top:10px;padding-bottom:12px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:#5b6878}.section-heading{margin-bottom:8px}.section-heading h2{display:inline-flex;gap:6px;align-items:center;font-family:IBM Plex Sans,sans-serif;font-size:20px;font-weight:600;color:#37506a}.section-heading h2:before{content:"•";color:#6c87a4}.about-grid{display:grid;grid-template-columns:182px minmax(0,1fr);gap:12px}.polaroid{margin:4px 0 0;background:#f8fbff;border:1px solid #c7d4e1;padding:8px 8px 20px;box-shadow:0 6px 14px #27374a1f;transform:rotate(-1.2deg)}.polaroid img{width:100%;display:block;aspect-ratio:1 / 1.12;object-fit:cover}.polaroid figcaption{margin-top:7px;text-align:center;font-family:IBM Plex Sans,sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5d7187}.about-card p,.project-note p,.timeline-item li,.skill-group-note,.status-list,.aboutme-card,.blog-card,.links-card,.changelog-list,.gateway-link p{font-size:13px}.about-actions{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px 12px}.about-actions a{color:#46627f;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;font-size:12px}.about-mini{margin-top:10px}.about-mini p{margin:0}.about-mini p+p{margin-top:8px}.contact-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px 12px}.contact-list a,.aboutme-card a,.blog-card a,.links-card a,.site-footer a,.gateway-link{color:#46627f;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.link-icon{display:inline-block;margin-right:4px;font-size:11px;line-height:1;color:#5a7796}.contact-list a:hover,.aboutme-card a:hover,.blog-card a:hover,.links-card a:hover,.site-footer a:hover,.gateway-link:hover{color:#30465d}.mini-note{margin-top:12px;border:1px dotted var(--line);background:#ffffff57;padding:9px}.mini-note h3{font-family:Roboto Slab,serif;font-size:17px;margin-bottom:4px}.edu-entry+.edu-entry{margin-top:12px;padding-top:10px;border-top:1px dotted var(--line)}.mini-note ul{margin-top:6px;padding-left:16px}.experience-stack{display:grid;gap:14px}.experience-block{border:1px dotted var(--line);background:#ffffff57;padding:12px}.experience-block-head{border-bottom:1px dotted var(--line);margin-bottom:10px;padding-bottom:7px}.experience-block-head h3{font-family:IBM Plex Sans,sans-serif;font-size:16px;color:#395775;letter-spacing:.02em;text-transform:lowercase}.education-grid,.experience-timeline,.leadership-grid{display:grid;gap:10px}.education-grid{grid-template-columns:minmax(0,1fr)}.education-card,.experience-item,.leadership-card{border:1px dotted var(--line);background:#fff6;padding:10px}.education-card header,.experience-item header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.education-school,.experience-item h4{font-size:13px;line-height:1.2;margin:0}.education-school{font-weight:700}.education-period{color:var(--text);font-size:13px;white-space:nowrap;margin:0}.education-degree{margin-top:5px;font-size:13px}.education-department{margin-top:4px;font-size:13px;color:#50647a}.education-status{margin-top:6px;border-left:2px solid #88a0b8;padding-left:8px;font-size:13px;color:#4d6075;font-style:italic}.education-list{margin-top:7px;padding-left:16px}.education-list li{margin-bottom:4px;font-size:13px}.experience-item ul{margin-top:8px;padding-left:16px}.experience-item li{margin-bottom:4px;font-size:13px;line-height:1.5}.timeline-company,.timeline-meta,.project-note header p{color:var(--text-soft);font-size:11px}.experience-item .timeline-company,.experience-item .timeline-meta,.leadership-card p{font-size:12px;color:var(--text-soft)}.experience-item .timeline-meta{text-align:right}.leadership-card{display:grid;gap:5px}.leadership-card strong{font-family:Roboto Slab,serif;font-size:1rem}.gateway-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.gateway-link{border:1px dotted var(--line);background:#ffffff5c;padding:10px;text-decoration:none}.gateway-link strong{display:block;font-family:Roboto Slab,serif;color:#31485f;margin-bottom:4px}.projects-card .project-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-note,.skill-group-note{border:1px dotted var(--line);background:#ffffff61;padding:10px}.project-media{margin-bottom:8px;border:1px solid #b9c7d5;background:linear-gradient(180deg,#e4eef7,#d6e4f3);min-height:96px;overflow:hidden}.project-media img{width:100%;height:140px;object-fit:cover;display:block}.project-note:nth-child(odd){transform:rotate(-.35deg)}.project-note:nth-child(2n){transform:rotate(.28deg)}.project-note header{display:flex;justify-content:space-between;gap:8px}.project-note h3,.skill-group-note h3{font-family:Roboto Slab,serif;line-height:1.18}.project-note h3{font-size:1.02rem}.project-note ul,.changelog-list{margin-top:7px;padding-left:16px}.project-note li,.changelog-list li{margin-bottom:4px}.project-links{margin-top:7px;display:flex;flex-wrap:wrap;gap:8px 12px}.project-links a{color:#46627f;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;font-size:12px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.paper-tag{border:1px solid #b9c7d5;border-radius:999px;background:#dfe9f3;color:#3d4f62;padding:1px 7px;font-size:10px}.timeline-meta{text-align:right}.skills-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.status-list{display:grid;gap:4px}.status-list span{color:#6180a0;font-family:IBM Plex Sans,sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-right:6px}.status-card.compact .section-heading h2,.links-card.compact .section-heading h2,.aboutme-card.compact .section-heading h2,.blog-card.compact .section-heading h2,.changelog-card.compact .section-heading h2{font-size:17px}.badge-row{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 8px}.retro-badge{width:100%;min-height:28px;border:1px solid #8ea6be;background:linear-gradient(180deg,#d7e6f4,#bfd3e6);color:#30455b;font-size:10px;display:inline-flex;align-items:center;justify-content:center;text-transform:lowercase;letter-spacing:.02em}.contact-list.compact{margin-top:3px}.changelog-list{list-style:square}.changelog-scroll{max-height:260px;overflow-y:auto;padding-right:6px}.changelog-scroll.compact{max-height:190px}.changelog-date{font-size:11px;color:var(--text-soft);margin-bottom:2px}.aboutme-content p{margin:0 0 8px}.aboutme-group+.aboutme-group{margin-top:10px}.aboutme-group h3{font-family:IBM Plex Sans,sans-serif;font-size:14px;color:#3a5571;margin:0 0 4px}.aboutme-group ul,.blog-list{list-style:square;padding-left:16px}.aboutme-group li,.blog-list li{margin-bottom:6px}.blog-date{font-size:11px;color:var(--text-soft)}.blog-title{font-family:IBM Plex Sans,sans-serif;font-weight:600;color:#37506a}.collage-marquee{margin-top:10px;border:1px dotted var(--line);background:#ffffff5c;max-width:100%;overflow:hidden;position:relative;min-height:148px;padding:0}.collage-track{position:absolute;left:0;top:8px;display:flex;align-items:center;gap:10px;width:max-content;animation:collage-slide 16s linear infinite}.collage-item{flex:0 0 auto;width:132px;min-height:96px;border:1px solid #b6c5d4;background:#ecf3fa;color:#4f647b;box-shadow:0 4px 8px #293a4d14;margin-left:8px;transform:rotate(-1deg)}.collage-item:nth-child(2n){transform:rotate(1.2deg)}.collage-item--image img{width:100%;height:84px;object-fit:cover;display:block}.collage-item figcaption{padding:4px 6px;font-size:10px;text-align:center}.collage-item--placeholder{display:grid;place-items:center;padding:8px}.collage-item--placeholder p{font-size:11px;text-align:center;word-break:break-word;overflow-wrap:anywhere}.collage-marquee.compact .collage-item{width:112px;min-height:86px}.collage-marquee.compact .collage-item--image img{height:70px}@keyframes collage-slide{0%{transform:translate(-50%)}to{transform:translate(0)}}.currently-intro{color:var(--text-soft);margin-bottom:10px}.currently-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.currently-item{border:1px dotted var(--line);background:#ffffff59;padding:10px}.currently-item h3{font-family:IBM Plex Sans,sans-serif;font-size:14px;color:#44617f;margin-bottom:4px}.home-side .paper-card,.subpage-side .paper-card{padding:10px 11px}.site-footer{margin-top:4px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--text-soft);padding:4px 2px 0}@media (max-width: 1000px){.home-cluster,.subpage-shell{grid-template-columns:minmax(0,1fr)}.home-side,.subpage-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.subpage-main,.subpage-side{grid-column:1;overflow:visible}.sidebar-shell{clip-path:none;grid-column:1 / -1}.sidebar-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}.projects-card .project-grid,.skills-grid,.gateway-grid,.currently-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.education-grid{grid-template-columns:minmax(0,1fr)}.education-card header,.experience-item header{flex-direction:column;gap:3px}.education-period{white-space:normal}.experience-item .timeline-meta{text-align:left}}@media (max-width: 760px){.scrapbook-page{padding:24px 10px 38px}.scrapbook-page:before{width:82vw;left:-42vw;opacity:.1}.board-main,.home-main,.home-side,.subpage-main,.subpage-side{gap:10px}.subpage-topline{flex-wrap:wrap;justify-content:flex-start}.hero-banner{height:84px}.about-grid,.home-side,.subpage-side{grid-template-columns:minmax(0,1fr)}.experience-block{padding:10px}.education-card,.experience-item,.leadership-card{padding:9px}.experience-item h4,.education-school{font-size:1rem}.site-footer{display:grid;gap:3px}.collage-item{width:118px}.collage-item--image img{height:74px}.collage-marquee{min-height:130px}}@media (hover: hover) and (pointer: fine){body{cursor:url(/cursor-note.svg) 2 2,auto}a,button,.retro-badge,input,textarea,[role=button]{cursor:url(/cursor-note-pointer.svg) 3 2,pointer}}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:#677d922e}::-webkit-scrollbar-thumb{background:#7e96ad;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#69829a}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%}a{color:inherit}
