.reflective-card-container{position:relative;width:320px;height:420px;border-radius:20px;overflow:hidden;background:#1a1a1a;box-shadow:0 20px 50px #00000080,0 0 0 1px #ffffff1a inset;isolation:isolate;font-family:IBM Plex Mono,monospace;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.reflective-card-container:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 30px 60px #0009,0 0 0 1px #fff3 inset}.reflective-card-container:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:4px}.reflective-card-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:grayscale(100%)}.reflective-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;opacity:0;pointer-events:none}.reflective-noise{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");mix-blend-mode:overlay}.reflective-sheen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:linear-gradient(135deg,#fff6,#ffffff1a 40%,#fff0,#ffffff1a 60%,#ffffff4d);pointer-events:none;mix-blend-mode:overlay;opacity:var(--metalness, 1)}.reflective-border{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;padding:1px;background:linear-gradient(135deg,#fffc,#fff3,#fff9);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;z-index:20;pointer-events:none}.reflective-content{position:relative;z-index:10;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:32px;color:var(--text-color, white);background:var(--overlay-color, rgba(255, 255, 255, .05))}.card-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.user-info{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:-180px}.user-name{font-size:32px;font-weight:600;letter-spacing:.1em;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.5)}.user-role{font-size:11px;letter-spacing:.15em;opacity:.8;margin:0;text-transform:uppercase}.card-footer{display:flex;justify-content:center;align-items:center;padding-top:24px;border-top:1px solid rgba(255,255,255,.15)}.click-hint{font-size:11px;letter-spacing:.1em;opacity:.5;transition:opacity .2s ease}.reflective-card-container:hover .click-hint{opacity:.8}@media(max-width:768px){.reflective-card-container{width:280px;height:360px}.user-name{font-size:26px}.reflective-content{padding:24px}}.landing{position:relative;width:100vw;height:100vh;overflow:hidden;background:#000}.landing-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;animation:fadeInUp .8s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.landing--exiting .landing-content{animation:fadeOutUp .6s ease-in forwards}.landing--exiting:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#000;z-index:100;animation:fadeIn .6s ease-in forwards}@keyframes fadeOutUp{to{opacity:0;transform:translateY(-30px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar{position:fixed;top:0;left:0;width:200px;height:100vh;background:#000;border-right:1px solid rgba(255,255,255,.1);z-index:200;display:flex;flex-direction:column;opacity:0;transform:translate(-10px);transition:opacity .4s ease,transform .4s ease}.sidebar--mounted{opacity:1;transform:translate(0)}.sidebar-inner{display:flex;flex-direction:column;height:100%;padding:var(--space-8) var(--space-5);overflow-y:auto}.sidebar-identity{margin-bottom:var(--space-6)}.sidebar-name{display:block;font-family:IBM Plex Mono,Courier New,monospace;font-size:var(--text-lg);font-weight:700;color:#fff;letter-spacing:.05em;text-transform:lowercase;text-decoration:none;transition:letter-spacing .2s ease}.sidebar-name:hover{letter-spacing:.1em}.sidebar-tagline{display:block;font-family:IBM Plex Mono,Courier New,monospace;font-size:10px;color:#ffffff59;letter-spacing:.1em;margin-top:var(--space-1);text-transform:lowercase}.sidebar-border{font-family:IBM Plex Mono,Courier New,monospace;font-size:8px;color:#ffffff1f;letter-spacing:.2em;margin:var(--space-4) 0;overflow:hidden;white-space:nowrap}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.sidebar-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-family:IBM Plex Mono,Courier New,monospace;font-size:12px;letter-spacing:.08em;color:#ffffff73;text-decoration:none;text-transform:lowercase;border-radius:0;transition:color .2s ease,background .2s ease;position:relative;opacity:0;animation:sidebarLinkIn .3s ease-out forwards}.sidebar-link:hover{color:#ffffffd9;background:#ffffff0a}.sidebar-link--active{color:#fff;background:#ffffff0f}.sidebar-link-icon{font-size:11px;width:14px;text-align:center;color:#ffffff40;flex-shrink:0}.sidebar-link--active .sidebar-link-icon{color:#ffffffb3}.sidebar-link-label{flex:1}.sidebar-link-cursor{font-size:11px;opacity:0;transition:opacity .2s ease}.sidebar-link--active .sidebar-link-cursor{opacity:1;animation:cursorBlink 1s step-end infinite}@keyframes cursorBlink{50%{opacity:0}}@keyframes sidebarLinkIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.sidebar-contact{display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-contact-link{font-family:IBM Plex Mono,Courier New,monospace;font-size:10px;color:#ffffff59;text-decoration:none;letter-spacing:.08em;text-transform:lowercase;transition:color .2s ease}.sidebar-contact-link:hover{color:#fffc}.sidebar-ascii-footer{margin-top:auto;padding-top:var(--space-6)}.sidebar-ascii-footer pre{font-family:IBM Plex Mono,Courier New,monospace;font-size:9px;line-height:1.2;color:#ffffff14;text-align:center}.sidebar-toggle{display:none;position:fixed;top:var(--space-4);left:var(--space-4);z-index:300;background:#000000e6;border:1px solid rgba(255,255,255,.2);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:0}.sidebar-toggle-icon{font-family:IBM Plex Mono,Courier New,monospace;font-size:12px;color:#ffffffb3;margin:0}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar{transform:translate(-100%);opacity:1;width:220px;transition:transform .3s ease}.sidebar--mounted{transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar-toggle{display:block}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:150}}.sidebar-layout{background:#000;color:#fafaf9;min-height:100vh;text-transform:lowercase;opacity:0;transition:opacity .4s ease}.sidebar-layout--visible{opacity:1}.sidebar-layout-content{margin-left:200px;min-height:100vh;padding:var(--space-12) var(--space-12);max-width:960px;width:100%}.sidebar-layout-content>*{animation:pageEnter .4s ease-out}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.sidebar-layout-content{margin-left:0;padding:var(--space-16) var(--space-6) var(--space-8)}}.typewriter{font-family:var(--font-body);display:inline-block}.typewriter-text{letter-spacing:.02em}.typewriter-cursor{display:inline-block;animation:typewriter-blink 1s step-end infinite;margin-left:1px;color:inherit;opacity:.9}@keyframes typewriter-blink{0%,50%{opacity:1}51%,to{opacity:.15}}.introduction{margin-bottom:var(--space-12);position:relative}.introduction-headings{text-align:center;margin-bottom:var(--space-8)}.introduction-headings h1{font-family:var(--font-heading);font-weight:600;line-height:1.2;text-align:center;color:inherit;letter-spacing:-.02em}.introduction-hero{font-size:var(--text-4xl);margin-bottom:var(--space-5)}.introduction-personal{max-width:600px;margin:0 auto;text-align:center}.introduction-tagline{font-size:var(--text-2xl);font-weight:600;margin:0 0 var(--space-6) 0;letter-spacing:-.02em}.introduction-story{text-align:left;margin-bottom:var(--space-8)}.introduction-story p{font-size:var(--text-base);line-height:1.8;margin:0 0 var(--space-4) 0;color:#404040}.introduction-story p:last-child{margin-bottom:0}.introduction-story .highlight{font-weight:600;color:inherit}.introduction-story a{font-weight:600;text-decoration:underline;text-underline-offset:3px}.introduction-ascii-wrap{display:flex;flex-direction:column;align-items:center;margin:var(--space-8) 0 var(--space-4);overflow-x:auto}.introduction-ascii{font-family:Courier New,Courier,monospace;font-size:9px;line-height:1.15;color:#b4b4b4;margin:0;text-align:left;white-space:pre}.introduction-location{font-size:var(--text-sm);color:#737373;letter-spacing:.02em;margin-top:var(--space-6)}@media(max-width:768px){.introduction-hero{font-size:var(--text-2xl)}.introduction-tagline{font-size:var(--text-xl)}.introduction-story p{font-size:var(--text-sm)}.introduction-ascii{font-size:6px}}.about-page-content{padding-top:var(--space-8)}.about-page-content .introduction{margin-bottom:0}.about-page-content .introduction-headings,.about-page-content .introduction-headings h1{text-align:left}.about-page-content .introduction-hero{font-size:clamp(1.75rem,5vw,2.5rem);color:#fff}.about-page-content .introduction-personal{max-width:100%;margin:0;text-align:left}.about-page-content .introduction-story{text-align:left}.about-page-content .introduction-story p{color:#ffffffb3}.about-page-content .introduction-story .highlight{color:#fff}.about-page-content .introduction-story a{color:#ffffffe6}.about-page-content .introduction-story a:hover{color:#fff}.about-page-content .introduction-ascii-wrap{align-items:flex-start}.about-page-content .introduction-ascii{color:#ffffff4d;font-size:8px;font-family:Courier New,Courier,monospace}.about-page-content .introduction-location{color:#ffffff80}.about-page-content .cursor{color:#fffc;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.life-section{position:relative}.life-header{margin-bottom:var(--space-8)}.life-label{font-family:IBM Plex Mono,Courier New,monospace;font-size:11px;letter-spacing:.15em;color:#fff6;text-transform:lowercase}.life-gallery{display:flex;flex-direction:column;gap:6px;overflow:hidden;opacity:0;transition:opacity .6s ease;margin-left:calc(-1 * var(--space-12));margin-right:calc(-1 * var(--space-12))}.life-gallery--visible{opacity:1}.life-row{display:flex;gap:6px;width:max-content}.life-row--left{animation:scrollLeft 35s linear infinite}.life-row--right{animation:scrollRight 35s linear infinite}.life-row--paused{animation-play-state:paused}@keyframes scrollLeft{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollRight{0%{transform:translate(-50%)}to{transform:translate(0)}}.life-item{position:relative;flex-shrink:0;width:380px;height:280px;overflow:hidden}.life-item img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%);transition:filter .4s ease,transform .4s ease}.life-item:hover img{filter:grayscale(0%);transform:scale(1.04)}.life-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#000000e6;cursor:zoom-out;animation:lightboxFadeIn .2s ease}.life-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}.life-item{cursor:zoom-in}@media(max-width:768px){.life-gallery{margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6))}.life-item{width:260px;height:190px}.life-row--left,.life-row--right{animation-duration:25s}}.life-page-content{padding-top:var(--space-8)}.life-page-content .life-header{text-align:left}.education-section{width:100%;margin-bottom:var(--space-20)}.education-intro{max-width:500px;margin:0 auto var(--space-8);text-align:center;font-size:var(--text-base);color:#525252}.education-list{display:flex;flex-direction:column;align-items:center;gap:var(--space-10);max-width:640px;margin:0 auto;text-align:center}.education-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.education-label{font-size:var(--text-sm);font-weight:600;color:#525252;letter-spacing:.04em}.education-period{font-size:var(--text-sm);font-weight:500;color:#737373}.education-institution{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;letter-spacing:-.02em;margin:0}.education-link{color:inherit;text-decoration:none}.education-link:hover{text-decoration:underline;text-underline-offset:3px;opacity:.9}.education-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}.education-description{font-size:var(--text-base);line-height:1.6;color:#404040;margin:0;white-space:pre-line}.education-exchange{margin-top:var(--space-6);padding-top:var(--space-5);border-top:2px solid rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.education-exchange-label{font-size:var(--text-sm);font-weight:600;color:#525252;letter-spacing:.04em}.education-exchange-period{font-size:var(--text-sm);font-weight:500;color:#737373}.education-exchange-institution{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em;margin:0}.education-exchange-description{font-size:var(--text-sm);line-height:1.6;color:#404040;margin:0}.education-bonus{margin-top:var(--space-6);font-size:var(--text-sm);color:#737373;line-height:1.6}.education-bonus a{color:#404040;font-weight:500}.education-page-content{padding-top:var(--space-8)}.education-page-content .education-section{opacity:1;transform:none;animation:none}.education-page-content .section-title{color:#ffffff80;text-align:left}.education-page-content .education-intro{text-align:left;margin:0 0 var(--space-8);color:#fff9}.education-page-content .education-list{align-items:stretch;max-width:100%;margin:0;text-align:left}.education-page-content .education-item{align-items:flex-start;text-align:left;background:#000;border:1px solid rgba(255,255,255,.2);border-radius:0;padding:var(--space-8);font-family:IBM Plex Mono,Courier New,monospace;position:relative;transition:all .2s ease}.education-page-content .education-item:before{display:block;font-family:IBM Plex Mono,Courier New,monospace;font-size:9px;letter-spacing:.15em;color:#ffffff4d;border-bottom:1px dashed rgba(255,255,255,.15);padding-bottom:6px;margin-bottom:var(--space-4);text-transform:lowercase}.education-page-content .education-item:hover{border-color:#fff9;box-shadow:0 0 20px #ffffff0d}.education-page-content .education-label,.education-page-content .education-exchange-label{color:#fff6;letter-spacing:.15em;font-size:9px;font-family:IBM Plex Mono,Courier New,monospace;text-transform:lowercase}.education-page-content .education-period,.education-page-content .education-exchange-period{color:#fff6;font-family:IBM Plex Mono,Courier New,monospace;font-size:10px;letter-spacing:.1em}.education-page-content .education-institution{font-size:var(--text-lg);font-family:IBM Plex Mono,Courier New,monospace;font-weight:700;letter-spacing:.05em;text-transform:lowercase}.education-page-content .education-description,.education-page-content .education-exchange-description{color:#fff9;font-family:IBM Plex Mono,Courier New,monospace;font-size:12px;line-height:1.7}.education-page-content .education-exchange{border-top:1px dashed rgba(255,255,255,.15);margin-top:var(--space-8);margin-left:calc(-1 * var(--space-8));margin-right:calc(-1 * var(--space-8));padding:var(--space-8) var(--space-8) 0;align-items:flex-start;text-align:left}.education-page-content .education-bonus{color:#ffffff80;font-family:IBM Plex Mono,Courier New,monospace;font-size:12px}.education-page-content .education-bonus a{color:#ffffffb3}.education-page-content a{color:#ffffffe6;transition:color .2s ease}.education-page-content a:hover{color:#fff}.education-page-content .education-link:after{content:" ↗";opacity:0;transition:opacity .2s ease}.education-page-content .education-link:hover:after{opacity:.5}.experience-section{width:100%;margin-bottom:var(--space-20)}.exp-timeline{position:relative;padding-left:32px}.exp-timeline-track{position:absolute;left:4px;top:0;bottom:0;width:1px;background:#ffffff26}.exp-timeline-item{position:relative;margin-bottom:var(--space-10)}.exp-timeline-item:last-child{margin-bottom:0}.exp-timeline-dot{position:absolute;left:-32px;top:12px;width:9px;height:9px;border:1px solid rgba(255,255,255,.4);background:#000;transform:translate(.5px)}.exp-timeline-content{display:flex;align-items:flex-start;gap:var(--space-5)}.exp-timeline-details{display:flex;flex-direction:column;gap:2px;font-family:IBM Plex Mono,Courier New,monospace}.exp-timeline-period{font-size:10px;letter-spacing:.12em;color:#ffffff59}.exp-timeline-org{font-size:var(--text-base);font-weight:700;color:#ffffffe6;letter-spacing:.02em}a.exp-timeline-org{text-decoration:none;border-bottom:1px dashed rgba(255,255,255,.25);width:fit-content;transition:all .2s ease}a.exp-timeline-org:hover{color:#fff;border-bottom-color:#fff9}.exp-timeline-role{font-size:12px;color:#ffffff80}.exp-timeline-location{font-size:11px;color:#ffffff4d;letter-spacing:.05em}.experience-page-content{padding-top:var(--space-8)}.experience-page-content .experience-section{opacity:1;transform:none;animation:none}.experience-page-content .section-title{color:#ffffff80;text-align:left}.experience-page-content a{color:#ffffffe6;transition:color .2s ease}.experience-page-content a:hover{color:#fff}.apps{padding:var(--space-12) 0 0}.apps-intro{max-width:600px;margin:0 auto var(--space-10);text-align:center;font-size:var(--text-base);line-height:1.7;color:#525252}.apps-masonry-wrap{width:100%;display:flex;justify-content:center}.apps-masonry{width:100%;max-width:960px;margin:0 auto;align-content:center!important}.project-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:var(--space-5) var(--space-5);transition:border-color .2s,box-shadow .2s;opacity:.001;transform:translateY(20px);transition:opacity .5s ease-out,transform .6s cubic-bezier(.34,1.56,.64,1),border-color .2s,box-shadow .2s}.project-card.visible{opacity:1;transform:translateY(0)}.project-card:hover{border-color:#0000001a;box-shadow:0 4px 20px #0000000f}.project-card-image-wrap{margin:0 0 var(--space-3);border-radius:0;overflow:hidden;background:#f8f8f8}.project-card-image{width:100%;height:180px;object-fit:cover;display:block;vertical-align:middle;filter:grayscale(100%);transition:filter .3s ease}.project-card-image-wrap:hover .project-card-image{filter:grayscale(0%)}.project-card-header{margin-bottom:var(--space-3);text-align:center}.project-card-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;letter-spacing:-.02em;margin:0 0 var(--space-1) 0;color:inherit;text-align:center}.project-card-period{display:block;font-size:var(--text-sm);font-weight:500;color:#525252;margin-bottom:2px}.project-card-event{display:block;font-size:var(--text-sm);color:#737373}.project-card-description{font-size:var(--text-sm);line-height:1.55;color:#404040;margin:0 0 var(--space-4) 0}.project-card-highlights{margin-bottom:var(--space-4)}.project-card-highlights-label{font-size:var(--text-sm);font-weight:600;display:block;margin-bottom:var(--space-2)}.project-card-highlights ul{margin:0;padding-left:var(--space-5);font-size:var(--text-sm);line-height:1.5;color:#404040}.project-card-highlights li{margin-bottom:var(--space-1)}.project-card-skills{margin-bottom:var(--space-4)}.project-card-skills-label{font-size:var(--text-sm);font-weight:600;display:block;margin-bottom:var(--space-1)}.project-card-skills-list{font-size:var(--text-sm);color:#525252}.project-card-links{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid rgba(0,0,0,.06)}.project-card-link{font-size:var(--text-sm);font-weight:500;color:#6366f1;text-decoration:none}.project-card-link:hover{text-decoration:underline;text-underline-offset:3px}.project-card-link:focus-visible{outline:2px solid rgba(99,102,241,.4);outline-offset:2px}.projects-page-content{padding-top:var(--space-8)}.projects-page-content .apps{opacity:1;transform:none;animation:none;padding:0}.projects-page-content .section-title{color:#ffffff80;text-align:left}.projects-page-content .apps-intro{color:#fff9;text-align:left;margin:0 0 var(--space-10);max-width:100%}.projects-page-content .apps-masonry-wrap{justify-content:flex-start}.projects-page-content .apps-masonry{max-width:100%}.projects-page-content .project-card{background:#000;border:1px solid rgba(255,255,255,.2);border-radius:0;font-family:IBM Plex Mono,Courier New,monospace;transition:all .2s ease;position:relative}.projects-page-content .project-card:hover{border-color:#fff9;box-shadow:0 0 20px #ffffff0d}.projects-page-content .project-card:before{content:">";display:block;font-family:IBM Plex Mono,Courier New,monospace;font-size:9px;letter-spacing:.15em;color:#ffffff4d;border-bottom:1px dashed rgba(255,255,255,.15);padding:6px var(--space-5);margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) var(--space-3);text-transform:lowercase}.projects-page-content .project-card-image-wrap{background:#000;border:1px dashed rgba(255,255,255,.1);border-radius:0;overflow:hidden;margin-top:var(--space-2)}.projects-page-content .project-card-image{filter:grayscale(100%) brightness(1) contrast(1);transition:all .3s ease}.projects-page-content .project-card:hover .project-card-image{filter:grayscale(0%) brightness(1) contrast(1)}.projects-page-content .project-card-header{text-align:left}.projects-page-content .project-card-title{font-family:IBM Plex Mono,Courier New,monospace;font-size:var(--text-lg);font-weight:700;letter-spacing:.08em;text-transform:lowercase;color:#fff;text-align:left}.projects-page-content .project-card-period{color:#fff6;font-size:10px;letter-spacing:.1em;font-family:IBM Plex Mono,Courier New,monospace}.projects-page-content .project-card-event{color:#ffffff80;font-size:10px;font-weight:500;letter-spacing:.05em;font-family:IBM Plex Mono,Courier New,monospace;border:1px solid rgba(255,255,255,.2);padding:2px 6px;display:inline-block;margin-top:4px}.projects-page-content .project-card-description{color:#fff9;line-height:1.7;font-size:12px;font-family:IBM Plex Mono,Courier New,monospace}.projects-page-content .project-card-description strong{color:#fff;font-weight:600}.projects-page-content .project-card-skills-list{color:#fff6;font-family:IBM Plex Mono,Courier New,monospace}.projects-page-content .project-card-links{border-top:1px dashed rgba(255,255,255,.15);padding-top:var(--space-3);margin-top:var(--space-3)}.projects-page-content .project-card-link{color:#ffffff80;transition:all .2s ease;padding:2px 8px;background:none;border:1px solid rgba(255,255,255,.15);font-family:IBM Plex Mono,Courier New,monospace;font-size:11px;letter-spacing:.05em}.projects-page-content .project-card-link:before{content:"> "}.projects-page-content .project-card-link:hover{color:#fff;background:#ffffff1a;border-color:#fff6}.projects-page-content a{color:#ffffffe6;transition:color .2s ease}.projects-page-content a:hover{color:#fff}.app{min-height:100vh;width:100%;max-width:960px;margin:0 auto;padding:var(--space-8) var(--space-6)}.intro-section{text-align:center;padding:var(--space-24) 0 var(--space-16);opacity:0;transform:translateY(20px);animation:heroFadeIn .6s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}@media(min-width:768px){.app{padding:var(--space-12) var(--space-10)}}*{margin:0;padding:0;box-sizing:border-box}:root{--font-heading: "IBM Plex Mono", monospace;--font-body: "IBM Plex Mono", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.25rem}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:#fafaf9;font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;min-height:100vh;color:#171717}#root{min-height:100vh}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:2px}.section-title{font-size:var(--text-lg);font-weight:500;color:#525252;margin-bottom:var(--space-6);text-align:center}
