@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700";@import"https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400..700;1,400..700&display=swap";*,*:before,*:after{box-sizing:border-box}html,body{width:100%;overflow-x:hidden}:root{--font-base: "Inter", "Helvetica Neue", Arial, sans-serif;--font-serif: "Libre Baskerville", serif;--font-family: var(--font-base);--blog-font: var(--font-base)}body,h1,h2,h3,h4,p{margin:0;padding:5px;font-family:var(--font-family, var(--font-base))}body{background:#fff;color:#000;display:flex;justify-content:center}.app-shell{width:100%;max-width:1100px;margin:0 auto;padding:0 20px 20px}a{transition:font-size .3s ease-in-out;text-decoration:none;color:#000;cursor:pointer}a:hover{text-decoration:underline}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}h4,p{font-size:16px}footer{padding:16px 0 12px;color:gray;display:flex;justify-content:space-between;align-items:center}.job-title{font-style:italic;font-weight:400;color:gray}.footer-left{font-size:14px}.footer-right{display:flex;justify-content:flex-end}.font-toggle{display:inline-flex;gap:8px}.font-btn{border:1px solid #dcdcdc;background:#f7f7f7;color:#333;padding:6px 10px;border-radius:8px;cursor:pointer;font-size:12px}.font-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}.header{background-color:#fff;display:flex;align-items:center;padding:18px 0;justify-content:space-between;gap:14px}.header-left{display:flex;align-items:center;gap:10px}.name{flex-grow:1;margin-left:0;font-weight:700}.menu{display:flex;align-items:center;gap:16px}.menu a{margin-right:20px;text-decoration:none;color:#333;font-family:Open Sans,sans-serif}.circle-cutout{width:200px;height:200px;border-radius:50%;background-image:url(/assets/about/profile.jpg);background-position:center;background-size:cover;background-repeat:no-repeat;border-width:10px;border-color:#000}.rectangle-image{max-width:100%;display:inline-block;text-align:center;border-radius:8px;border:none;transition:transform .3s ease-in-out;margin:0 auto}.rectangle-image img{width:100%;height:auto;display:block}.rectangle-image iframe{width:100%;height:auto;aspect-ratio:16 / 9;display:block}.about-section{padding:48px 0;background-color:#fff}.content-section{padding:16px 0;background-color:transparent}.experience-left{flex:0 0 65%;padding-right:20px}.experience-right{flex:0 0 35%;align-items:flex-end;text-align:right;justify-content:center}.experience-half{flex:0 0 50%}.profile-column{padding-right:50px;text-align:right}.columns{display:flex;flex-direction:row;flex:1;gap:14px}.experience{padding:20px;border-radius:8px;border:none;transition:transform .3s ease-in-out;background:#f8f8f8;box-shadow:0 2px 12px #0000000d}.experience:hover{transform:scale(1.01)}.experiences-section .experience{background:#f6f6fb;box-shadow:0 4px 14px #0000000f}.experience-list{display:flex;flex-direction:column;margin-top:12px}.experience-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px;border-radius:12px;border:none;background:transparent;transition:background .15s ease,box-shadow .15s ease;cursor:pointer;outline:none;position:relative}.experience-row+.experience-row{margin-top:0}.experience-row:not(:first-child):before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:#e8e8e8;border-radius:0}.experience-row:hover{background:#f5f7fb;box-shadow:0 1px 6px #0000000d}.experience-row.open{background:#f5f7fb}.experience-row-main{display:flex;align-items:center;gap:10px}.experience-row-text{display:flex;flex-direction:column;gap:2px}.experience-title{font-weight:700;font-size:18px;line-height:1.3}.job-title-inline{font-weight:400;font-size:16px;color:#555;margin-left:6px;display:inline-block}.experience-meta{color:#777;font-size:16px;font-weight:400}.experience-period{color:#555;font-size:16px;min-width:120px;text-align:right;align-self:center;font-weight:400}.experience-details{margin-top:0;padding:0 20px 10px 46px;overflow:hidden;transition:max-height .25s ease,opacity .25s ease;grid-column:1 / -1}.experience-summary{margin:0 0 4px;line-height:1.35;font-size:15px}.experience-detail-body{display:flex;flex-direction:column;gap:14px;align-items:flex-start}.experience-detail-text{flex:1}.experience-media{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;align-items:flex-start;max-width:100%;margin:0}.experience-media video,.experience-media img{width:100%;border-radius:8px;display:block}.projects-section .experience{background:#fff;box-shadow:0 3px 12px #0000000d}.writing-section .post-card{background:#fff;border:1px solid #e5e5e5;box-shadow:0 2px 8px #0000000a}.life-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.life-card{background:#f7f7f7;border-radius:12px;padding:14px;box-shadow:0 2px 8px #0000000a}.life-card-title{font-weight:700;font-size:18px;margin-bottom:10px}.life-list p{margin:0 0 4px;line-height:1.35}.life-sublist p{margin-left:12px}.favorite-pill{display:inline-block;padding:4px 10px;border-radius:6px;font-weight:700;color:#1a1a1a;margin-right:6px}.pill-blue{background:#d9ecff}.pill-lavender{background:#e8e4ff}.pill-green{background:#d8f5e4}.pill-yellow{background:#fff4c2}.pill-cream{background:#fff}.recent-updated{font-style:italic;color:#666;margin:0 0 10px}.blog-list{display:flex;flex-direction:column;gap:0;width:100%}.blog-toolbar{display:inline-flex;align-items:center;gap:12px}.blog-font-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px;border-radius:999px;background:#f1f3f7;border:1px solid #e1e4ea}.blog-font-toggle button{border:none;background:transparent;padding:6px 10px;border-radius:999px;font-size:12px;cursor:pointer;color:#444}.blog-font-toggle button.active{background:#0f172a;color:#fff}.blog-font-footer{display:flex;justify-content:flex-end;padding:12px 0 0}.blog-header-top{display:flex;justify-content:flex-end;margin-bottom:8px;width:100%}.blog-font-scope,.blog-font-scope h1,.blog-font-scope h2,.blog-font-scope h3,.blog-font-scope h4,.blog-font-scope p,.blog-font-scope .post-title,.blog-font-scope .post-date,.blog-font-scope .eyebrow,.blog-font-scope .markdown-body,.blog-font-scope .tech-tag,.blog-font-scope .post-row,.blog-font-scope .post-row-main{font-family:var(--blog-font, var(--font-family, "Inter", sans-serif))}.writing-section,.writing-section .content-section,.writing-section .section-header{width:100%}.blog-list,.post-row{width:100%;box-sizing:border-box}.post-row{display:flex;flex-direction:row;flex-direction:column;align-items:flex-start;gap:4px;padding:8px 6px;border:none;border-radius:8px;background:transparent;transition:background .15s ease,box-shadow .15s ease;width:100%}.post-row-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.post-title{font-weight:700;font-size:16px;color:#111;line-height:1.3;vertical-align:middle}.post-date{color:#666;font-size:13px}.tech-tags.inline{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;vertical-align:middle}.post-row+.post-row{border-top:1px solid #e8e8e8}.post-row:hover{background:#f5f7fb;box-shadow:0 1px 6px #0000000d}.experience-text{padding:10px 20px}.icon-and-text{flex:1;display:inline-flex;flex-direction:row;align-items:center}.logo-box{width:48px;height:48px;min-width:48px;aspect-ratio:1 / 1;border-radius:14px;background:#fff;border:none;display:inline-flex;align-items:center;justify-content:center;margin-right:10px;overflow:hidden}.logo-box img{width:100%;height:100%;object-fit:contain;border-radius:10px}.profile-thumb{display:none;width:40px;height:40px;border-radius:50%;background-image:url(/assets/about/profile.jpg);background-size:cover;background-position:center;border:2px solid #fff;box-shadow:0 2px 8px #0003}.section-wrapper{padding:0}.icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:8px;cursor:pointer}.icon img{width:100%;height:100%;object-fit:contain;display:block}.icon:hover{opacity:.8}.icon-wrapper{display:flex;align-items:center;gap:10px;padding:20px 0}.emoji{padding-right:5px;font-size:18px;line-height:1.6}.wave{display:inline-block;animation:waveAnimation 3s infinite ease-in-out}.buzzword{font-weight:var(--buzz-weight, 700);cursor:pointer}.linkable{background-color:var(--buzz-bg, salmon);color:var(--buzz-color, #111);border:var(--buzz-border, none);border-radius:var(--buzz-radius, 5px);padding:var(--buzz-pad, 4px 6px);line-height:1.6;cursor:pointer;text-decoration:var(--buzz-decor, none);box-shadow:var(--buzz-shadow, none)}.linkable:hover{opacity:85%}.iphone-container{position:relative;width:140px;height:280px;overflow:hidden;background:#000}.iphone-image{width:100%;z-index:2;position:relative;object-fit:cover;pointer-events:none}.video-wrapper{z-index:1;position:absolute;top:6%;left:12%;width:76%;height:80%;border-radius:20px;overflow:hidden}@keyframes waveAnimation{0%,to{transform:rotate(0)}25%{transform:rotate(-20deg)}75%{transform:rotate(20deg)}}.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:10px}.post-card{display:block;border:1px solid #e5e5e5;border-radius:8px;padding:12px;background:#fafafa}.post-card .title{font-weight:700;font-size:18px}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{background:#f0f0f0;border-radius:999px;padding:4px 10px;font-size:13px}.markdown-body{line-height:1.6;padding:10px;max-width:760px;margin:0 auto;white-space:normal;overflow-wrap:anywhere}.post-body{padding:14px 0}.tech-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.tech-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:#e5ebf3;color:#1a1a1a;font-size:13px;font-weight:600;line-height:1.1;height:auto;vertical-align:middle}.tech-tag.github-pill{background:linear-gradient(135deg,#501daf,#6b3bd8 60%,#501daf);color:#fff;box-shadow:0 2px 6px #501daf59}:root{--buzz-bg: #ffe3b3;--buzz-color: #5c3a0c;--buzz-border: none;--buzz-radius: 4px;--buzz-pad: 2px 4px;--buzz-shadow: none;--buzz-decor: none;--buzz-weight: 700}.tech-tag .tech-icon{width:16px;height:16px;border-radius:6px;background:#d4d9e3;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.tag-icon-img{width:16px;height:16px;border-radius:6px;object-fit:cover;display:inline-block}.section{padding:14px 18px}.section-header{display:flex;align-items:center;justify-content:space-between}@media(max-width:960px){.app-shell{padding:0 16px 30px}.about-section{padding:24px 0}.content-section{padding:10px 0}.columns{flex-direction:column;gap:10px}.profile-column{text-align:center;padding-right:0}.circle-cutout{margin:0 auto;width:140px;height:140px}.header{flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:16px 0}.header-left{gap:8px}.profile-thumb{display:inline-flex}.name{margin-left:0;font-size:18px}.menu{width:auto;justify-content:flex-end;flex-wrap:wrap;gap:10px}.about-section h1,.content-section h1{text-align:left}.experience{padding:16px}.experience-right{text-align:left;align-items:flex-start}.rectangle-image{text-align:center}.experience-row{grid-template-columns:auto 1fr auto;padding:10px 8px;gap:8px}.experience-row-main{align-items:flex-start}.logo-box{width:44px;height:44px;min-width:44px;aspect-ratio:1 / 1;border-radius:12px}.experience-title{font-size:16px;line-height:1.25}.job-title-inline{display:block;margin-left:0;margin-top:2px;font-size:12px}.experience-meta{font-size:12px}.experience-period{font-size:12px;align-self:flex-start;padding-top:2px}.experience-summary{font-size:13px;line-height:1.4}.tech-tag{padding:3px 8px;font-size:12px}.experience-detail-body{gap:12px}.iphone-container{width:160px;height:320px}}
