.scene{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1;overflow:hidden;animation:scene-in 1.2s cubic-bezier(.16,1,.3,1) both}@keyframes scene-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.three-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:auto}.sat-html-wrapper{transform-origin:center center;will-change:transform,opacity,left,top}.asteroid-text-node{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.05em;text-shadow:0 0 10px rgba(100,200,255,.22),0 0 2px rgba(4,4,15,.88);-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;will-change:transform,opacity,left,top}.satellite{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;text-decoration:none;transition:filter .2s}.satellite:hover{filter:brightness(1.25)}.sat-icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.2);background:#060614e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:relative;transition:box-shadow .25s,transform .25s,border-color .25s}html[data-theme=light] .sat-icon{background:#fffffff0;border:1.5px solid rgba(0,0,0,.2)}.satellite:hover .sat-icon{box-shadow:0 0 24px var(--glow);transform:scale(1.15);border-color:var(--glow)}.sat-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text);white-space:nowrap;opacity:.92;transition:opacity .2s,color .2s,transform .2s;pointer-events:none;text-shadow:0 2px 6px rgba(0,0,0,.95)}html[data-theme=light] .sat-label{text-shadow:0 1px 4px rgba(255,255,255,.9)}.satellite:hover .sat-label{opacity:1;color:var(--accent);transform:translateY(-2px)}.nav-hint{position:fixed;bottom:2.5rem;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.15em;z-index:5;animation:hint-fade 3s 2s both}@keyframes hint-fade{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.scroll-dot{display:inline-block;width:4px;height:4px;background:var(--muted);border-radius:50%;margin:0 3px;vertical-align:middle;animation:dot-blink 1.4s .2s ease-in-out infinite}.scroll-dot:nth-child(2){animation-delay:.4s}.scroll-dot:nth-child(3){animation-delay:.6s}@keyframes dot-blink{0%,to{opacity:.2}50%{opacity:1}}.sat-tooltip{position:absolute;left:50%;transform:translate(-50%);z-index:200;background:#080814f2;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:6px 10px;font-family:var(--mono);font-size:11px;color:var(--text);pointer-events:none;opacity:0;transition:opacity .15s,transform .15s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;box-shadow:0 4px 12px #0009}html[data-theme=light] .sat-tooltip{background:#fffffff5;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 12px #0000001f}.sat-tooltip.visible{opacity:1}.page-header{margin-bottom:5rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end}.page-title{font-family:var(--display);font-size:clamp(56px,8vw,88px);line-height:.9;color:var(--text)}.intro-text{font-size:14px;color:var(--muted);line-height:1.85}.intro-text strong{color:var(--text);font-weight:500}.section{margin-bottom:4rem}.section-header{display:flex;align-items:center;gap:14px;margin-bottom:1.75rem}.section-label{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}.section-line{flex:1;height:.5px;background:var(--border)}.about-card{border:.5px solid var(--border);border-radius:16px;padding:2rem 2.5rem;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;overflow:hidden}.about-card:before{content:"";position:absolute;top:0;right:0;width:240px;height:240px;background:radial-gradient(circle at 100% 0%,rgba(106,186,239,.06) 0%,transparent 60%);pointer-events:none}.about-text{font-size:15px;line-height:1.9;color:var(--muted)}.about-text strong{color:var(--text);font-weight:500}.about-text+.about-text{margin-top:1.2rem}.about-quote{margin-top:1.5rem;padding:1rem 1.5rem;border-left:2px solid var(--accent);background:#6abaef0a;border-radius:0 8px 8px 0;font-size:14px;color:var(--muted);font-style:italic;line-height:1.7}.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tech-card{border:.5px solid var(--border);border-radius:14px;padding:1.4rem 1.5rem;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .25s,background .25s;cursor:default;position:relative;overflow:hidden}.tech-card:hover{border-color:var(--border-hi);background:var(--card-hover-bg)}.tech-card:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--tc, var(--accent)),transparent);opacity:0;transition:opacity .25s}.tech-card:hover:after{opacity:1}.tech-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.tech-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:500;flex-shrink:0}.tech-name{font-family:var(--mono);font-size:13px;color:var(--text)}.tech-level{margin-left:auto;font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:999px}.tech-reason{font-size:12px;color:var(--muted);line-height:1.7}.tech-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.tech-tag{font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:999px;background:var(--border);color:var(--muted)}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--accent),rgba(106,186,239,.1))}.tl-item{position:relative;padding:0 0 2.5rem 2rem}.tl-item:last-child{padding-bottom:0}.tl-dot{position:absolute;left:-2rem;top:4px;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--tl-color, var(--accent));background:var(--bg);transform:translate(calc(-50% + .5px));box-shadow:0 0 8px var(--tl-color, var(--accent));transition:background .3s}.tl-year{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em;margin-bottom:5px}.tl-title{font-size:15px;font-weight:500;color:var(--text);margin-bottom:4px}.tl-desc{font-size:13px;color:var(--muted);line-height:1.7}.tl-badge{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:10px;padding:2px 9px;border-radius:999px;background:#6abaef1a;border:.5px solid rgba(106,186,239,.2);color:var(--accent)}@media(max-width:768px){.page-header{grid-template-columns:1fr;gap:1.5rem}.tech-grid{grid-template-columns:1fr}}.page{max-width:940px;margin:0 auto;padding:8rem 2rem 6rem;position:relative;z-index:1}.page-header{margin-bottom:5rem}.page-label{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}.page-title{font-family:var(--display);font-size:clamp(60px,9vw,96px);line-height:.9;color:var(--text)}.page-title span{color:var(--accent)}.page-desc{margin-top:1.5rem;font-size:15px;color:var(--muted);max-width:480px;line-height:1.75}.company-block{border:.5px solid var(--border);border-radius:20px;overflow:hidden;margin-bottom:4rem;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.company-header{padding:2rem 2.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;border-bottom:.5px solid var(--border);position:relative;overflow:hidden}.company-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(106,186,239,.04) 0%,transparent 60%);pointer-events:none}.company-left{flex:1}.company-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;background:#6abaef1a;border:.5px solid rgba(106,186,239,.25);color:var(--accent);padding:3px 10px;border-radius:999px;margin-bottom:12px;letter-spacing:.08em}.company-badge:before{content:"●";font-size:7px;animation:blink 2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.company-name{font-family:var(--display);font-size:42px;line-height:1;margin-bottom:6px}.company-role{font-size:14px;color:var(--muted)}.company-period{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;white-space:nowrap;padding-top:4px}.company-period strong{display:block;font-family:var(--display);font-size:22px;color:var(--text);margin-bottom:2px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:.5px solid var(--border)}.stat-item{padding:1.5rem 2rem;border-right:.5px solid var(--border);position:relative;overflow:hidden}.stat-item:last-child{border-right:none}.stat-num{font-family:var(--display);font-size:36px;line-height:1;color:var(--accent);margin-bottom:4px}.stat-label{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em;line-height:1.5}.work-list{padding:0}.work-item{padding:2rem 2.5rem;border-bottom:.5px solid var(--border);display:grid;grid-template-columns:3fr 2fr;gap:2rem;cursor:pointer;transition:background .2s;position:relative}.work-item:last-child{border-bottom:none}.work-item:hover{background:#6abaef0a}.work-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:transform .3s cubic-bezier(.4,0,.2,1)}.work-item:hover:before{transform:scaleY(1)}.work-header{margin-bottom:.75rem;display:flex;align-items:flex-start;gap:10px}.work-num{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:2px;flex-shrink:0}.work-title{font-family:var(--display);font-size:22px;line-height:1.1;color:var(--text)}.work-desc{font-size:13px;color:var(--muted);line-height:1.75}.work-meta{display:flex;flex-direction:column;justify-content:space-between}.work-tags{display:flex;flex-wrap:wrap;gap:5px}.work-tag{font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:999px;background:#ffffff0f;color:#e8e4d899}.work-result{margin-top:auto;padding-top:1rem;font-family:var(--mono);font-size:11px;display:flex;align-items:center;gap:8px}.result-pill{background:#6ade8a1a;border:.5px solid rgba(106,222,138,.25);color:var(--accent2);padding:3px 10px;border-radius:999px;font-size:10px}.work-detail{grid-column:1 / -1;overflow:hidden;max-height:0;transition:max-height .45s cubic-bezier(.4,0,.2,1)}.work-detail.open{max-height:600px}.work-detail-inner{padding:1.5rem 0 .5rem;border-top:.5px solid var(--border);margin-top:1rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.detail-card{background:var(--card-bg);border:.5px solid var(--border);border-radius:12px;padding:1rem 1.1rem}.detail-card-label{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}.detail-card-label:after{content:"";flex:1;height:.5px;background:var(--border)}.detail-card-text{font-size:12px;color:var(--muted);line-height:1.7}.expand-hint{font-family:var(--mono);font-size:10px;color:var(--muted);position:absolute;right:2.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;transition:opacity .2s}.work-item:hover .expand-hint{opacity:1}.expand-hint{opacity:.4}.expand-arrow{transition:transform .3s;font-size:8px}.work-item.expanded .expand-arrow{transform:rotate(180deg)}.edu-block{border:.5px solid var(--border);border-radius:20px;overflow:hidden;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.edu-header{padding:2rem 2.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;position:relative;overflow:hidden}.edu-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(106,222,138,.04) 0%,transparent 60%);pointer-events:none}.edu-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;background:#6ade8a1a;border:.5px solid rgba(106,222,138,.25);color:var(--accent2);padding:3px 10px;border-radius:999px;margin-bottom:12px;letter-spacing:.08em}.edu-items{border-top:.5px solid var(--border)}.edu-item{padding:1.5rem 2.5rem;border-bottom:.5px solid var(--border);display:flex;align-items:flex-start;gap:1.5rem}.edu-item:last-child{border-bottom:none}.edu-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.edu-item-left{flex:1}.edu-item-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px}.edu-item-desc{font-size:12px;color:var(--muted);line-height:1.6}.edu-item-period{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap;padding-top:2px}@media(max-width:768px){.company-header,.edu-header{flex-direction:column;align-items:flex-start;gap:1rem}.company-period{text-align:left}.stats-row{grid-template-columns:1fr 1fr}.stat-item{border-right:.5px solid var(--border);border-bottom:.5px solid var(--border)}.stat-item:nth-child(2n){border-right:none}.stat-item:nth-child(3),.stat-item:nth-child(4){border-bottom:none}.work-item{grid-template-columns:1fr;gap:1.5rem}.work-detail-inner{grid-template-columns:1fr}.expand-hint{display:none}}.page{max-width:900px;margin:0 auto;padding:8rem 2rem 6rem}.page-header{margin-bottom:3rem}.page-label{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}.page-title{font-family:var(--display);font-size:clamp(52px,8vw,80px);line-height:.95;color:var(--text)}.filter-row{display:flex;gap:8px;margin-bottom:2.5rem;flex-wrap:wrap}.filter-btn{font-family:var(--mono);font-size:11px;padding:5px 14px;border-radius:999px;border:.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all .18s}.filter-btn:hover{border-color:#fff3;color:var(--text)}.filter-btn.active{background:var(--text);color:var(--bg);border-color:var(--text)}.cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card-wide{grid-column:1 / -1}.proj-card{border-radius:16px;overflow:hidden;cursor:pointer;height:210px;display:flex;position:relative;border:.5px solid var(--border);transition:border-color .3s;will-change:transform}.proj-card:hover{border-color:#ffffff24}.card-left{padding:1.2rem;display:flex;flex-direction:column;justify-content:space-between;flex:1;min-width:0;position:relative;z-index:2}.card-meta{font-family:var(--mono);font-size:10px;color:#ffffff4d;line-height:1.7}.card-name{font-family:var(--display);font-size:30px;line-height:1;margin-top:4px}.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.tag{font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:999px;background:#ffffff14}.card-date{font-family:var(--mono);font-size:10px;color:#fff3;margin-top:5px}.card-right{width:160px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.card-wide .card-right{width:200px}.card-wide .card-name{font-size:38px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none}.overlay.active{pointer-events:all}.overlay-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.detail-panel{position:relative;z-index:2;width:min(860px,calc(100vw - 2rem));max-height:calc(100vh - 4rem);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.detail-hero{height:220px;flex-shrink:0;display:flex;align-items:flex-end;padding:1.5rem;position:relative;overflow:hidden}.detail-hero-content{position:relative;z-index:2}.detail-category{font-family:var(--mono);font-size:11px;color:#ffffff80;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.detail-title{font-family:var(--display);font-size:52px;line-height:.95;color:#fff}.detail-tags{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.detail-tag{font-family:var(--mono);font-size:11px;padding:3px 10px;border-radius:999px;background:#ffffff1f;color:#fffc}.close-btn{position:absolute;top:1.2rem;right:1.2rem;z-index:10;width:36px;height:36px;border-radius:50%;background:#0006;border:.5px solid rgba(255,255,255,.2);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.close-btn:hover{background:#000000b3}.detail-body{background:var(--detail-bg);overflow-y:auto;flex:1;padding:2rem 2rem 2.5rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.detail-section{margin-bottom:2rem}.detail-section:last-child{margin-bottom:0}.section-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;display:flex;align-items:center;gap:8px}.section-label:after{content:"";flex:1;height:.5px;background:var(--border)}.section-text{font-size:14px;color:#ede9e0cc;line-height:1.8}.section-text strong{color:var(--text);font-weight:500}.problem-block{background:#8080800d;border:.5px solid var(--border);border-radius:12px;padding:1.1rem 1.3rem;margin-top:.75rem}.problem-block+.problem-block{margin-top:.5rem}.pb-label{font-family:var(--mono);font-size:10px;color:var(--muted);margin-bottom:5px}.pb-text{font-size:13px;color:var(--muted);line-height:1.75}.tech-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:.75rem}.tech-card{background:#8080800d;border:.5px solid var(--border);border-radius:10px;padding:.9rem 1rem}.tech-name{font-family:var(--mono);font-size:12px;color:var(--text);margin-bottom:4px}.tech-reason{font-size:12px;color:var(--muted);line-height:1.6}.result-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:.75rem}.result-card{background:#8080800d;border:.5px solid var(--border);border-radius:10px;padding:.9rem 1rem;text-align:center}.result-num{font-family:var(--display);font-size:32px;line-height:1}.result-desc{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.5}.links-row{display:flex;gap:10px;margin-top:.75rem;flex-wrap:wrap}.link-btn{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;padding:8px 16px;border-radius:999px;border:.5px solid rgba(255,255,255,.15);color:var(--text);text-decoration:none;background:#ffffff0a;transition:all .18s;cursor:pointer}.link-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.link-btn svg{opacity:.7}@keyframes wave-pulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(2.4)}}@keyframes orbit-spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.orbit{position:absolute;top:50%;left:50%;border-radius:50%;border:.5px solid rgba(255,255,255,.15);transform:translate(-50%,-50%)}.planet{position:absolute;border-radius:50%;top:-4px;left:50%;transform:translate(-50%)}.slash{color:var(--muted);margin:0 3px}@media(max-width:768px){.cards-grid{grid-template-columns:1fr}.proj-card{height:auto;flex-direction:column}.card-right{width:100%;height:160px}.card-wide .card-right{width:100%}.detail-title{font-size:38px}.tech-row{grid-template-columns:1fr}.result-row{grid-template-columns:1fr 1fr}}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contact-card{border:.5px solid var(--border);border-radius:16px;padding:1.6rem 1.75rem;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;gap:1.2rem;cursor:pointer;text-decoration:none;color:var(--text);transition:border-color .25s,background .25s,transform .25s;position:relative;overflow:hidden}.contact-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--card-glow, transparent) 0%,transparent 60%);opacity:0;transition:opacity .3s}.contact-card:hover{border-color:var(--border-hi);background:var(--card-hover-bg);transform:translateY(-3px)}.contact-card:hover:before{opacity:1}.contact-icon{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;border:.5px solid var(--border);transition:transform .25s}.contact-card:hover .contact-icon{transform:scale(1.1) rotate(-5deg)}.contact-info{flex:1;min-width:0}.contact-type{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.contact-value{font-family:var(--mono);font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-action{font-family:var(--mono);font-size:10px;color:var(--muted);display:flex;align-items:center;gap:4px;opacity:0;transform:translate(6px);transition:opacity .2s,transform .2s;flex-shrink:0}.contact-card:hover .contact-action{opacity:1;transform:translate(0)}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(12px);background:var(--text);color:var(--bg);font-family:var(--mono);font-size:12px;padding:10px 20px;border-radius:999px;opacity:0;transition:opacity .25s,transform .25s;z-index:200;pointer-events:none;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.github-block{border:.5px solid var(--border);border-radius:16px;background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.github-header{padding:1.4rem 1.75rem;border-bottom:.5px solid var(--border);display:flex;align-items:center;justify-content:space-between}.github-header-left{display:flex;align-items:center;gap:10px}.github-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#2a4a6a,#3a7a5a);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:14px;color:#e8e4d8;flex-shrink:0}.github-username{font-family:var(--mono);font-size:13px;color:var(--text)}.github-sub{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:1px}.github-link{font-family:var(--mono);font-size:11px;color:var(--accent);text-decoration:none;display:flex;align-items:center;gap:5px;border:.5px solid rgba(106,186,239,.2);padding:5px 12px;border-radius:999px;transition:background .2s}.github-link:hover{background:#6abaef14}.contrib-wrap{padding:1.4rem 1.75rem}.contrib-label{font-family:var(--mono);font-size:10px;color:var(--muted);margin-bottom:12px;letter-spacing:.08em}.contrib-grid{display:flex;gap:3px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.contrib-grid::-webkit-scrollbar{display:none}.contrib-col{display:flex;flex-direction:column;gap:3px}.contrib-cell{width:11px;height:11px;border-radius:2px;background:var(--cell-bg, rgba(128, 128, 128, .08));transition:transform .15s;cursor:default;flex-shrink:0}.contrib-cell:hover{transform:scale(1.4);z-index:2;position:relative}.contrib-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.contrib-total{font-family:var(--mono);font-size:11px;color:var(--muted)}.contrib-legend{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--muted)}.legend-cell{width:10px;height:10px;border-radius:2px}.repos-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:1.2rem}.repo-card{border:.5px solid var(--border);border-radius:12px;padding:1rem 1.1rem;background:var(--card-bg);text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s;display:flex;flex-direction:column;gap:8px}.repo-card:hover{border-color:var(--border-hi);transform:translateY(-2px)}.repo-name{font-family:var(--mono);font-size:12px;color:var(--accent)}.repo-desc{font-size:12px;color:var(--muted);line-height:1.5;flex:1}.repo-meta{display:flex;gap:10px;font-family:var(--mono);font-size:10px;color:var(--muted)}.repo-lang:before{content:"●";margin-right:4px}@media(max-width:768px){.contact-grid,.repos-grid{grid-template-columns:1fr}.contrib-footer{flex-direction:column;align-items:flex-start;gap:10px}}:root{--bg: #04040f;--surface: #0c0c1e;--border: rgba(255, 255, 255, .08);--border-hi: rgba(255, 255, 255, .16);--text: #ffffff;--muted: rgba(255, 255, 255, .58);--accent: #6abaef;--accent2: #6ade8a;--card-bg: rgba(12, 12, 30, .5);--card-hover-bg: rgba(20, 20, 44, .6);--nav-scrolled-bg: rgba(4, 4, 15, .75);--detail-bg: #141414;--mono: "DM Mono", monospace;--display: "Bebas Neue", sans-serif;--body: "DM Sans", sans-serif}html[data-theme=light]{--bg: #f4f2ec;--surface: #eceae2;--border: rgba(0, 0, 0, .08);--border-hi: rgba(0, 0, 0, .16);--text: #1a1810;--muted: rgba(26, 24, 16, .45);--accent: #2a7abb;--accent2: #1a8a44;--card-bg: rgba(255, 255, 255, .7);--card-hover-bg: rgba(255, 255, 255, .95);--nav-scrolled-bg: rgba(244, 242, 236, .88);--detail-bg: #ece9e2}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--body);min-height:100vh;overflow-x:hidden;transition:background .3s,color .3s}body.locked{overflow:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background-image:radial-gradient(circle at 15% 30%,rgba(60,90,200,.07) 0%,transparent 50%),radial-gradient(circle at 85% 60%,rgba(100,40,180,.05) 0%,transparent 45%);pointer-events:none;transition:background-image .3s}html[data-theme=light] body:before{background-image:radial-gradient(circle at 15% 30%,rgba(60,120,220,.04) 0%,transparent 50%),radial-gradient(circle at 85% 60%,rgba(100,60,200,.03) 0%,transparent 45%)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease-out,transform .6s ease-out}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text)}nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.2rem 2.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.5px solid transparent;transition:background .3s,border-color .3s,backdrop-filter .3s}nav.scrolled{background:var(--nav-scrolled-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--border)}.nav-logo{font-family:var(--display);font-size:20px;color:var(--text);text-decoration:none;letter-spacing:2px}.nav-links{display:flex;gap:2rem;margin-left:auto;margin-right:2.5rem}.nav-links a{font-family:var(--mono);font-size:11px;color:var(--muted);text-decoration:none;letter-spacing:.1em;text-transform:uppercase;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-links a.active{color:var(--text);border-bottom:1px solid var(--accent);padding-bottom:1px}.theme-btn{width:34px;height:34px;border-radius:50%;border:.5px solid var(--border-hi);background:transparent;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:transform .25s,background .2s;flex-shrink:0}.theme-btn:hover{transform:rotate(22deg);background:var(--card-bg)}body,p,span,a,li,div,input,button{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-label,.section-label{font-size:13.5px!important;font-weight:700!important;letter-spacing:.16em!important}.page-desc,.intro-text,.about-text{font-size:17px!important;line-height:1.85!important;font-weight:500!important}.work-title,.company-name,.repo-name,.tech-name,.edu-item-title{font-weight:700!important}.work-title{font-size:19.5px!important}.work-desc,.edu-item-desc,.repo-desc,.pb-text,.detail-card-text{font-size:16px!important;line-height:1.8!important;font-weight:500!important}.detail-card-label,.pb-label{font-size:13px!important;font-weight:700!important}.tech-tag,.result-pill,.detail-tag,.edu-badge,.company-badge{font-size:12.5px!important;font-weight:700!important;padding:4px 11px!important}.company-period,.edu-item-period,.contact-type{font-size:13.5px!important;font-weight:700!important}.contact-value{font-size:16px!important}
