:root{--bg-color:#fff;--text-color:#4a4a4a;--heading-color:#1a1a1a;--subtle-text-color:#888;--border-color:#eaeaea;--link-color:#1d4ed8;--hover-bg-color:#f5f5f5;--skill-bg-color:#1a1a1a;--skill-text-color:#fff;--tag-border-color:#eaeaea;--education-tag-bg:#f0f0f0;--education-tag-text:#666}body.dark-mode{--bg-color:#121212;--text-color:#e5e7eb;--heading-color:#f9fafb;--subtle-text-color:#9ca3af;--border-color:#2a2a2a;--link-color:#38bdf8;--hover-bg-color:#1a1a1a;--skill-bg-color:#2a2a2a;--skill-text-color:#e5e7eb;--tag-border-color:#374151;--education-tag-bg:#374151;--education-tag-text:#e5e7eb}body{background-color:var(--bg-color);min-height:100vh;color:var(--text-color);box-sizing:border-box;flex-direction:column;align-items:center;margin:0;padding:0 1rem;font-family:Space Mono,monospace;transition:background-color .3s,color .3s;display:flex}.card{flex-direction:column;flex-grow:1;align-items:center;width:100%;max-width:900px;padding:2rem 0;display:flex}.main-content{justify-content:center;align-items:center;gap:2rem;width:100%;display:flex}.text-content{text-align:left;flex-direction:column;display:flex}.header{align-items:center;gap:1rem;margin-bottom:.25rem;display:flex}h1{color:var(--heading-color);margin:0;font-size:2.5rem;font-weight:700}.subtitle{margin:0 0 1.5rem;font-size:1rem}.flip-card{perspective:1000px;cursor:pointer;background-color:#0000;flex-shrink:0;width:150px;height:150px}.flip-card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s;position:relative}.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{backface-visibility:hidden;border-radius:12px;width:100%;height:100%;position:absolute;overflow:hidden;box-shadow:0 8px 20px #0003}.flip-card-back{transform:rotateY(180deg)}.flip-card img{object-fit:cover;width:100%;height:100%}.bio{text-align:left;max-width:450px}.bio-text{margin:0;line-height:1.6}.location{color:var(--subtle-text-color);align-items:center;gap:.5rem;margin-top:1rem;display:flex}.location svg{stroke:#d9534f}.social-links{gap:.75rem;margin-top:1rem;display:flex}.social-links a{border:1px solid var(--border-color);color:var(--text-color);border-radius:6px;justify-content:center;align-items:center;padding:.5rem;transition:background-color .2s;display:flex}.social-links a:hover{background-color:var(--hover-bg-color)}.section{width:100%;margin-top:3rem;padding:0 1rem}.section h2{color:var(--heading-color);text-align:left;margin-bottom:1.5rem;font-size:1.8rem;font-weight:700}.education-entry{align-items:center;gap:1rem;display:flex}.education-logo{width:40px;height:40px}.education-details{text-align:left}.education-details strong{color:var(--heading-color);font-weight:700;display:block}.education-details p{color:var(--text-color);margin:0}.education-year-tag{background-color:var(--education-tag-bg);color:var(--education-tag-text);border:1px solid var(--tag-border-color);border-radius:6px;justify-content:center;align-items:center;margin-left:auto;padding:.4rem .8rem;font-size:.9rem;font-weight:700;display:inline-flex}.cp-profiles{text-align:left;margin-top:1.5rem}.cp-title{color:var(--subtle-text-color);margin-bottom:.75rem;font-size:.9rem}.profile-links{gap:.75rem;display:flex}.profile-links a{border:1px solid var(--tag-border-color);color:var(--text-color);border-radius:6px;justify-content:center;align-items:center;padding:.5rem;text-decoration:none;transition:background-color .2s,border-color .2s;display:flex}.profile-links a:hover{background-color:var(--hover-bg-color);border-color:var(--link-color)}.github-heatmap{justify-content:center;width:100%;display:flex}.github-heatmap img{max-width:100%}.get-in-touch{text-align:center;width:100%;margin-top:4rem;padding:2rem 0}.get-in-touch h2{color:var(--heading-color);margin-bottom:1rem;font-size:1.8rem;font-weight:700}.get-in-touch p{color:var(--subtle-text-color);margin:0}.get-in-touch a{color:var(--link-color);font-weight:700;text-decoration:underline}.get-in-touch a:hover{text-decoration:none}.theme-toggle-button{background-color:var(--skill-bg-color);color:var(--skill-text-color);border:2px solid var(--border-color);cursor:pointer;z-index:1000;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;transition:background-color .3s,color .3s,transform .2s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 8px #0003}.theme-toggle-button:hover{transform:scale(1.1)}.theme-toggle-button .moon-icon{display:block}.theme-toggle-button .sun-icon,body.dark-mode .theme-toggle-button .moon-icon{display:none}body.dark-mode .theme-toggle-button .sun-icon{display:block}.learning-log{text-align:left;flex-direction:column;gap:1.5rem;display:flex}.log-entry{border:1px solid var(--border-color);background-color:#0000;border-radius:8px;padding:1.5rem;transition:background-color .2s,border-color .2s}#latest-learning-log .log-entry{cursor:pointer}#latest-learning-log .log-entry:hover{background-color:var(--hover-bg-color);border-color:var(--link-color)}.log-date{color:var(--subtle-text-color);margin:0 0 .75rem;font-size:.85rem}.log-content h3{color:var(--heading-color);margin:0 0 .5rem;font-size:1.2rem}.log-content p{margin:0;line-height:1.6}.read-more{color:var(--link-color);font-weight:700;text-decoration:none}.read-more:hover{text-decoration:underline}.view-more-container{justify-content:center;width:100%;margin-top:5%;display:flex}.view-more-button{border:1px solid var(--border-color);color:var(--text-color);border-radius:6px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:background-color .2s,border-color .2s}.view-more-button:hover{background-color:var(--hover-bg-color);border-color:var(--link-color)}.page-header{text-align:center;width:100%;margin-bottom:2rem;padding:0 1rem}.page-header h1{margin-bottom:.5rem}.back-link{color:var(--link-color);margin-bottom:2rem;font-weight:700;text-decoration:none;transition:color .2s;display:inline-block}.back-link:hover{text-decoration:underline}.log-entry .log-full,.log-entry.is-expanded .log-short{display:none}.log-entry.is-expanded .log-full{display:block}.expand-button{border:1px solid var(--border-color);color:var(--text-color);cursor:pointer;background:0 0;border-radius:6px;margin-top:1rem;padding:.5rem 1rem;font-family:Space Mono,monospace;font-weight:700;transition:background-color .2s,border-color .2s}.expand-button:hover{background-color:var(--hover-bg-color);border-color:var(--link-color)}.learning-journal-page{max-width:1080px}.journal-header{margin-top:1rem}.year-tabs{flex-wrap:wrap;gap:.6rem;display:flex}.year-tab{border:1px solid var(--border-color);color:var(--text-color);cursor:pointer;background:0 0;border-radius:999px;padding:.45rem .8rem;font-family:Space Mono,monospace;font-weight:700}.year-tab.active{border-color:var(--link-color);color:var(--heading-color);background-color:var(--hover-bg-color)}.journal-layout{grid-template-columns:300px minmax(0,1fr);gap:1.2rem;width:100%;padding:0 1rem;display:grid}@media (max-width:768px){.journal-layout{grid-template-columns:1fr}}.journal-sidebar,.journal-main{padding:1rem}.journal-sidebar h3{color:var(--heading-color);margin:0 0 .8rem}.journal-sidebar-list{flex-direction:column;gap:.6rem;display:flex}.week-chip{border:1px solid var(--border-color);color:var(--text-color);border-radius:10px;flex-direction:column;gap:.25rem;padding:.65rem;text-decoration:none;display:flex}.week-chip:hover{border-color:var(--link-color);background-color:var(--hover-bg-color)}.week-chip span{color:var(--subtle-text-color);font-size:.75rem}.week-chip strong{font-size:.9rem}.journal-main{flex-direction:column;gap:1rem;display:flex}.journal-card{border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.journal-card.compact .journal-cover-wrap{max-height:220px}.journal-cover{object-fit:cover;width:100%;height:auto;display:block}.journal-content{padding:.95rem}.journal-meta{color:var(--subtle-text-color);margin:0 0 .4rem;font-size:.78rem}.journal-content h3{margin:0 0 .5rem}.journal-link{color:var(--link-color);margin-top:.65rem;font-weight:700;display:inline-block}.journal-detail{width:100%;max-width:860px}.journal-detail-cover{border:1px solid var(--border-color);border-radius:12px;width:100%;height:auto}.journal-summary{color:var(--subtle-text-color)}.journal-body{margin-top:1rem;line-height:1.7}.journal-gallery{margin-top:2rem}.journal-gallery-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.journal-gallery-item{margin:0}.journal-gallery-item img{border:1px solid var(--border-color);border-radius:10px;width:100%;height:auto}.journal-gallery-item figcaption{color:var(--subtle-text-color);margin-top:.4rem;font-size:.78rem}.journal-nav{justify-content:space-between;width:100%;max-width:860px;margin-top:2rem;display:flex}.journal-nav-btn{border:1px solid var(--border-color);color:var(--text-color);border-radius:8px;padding:.55rem .85rem;font-weight:700;text-decoration:none}.journal-nav-btn:hover{border-color:var(--link-color);background-color:var(--hover-bg-color)}.journal-admin-form{gap:.7rem;display:grid}.journal-admin-form label{color:var(--text-color);gap:.35rem;font-size:.9rem;display:grid}.journal-admin-form input,.journal-admin-form textarea{box-sizing:border-box;border:1px solid var(--border-color);background:var(--bg-color);width:100%;color:var(--text-color);border-radius:8px;padding:.6rem .7rem;font-family:Space Mono,monospace}.journal-admin-form textarea{resize:vertical}.learning-admin-page{max-width:min(1600px,98vw)}.journal-admin-main{grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);align-items:start;gap:1rem;display:grid}.journal-live-preview{border:1px solid var(--border-color);border-radius:12px;max-height:80vh;padding:1rem;overflow:auto}.journal-live-preview h3{margin-top:0}.journal-preview-error{color:#c62828;margin-top:1rem}@media (max-width:1100px){.journal-admin-main{grid-template-columns:1fr}.journal-live-preview{max-height:none}}.carousel-wrapper{width:100%;position:relative}.project-carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;gap:2rem;padding:1.5rem .5rem 2.5rem;display:flex;overflow-x:auto}.project-carousel::-webkit-scrollbar{display:none}.project-card{border:1px solid var(--border-color);background-color:#0000;border-radius:12px;flex-direction:column;flex-shrink:0;min-width:300px;max-width:300px;transition:transform .3s,box-shadow .3s,border-color .3s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--link-color);transform:translateY(-5px);box-shadow:0 10px 20px #0000001a}.project-image-container{background-color:var(--hover-bg-color);width:100%;height:160px;position:relative;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%;transition:transform .5s}.project-card:hover .project-image{transform:scale(1.05)}.project-overlay{opacity:0;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.project-card:hover .project-overlay{opacity:1}.project-links{gap:1rem;display:flex}.project-link-icon{color:#fff;background:#fff3;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;padding:.7rem;transition:background .2s,transform .2s;display:flex}.project-link-icon:hover{background:var(--link-color);border-color:var(--link-color);transform:scale(1.1)}.project-content{text-align:left;flex-direction:column;flex-grow:1;padding:1.25rem;display:flex}.project-content h3{color:var(--heading-color);margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.project-content p{color:var(--subtle-text-color);flex-grow:1;margin-bottom:1rem;font-size:.85rem;line-height:1.5}.project-tags{flex-wrap:wrap;gap:.5rem;margin-top:auto;display:flex}.project-tag{background-color:var(--education-tag-bg);color:var(--education-tag-text);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.custom-icon-wrapper{background-color:#0d1117;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.task-tracker-icon{width:64px;height:64px;transition:transform .5s}.project-card:hover .task-tracker-icon{transform:scale(1.1)}.cursor-line{opacity:1}.project-card:hover .cursor-line{animation:.8s steps(2,start) infinite blink-cursor}@keyframes blink-cursor{to{opacity:0}}.checkmark-path{stroke-dasharray:10;stroke-dashoffset:10px}.project-card:hover .checkmark-path{animation:.5s ease-out forwards draw-check}@keyframes draw-check{to{stroke-dashoffset:0}}.project-grid .cursor-line{animation:.8s steps(2,start) infinite blink-cursor!important}.project-grid .checkmark-path{animation:3s ease-in-out infinite draw-check-loop!important}@keyframes draw-check-loop{0%{stroke-dashoffset:10px;opacity:1}30%{stroke-dashoffset:0;opacity:1}80%{stroke-dashoffset:0;opacity:1}90%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:10px;opacity:0}}.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;width:100%;display:grid}.project-grid .project-card{min-width:auto;max-width:none}.carousel-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border-color);cursor:pointer;z-index:10;width:40px;height:40px;color:var(--heading-color);opacity:0;pointer-events:none;background:#fffc;border-radius:50%;justify-content:center;align-items:center;transition:opacity .3s,transform .2s,background-color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 12px #0000001a}.carousel-wrapper:hover .carousel-btn{opacity:1;pointer-events:auto}.left-btn{left:-20px}.right-btn{right:-20px}.carousel-btn:hover{background:var(--heading-color);color:var(--bg-color);transform:translateY(-50%)scale(1.1)}.skills-list{flex-wrap:wrap;justify-content:flex-start;gap:1rem;display:flex}.skill-card{background-color:var(--education-tag-bg);color:var(--text-color);border:1px solid var(--tag-border-color);cursor:pointer;z-index:1;border-radius:6px;align-items:center;gap:.8rem;padding:.5rem 1rem;font-size:.9rem;font-weight:700;transition:transform .2s,box-shadow .2s,background-color .2s;display:flex;position:relative}.skill-card:hover{background-color:var(--hover-bg-color);border-color:var(--link-color);z-index:1000;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}@keyframes skill-jump-trail{0%{filter:none;transform:translateY(0)scale(1)rotate(0)}30%{filter:drop-shadow(-3px 3px 0px rgba(var(--link-color), .3)) drop-shadow(-6px 6px 0px rgba(var(--link-color), .15));transform:translateY(-8px)scale(1.15)rotate(8deg)}60%{filter:drop-shadow(-2px 2px 0px rgba(var(--link-color), .3));transform:translateY(-4px)scale(1.05)rotate(-4deg)}to{filter:none;transform:translateY(0)scale(1)rotate(0)}}.skill-card:hover .skill-icon{animation:.7s ease-in-out skill-jump-trail}.skill-icon{object-fit:contain;width:20px;height:20px}.skill-card svg.skill-icon{stroke:var(--text-color)}.skill-tooltip{color:#d4d4d4;z-index:9999;opacity:0;visibility:hidden;pointer-events:none;text-align:left;background-color:#1e1e1e;border:1px solid #333;border-radius:8px;width:max-content;min-width:200px;max-width:320px;padding:1rem;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;bottom:130%;left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 10px 30px #00000080}.skill-tooltip:after{content:"";border:6px solid #0000;border-top-color:#1e1e1e;margin-left:-6px;position:absolute;top:100%;left:50%}.skill-card:hover .skill-tooltip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.skill-tooltip pre{margin:0}.skill-tooltip code{font-family:Space Mono,monospace;font-size:.8rem;line-height:1.5}.kwd{color:#569cd6;font-weight:700}.str{color:#ce9178}.num{color:#b5cea8}.type{color:#4ec9b0}.func{color:#dcdcaa}.cmt{color:#6a9955;font-style:italic}.cp-icon{object-fit:contain;vertical-align:middle;width:20px;height:20px;margin-right:8px}.profile-links a.cp-card{border:1px solid var(--tag-border-color);color:var(--text-color);border-radius:6px;justify-content:center;align-items:center;padding:.5rem 1rem;font-weight:700;text-decoration:none;transition:background-color .2s,border-color .2s,transform .2s;display:flex;position:relative}.profile-links a.cp-card:hover{background-color:var(--hover-bg-color);border-color:var(--link-color);z-index:10;transform:translateY(-2px)}.cp-tooltip{color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;background-color:#1e1e1e;border-radius:8px;align-items:center;gap:8px;padding:.6rem .9rem;font-family:Space Mono,monospace;font-size:.75rem;transition:opacity .2s,transform .2s,visibility .2s;display:flex;position:absolute;bottom:135%;left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 5px 15px #0000004d}.cp-tooltip:after{content:"";border:5px solid #0000;border-top-color:#1e1e1e;margin-left:-5px;position:absolute;top:100%;left:50%}.profile-links a.cp-card:hover .cp-tooltip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.cp-tooltip-icon{object-fit:contain;filter:grayscale()brightness(200%);width:14px;height:14px}.mail-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.mail-popup{color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:2000;background-color:#1e1e1e;border:1px solid #333;border-radius:8px;align-items:center;gap:.8rem;padding:.5rem .8rem;transition:opacity .2s,transform .2s,visibility .2s;display:flex;position:absolute;bottom:140%;left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 5px 15px #0000004d}.mail-popup:before{content:"";background:0 0;width:100%;height:20px;position:absolute;top:100%;left:0}.mail-popup:after{content:"";border:5px solid #0000;border-top-color:#1e1e1e;margin-left:-5px;position:absolute;top:100%;left:50%}.mail-wrapper:hover .mail-popup{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)translateY(0)}.mail-address{color:#d4d4d4;-webkit-user-select:all;user-select:all;font-family:Space Mono,monospace;font-size:.8rem}.copy-btn{cursor:pointer;color:#fff;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background .2s;display:flex}.copy-btn:hover{background-color:#ffffff1a}.copy-btn:active{transform:scale(.95)}body.dark-mode .project-card:hover{box-shadow:0 10px 20px #0006}body.dark-mode .carousel-btn{border-color:var(--border-color);color:var(--text-color);background:#1e1e1ecc}body.dark-mode .carousel-btn:hover{background:var(--text-color);color:var(--bg-color)}@media (max-width:768px){.card{padding:1rem 0}.main-content{text-align:center;flex-direction:column}.text-content,.bio,.header,.section h2,.cp-profiles{text-align:center;align-items:center}.location,.social-links,.profile-links,.action-links{justify-content:center}h1{font-size:2rem}.education-entry{text-align:center;flex-direction:column;gap:.5rem}.education-year-tag{margin-top:.5rem;margin-left:0}.education-details{text-align:center}.carousel-btn{display:none}.left-btn{left:0}.right-btn{right:0}.cp-title{text-align:center;width:100%}.skills-list{justify-content:center}.skill-tooltip{white-space:normal;z-index:9999;width:85vw;max-width:350px;position:fixed;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 25px #00000080,0 0 0 100vh #0009}.skill-card:hover{transform:none}.skill-card:hover .skill-icon{animation:none}.skill-card:hover .skill-tooltip{transform:translate(-50%,-50%)}.skill-tooltip:after{display:none}}.toast-notification{background-color:var(--heading-color);color:var(--bg-color);z-index:9999;opacity:0;visibility:hidden;border-radius:8px;padding:12px 24px;font-family:Space Mono,monospace;font-size:.9rem;font-weight:700;transition:opacity .3s,transform .3s cubic-bezier(.175,.885,.32,1.275),visibility .3s;position:fixed;bottom:30px;right:30px;transform:translateY(20px);box-shadow:0 4px 12px #00000026}.toast-notification.show{opacity:1;visibility:visible;transform:translateY(0)}@media (max-width:768px){.toast-notification{width:max-content;bottom:20px;right:50%;transform:translate(50%)translateY(20px)}.toast-notification.show{transform:translate(50%)translateY(0)}}.room-chat-icon{width:100%;height:auto;max-height:100%}.rc-logo-text{fill:#fff;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:25px;font-weight:900}.rc-container{transition:transform .3s}.rc-letter{opacity:1;transform-origin:50%;transform-box:fill-box;transform:scale(1)translateY(0)}@keyframes rc-bounceIn{0%{opacity:0;transform:scale(.3)translateY(20px)}50%{opacity:1;transform:scale(1.2)translateY(-10px)}70%{transform:scale(.9)translateY(5px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes rc-bounce-loop{0%,20%{opacity:0;transform:scale(.3)translateY(20px)}30%{opacity:1;transform:scale(1.2)translateY(-10px)}40%{transform:scale(.9)translateY(5px)}50%,90%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.3)translateY(20px)}}.project-card:hover .rc-container{transform:rotate(0)scale(1.05)}.project-card:hover .rc-letter{animation-name:rc-bounceIn;animation-duration:.6s;animation-timing-function:cubic-bezier(.175,.885,.32,1.275);animation-fill-mode:both}.project-grid .rc-container{transform:rotate(0)scale(1.05)}.project-grid .rc-letter{animation-name:rc-bounce-loop;animation-duration:4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-fill-mode:both}.rc-letter:first-child{animation-delay:0s}.rc-letter:nth-child(2){animation-delay:.1s}.rc-letter:nth-child(3){animation-delay:.2s}.rc-letter:nth-child(4){animation-delay:.3s}.rc-letter:nth-child(5){animation-delay:.4s}.rc-letter:nth-child(6){animation-delay:.5s}.rc-letter:nth-child(7){animation-delay:.6s}.rc-letter:nth-child(8){animation-delay:.7s}.fintrack-icon{width:100%;height:auto;max-height:100%}.ft-container{transition:transform .3s}.ft-title{fill:#fff;letter-spacing:-1px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:28px;font-weight:800}.ft-graph-line{stroke-dasharray:250;stroke-dashoffset:250px;transition:stroke-dashoffset .5s}.ft-money-bg{opacity:0;font-family:Space Mono,monospace;transform:translateY(10px)}.ft-letter{opacity:1;display:inline-block;transform:translateY(0)}@keyframes ft-draw-graph{to{stroke-dashoffset:0}}@keyframes ft-float-money{0%{opacity:0;transform:translateY(10px)}50%{opacity:.3;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}@keyframes ft-slide-up{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes ft-loop-sequence{0%,20%{opacity:0;transform:translateY(15px)}30%,80%{opacity:1;transform:translateY(0)}90%,to{opacity:0;transform:translateY(-10px)}}.project-card:hover .ft-container{transform:scale(1.02)}.project-card:hover .ft-graph-line{animation:1.5s forwards ft-draw-graph}.project-card:hover .ft-money-bg{animation:2s ease-in-out infinite ft-float-money}.project-card:hover .ft-money-bg:first-child{animation-delay:.1s}.project-card:hover .ft-money-bg:nth-child(2){animation-delay:.5s}.project-card:hover .ft-money-bg:nth-child(3){animation-delay:.3s}.project-card:hover .ft-letter{animation-name:ft-slide-up;animation-duration:.4s;animation-timing-function:cubic-bezier(.2,.65,.3,.9);animation-fill-mode:both}.project-grid .ft-graph-line{animation:2s ease-in-out infinite alternate ft-draw-graph}.project-grid .ft-money-bg{animation:3s ease-in-out infinite ft-float-money}.project-grid .ft-letter{animation-name:ft-loop-sequence;animation-duration:4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-fill-mode:both}.ft-letter:first-child{animation-delay:0s}.ft-letter:nth-child(2){animation-delay:50ms}.ft-letter:nth-child(3){animation-delay:.1s}.ft-letter:nth-child(4){animation-delay:.15s}.ft-letter:nth-child(5){animation-delay:.2s}.ft-letter:nth-child(6){animation-delay:.25s}.ft-letter:nth-child(7){animation-delay:.3s}.ft-letter:nth-child(8){animation-delay:.35s}@media (max-width:768px){.rc-letter{animation-name:rc-bounce-loop!important;animation-duration:4s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important;animation-fill-mode:both!important}.rc-container{transform:scale(1.05)}.ft-letter{animation-name:ft-loop-sequence!important;animation-duration:4s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important;animation-fill-mode:both!important}.ft-graph-line{stroke-dashoffset:0;animation:2s ease-in-out infinite alternate ft-draw-graph!important}.ft-money-bg{animation:3s ease-in-out infinite ft-float-money!important}.cursor-line{animation:.8s steps(2,start) infinite blink-cursor!important}.checkmark-path{animation:3s ease-in-out infinite draw-check-loop!important}}.log-text{color:var(--text-color);line-height:1.6}.log-full h4,.log-text h4{color:var(--heading-color);border-bottom:1px solid var(--border-color);margin-top:1.5rem;margin-bottom:.75rem;padding-bottom:4px;display:inline-block}.log-img{border:1px solid var(--border-color);border-radius:8px;max-width:100%;margin:1rem 0;display:block}.img-caption{text-align:center;color:var(--subtle-text-color);margin-top:-.5rem;margin-bottom:1.5rem;font-size:.8rem;font-style:italic;display:block}.log-full ul,.log-full ol,.log-text ul,.log-text ol{margin:.5rem 0 1rem 1.2rem;padding-left:1rem}.log-full li,.log-text li{margin-bottom:.5rem}.audio-wrapper{width:100%;margin:1rem 0}.goshrt-icon{width:100%;height:auto;max-height:100%}.gs-container{transition:transform .3s}.gs-packet{opacity:0}.project-card:hover .gs-packet,.project-grid .gs-packet{animation:2s linear infinite gs-transmit}.p1{animation-delay:0s}.p2{animation-delay:1s}@keyframes gs-transmit{0%{opacity:0;transform:translate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translate(240px)}}.gs-bar{fill:url(#gs-grad);width:200px;transition:width .3s,fill .3s,x .3s}.gs-text{pointer-events:none}.gs-text-long{opacity:1}.gs-text-short{opacity:0}@keyframes gs-shrink-bar{0%,20%{x:-100px;fill:url(#gs-grad);width:200px}40%,80%{x:-40px;fill:#ef4444;width:80px}to{x:-100px;fill:url(#gs-grad);width:200px}}@keyframes gs-hide-long{0%,20%{opacity:1;transform:scale(1)}30%,to{opacity:0;transform:scale(.8)}}@keyframes gs-show-short{0%,30%{opacity:0;transform:scale(.8)}40%,80%{opacity:1;transform:scale(1)}90%,to{opacity:0;transform:scale(.8)}}.project-card:hover .gs-container{transform:scale(1.02)}.project-card:hover .gs-bar{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-shrink-bar}.project-card:hover .gs-text-long{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-hide-long}.project-card:hover .gs-text-short{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-show-short}.project-grid .gs-bar{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-shrink-bar}.project-grid .gs-text-long{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-hide-long}.project-grid .gs-text-short{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-show-short}@media (max-width:768px){.gs-bar,.gs-text-long,.gs-text-short,.gs-packet{animation-play-state:running!important}.gs-bar{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-shrink-bar!important}.gs-text-long{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-hide-long!important}.gs-text-short{animation:3s cubic-bezier(.4,0,.2,1) infinite gs-show-short!important}.gs-packet{animation:2s linear infinite gs-transmit!important}}.blog-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;width:100%;display:grid}.blog-card{border:1px solid var(--border-color);text-align:left;box-sizing:border-box;background-color:#0000;border-radius:8px;flex-direction:column;height:100%;padding:1.5rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s,background-color .2s;display:flex}.blog-card:hover{border-color:var(--link-color);background-color:var(--hover-bg-color);transform:translateY(-4px);box-shadow:0 8px 20px #0000001a}.blog-header-row{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.blog-date{color:var(--subtle-text-color);font-family:Space Mono,monospace;font-size:.8rem}.blog-tags{gap:.5rem;display:flex}.blog-tag{background-color:var(--education-tag-bg);color:var(--education-tag-text);border-radius:4px;padding:.2rem .4rem;font-size:.7rem;font-weight:600}.blog-card h3{color:var(--heading-color);margin:0 0 .8rem;font-size:1.1rem;line-height:1.4}.blog-card p{color:var(--text-color);flex-grow:1;margin:0 0 1.5rem;font-size:.9rem;line-height:1.6}.read-link{color:var(--link-color);align-items:center;gap:.5rem;font-size:.9rem;font-weight:700;display:inline-flex}.blog-card-content{flex-direction:column;height:100%;display:flex}.proxy-icon{width:100%;height:auto;max-height:100%}.px-container{transition:transform .3s}.px-pkt{opacity:0}@keyframes px-move-right{0%{opacity:0;transform:translate(0)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(50px)}}@keyframes px-move-left{0%{opacity:0;transform:translate(0)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(-50px)}}@keyframes px-pulse{0%,to{stroke:#58a6ff}50%{stroke:#2ea043;filter:drop-shadow(0 0 4px #2ea043)}}.project-card:hover .px-container{transform:scale(1.02)}.project-card:hover .px-pkt-in{animation:2s cubic-bezier(.4,0,.2,1) infinite px-move-right}.project-card:hover .px-pkt-miss{animation:2s cubic-bezier(.4,0,.2,1) .5s infinite px-move-right}.project-card:hover .px-pkt-out{animation:2s cubic-bezier(.4,0,.2,1) 1.2s infinite px-move-left}.project-card:hover .px-box{animation:2s ease-in-out 1.2s infinite px-pulse}.project-grid .px-container{transform:scale(1.02)}.project-grid .px-pkt-in{animation:2s cubic-bezier(.4,0,.2,1) infinite px-move-right}.project-grid .px-pkt-miss{animation:2s cubic-bezier(.4,0,.2,1) .5s infinite px-move-right}.project-grid .px-pkt-out{animation:2s cubic-bezier(.4,0,.2,1) 1.2s infinite px-move-left}.project-grid .px-box{animation:2s ease-in-out 1.2s infinite px-pulse}@media (max-width:768px){.px-pkt-in{animation:2s cubic-bezier(.4,0,.2,1) infinite px-move-right!important}.px-pkt-miss{animation:2s cubic-bezier(.4,0,.2,1) .5s infinite px-move-right!important}.px-pkt-out{animation:2s cubic-bezier(.4,0,.2,1) 1.2s infinite px-move-left!important}.px-box{animation:2s ease-in-out 1.2s infinite px-pulse!important}}
