@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--glass:#ffffff1a;--glass-border:#fff3;--text:#fffefe;--muted:#f0eff58c;--muted2:#e2e1e6ef;--accent:#f678bb;--accent2:#f678bb;--red:#ff5f57;--yellow:#febc2e;--green:#28c840;--ui:"Nunito", -apple-system, sans-serif}html,body{width:100%;height:100%;font-family:var(--ui);-webkit-user-select:none;user-select:none;color:var(--text);touch-action:manipulation;background:#0b0b1a}#desktop{background:radial-gradient(at 18% 48%,#ff92dd99 0%,#0000 55%),radial-gradient(at 82% 18%,#ad4aa880 0%,#0000 50%),radial-gradient(at 58% 82%,#821e5873 0%,#0000 50%),linear-gradient(135deg,#d3469d 0%,#ffcef5 40%,#d3469d 100%);width:100vw;height:100vh;position:relative;overflow:hidden}#desktop:after{content:"";pointer-events:none;z-index:0;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");position:absolute;inset:0}#menubar{-webkit-backdrop-filter:blur(24px)saturate(1.8);backdrop-filter:blur(24px)saturate(1.8);z-index:1000;background:#ffffffc7;border-bottom:1px solid #ffffff12;align-items:center;height:28px;padding:0 14px;display:flex;position:absolute;top:0;left:0;right:0}.menu-logo{align-items:center;height:100%;margin-right:16px;display:flex}.menu-logo img{width:auto;height:22px;display:block}.menu-item{color:#030303;cursor:default;border-radius:4px;align-items:center;height:100%;padding:0 9px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.menu-item:hover{color:#fff;background:#ffffff1a}.menu-right{align-items:center;gap:14px;margin-left:auto;display:flex}#clock{font-size:12px;font-weight:700}.battery{align-items:center;gap:8px;display:flex}#wallpaper-text{z-index:5;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-56%)}#wallpaper-inner{align-items:center;gap:32px;display:flex}#wallpaper-headshot{object-fit:cover;opacity:5;border-radius:18px;width:200px;height:250px}#wallpaper-text-block h1{letter-spacing:-.04em;color:#fcfcfceb;font-size:clamp(3rem,9vw,7.5rem);font-weight:800;line-height:.95}#wallpaper-text-block p{color:#fcfcfceb;letter-spacing:.18em;margin-top:.7rem;font-size:.85rem}.notif{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:900;background:#141426f0;border:1px solid #ffffff21;border-radius:14px;min-width:280px;max-width:320px;padding:12px 14px;animation:.38s cubic-bezier(.34,1.56,.64,1) forwards bounce-in;position:absolute;top:36px;right:12px}.notif-title{font-size:13px;font-weight:700}.window{-webkit-backdrop-filter:blur(40px)saturate(1.8);backdrop-filter:blur(40px)saturate(1.8);z-index:100;background:#141424eb;border:1px solid #ffffff21;border-radius:14px;flex-direction:column;min-width:300px;min-height:220px;animation:.35s cubic-bezier(.34,1.56,.64,1) forwards bounce-in;display:flex;position:fixed;overflow:hidden;box-shadow:0 30px 80px #000000a6}.window.closing{animation:.2s forwards bounce-out}.window-layer{z-index:100;pointer-events:none;position:fixed;inset:0}.window{pointer-events:auto}.win-titlebar{cursor:grab;background:#ffffff09;border-bottom:1px solid #ffffff12;flex-shrink:0;align-items:center;gap:10px;height:40px;padding:0 12px;display:flex}.win-titlebar:active{cursor:grabbing}.win-traffic{gap:7px;display:flex}.win-btn{cursor:pointer;border:none;border-radius:50%;width:13px;height:13px;transition:opacity .15s}.win-btn:hover{opacity:.8}.win-btn.close{background:var(--red)}.win-btn.min{background:var(--yellow)}.win-btn.max{background:var(--green)}.win-title{color:var(--muted);text-align:center;flex:1;margin-right:52px;font-size:12px;font-weight:700}.win-body{flex:1;display:flex;overflow:hidden}.win-sidebar{background:#0000001f;border-right:1px solid #ffffff0f;flex-direction:column;flex-shrink:0;align-items:center;gap:5px;width:46px;padding:10px 0;display:flex}.sidebar-btn{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;transition:background .15s;display:flex}.sidebar-btn:hover{background:#ffffff14}.sidebar-btn.active{background:#ffffff1f}.sidebar-btn:first-child{border-bottom:1px solid #ffffff1a;margin-bottom:10px;padding-bottom:8px}.win-content{color:var(--muted);flex:1;padding:16px 18px;font-size:13px;line-height:1.6;overflow-y:auto}.win-content::-webkit-scrollbar{width:4px}.win-content::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.about-layout{flex-direction:column;flex:1;gap:14px;padding:16px 18px;display:flex;overflow-y:auto}.about-layout::-webkit-scrollbar{width:4px}.about-layout::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.about-photo{object-fit:cover;object-position:center 20%;border:1px solid #ffffff1a;border-radius:10px;width:100%;height:160px}.about-name{color:var(--text);font-size:18px;font-weight:800;line-height:1.2}.about-role{letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin-top:2px;font-size:11px;font-weight:700}.about-bio{color:var(--muted);font-size:12.5px;line-height:1.65}.about-chips{flex-wrap:wrap;gap:6px;display:flex}.about-chip{color:var(--accent);background:#e9ecef1f;border:1px solid #7cb8f538;border-radius:20px;padding:3px 9px;font-size:10.5px;font-weight:700}.about-links{gap:8px;display:flex}.about-link-btn{color:var(--text);cursor:pointer;background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;padding:6px 12px;font-size:11.5px;font-weight:700;text-decoration:none;transition:background .15s}.about-link-btn:hover{background:#ffffff21}.exp-entry{cursor:pointer;background:#ffffff08;border:1px solid #ffffff12;border-radius:10px;margin-bottom:10px;padding:12px 14px;transition:background .15s,border-color .15s}.exp-entry:hover{background:#ffffff0f;border-color:#ffffff24}.exp-top{align-items:center;gap:8px;margin-bottom:3px;display:flex}.exp-logo{object-fit:cover;background:#ffffff12;border:1px solid #ffffff1f;border-radius:6px;width:40px;height:25px;margin-right:8px}.proj-logo{object-fit:cover;background:#ffffff12;border:1px solid #ffffff1f;border-radius:6px;width:20px;height:20px;margin-right:8px}.exp-role{color:var(--text);flex:1;font-size:12.5px;font-weight:700}.exp-co-link{color:var(--accent2);white-space:nowrap;background:#b09fe026;border:1px solid #b09fe040;border-radius:20px;padding:2px 7px;font-size:10px;font-weight:700;text-decoration:none;transition:background .15s}.exp-co-link,.exp-co-tag{color:var(--accent2);white-space:nowrap;background:#e9ecef1f;border:1px solid #b09fe040;border-radius:20px;padding:2px 7px;font-size:10px;font-weight:700;text-decoration:none;transition:background .15s}.exp-co-link:hover{background:#b09fe040}.exp-period{color:var(--muted2);margin-bottom:5px;font-size:10.5px}.exp-blurb{color:var(--muted);margin-bottom:8px;font-size:11.5px;line-height:1.5}.exp-mini-chips{flex-wrap:wrap;gap:5px;display:flex}.mini-chip{color:var(--muted);background:#ffffff0f;border:1px solid #ffffff17;border-radius:20px;padding:2px 7px;font-size:10px;font-weight:600}.exp-open-hint{color:var(--accent);margin-top:7px;font-size:10px;font-weight:700}.proj-entry{cursor:pointer;background:#ffffff08;border:1px solid #ffffff12;border-radius:10px;margin-bottom:10px;padding:12px 14px;transition:background .15s,border-color .15s}.proj-entry:hover{background:#ffffff0f;border-color:#ffffff24}.proj-entry-top{align-items:center;gap:8px;margin-bottom:5px;display:flex}.proj-e-icon{font-size:16px}.proj-e-name{color:var(--text);font-size:13px;font-weight:700}.proj-e-sub{color:var(--muted2);margin-bottom:5px;font-size:10.5px}.proj-e-desc{color:var(--muted);margin-bottom:8px;font-size:11.5px;line-height:1.5}.proj-e-tags{flex-wrap:wrap;gap:5px;display:flex}.proj-e-tag{color:var(--muted);background:#ffffff0f;border:1px solid #ffffff17;border-radius:20px;padding:2px 7px;font-size:10px;font-weight:600}.proj-open-hint{color:var(--accent);margin-top:7px;font-size:10px;font-weight:700}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:10px;display:grid;overflow-y:auto}.gallery-item{cursor:pointer;aspect-ratio:1;border-radius:12px;transition:transform .25s;position:relative;overflow:hidden}.gallery-img{object-fit:cover;cursor:pointer;border-radius:10px;width:100%;height:100%;transition:transform .2s;display:block}.gallery-overlay{z-index:2;opacity:0;pointer-events:none;background:linear-gradient(#0000 40%,#0009);align-items:flex-end;padding:10px;transition:opacity .2s;display:flex;position:absolute;inset:0}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-item:hover .gallery-img{transform:scale(1.05)}.gallery-title{color:#fff;z-index:3;font-size:12px;position:relative}.contact-field{margin-bottom:10px}.contact-field label{letter-spacing:.12em;color:var(--muted2);margin-bottom:4px;font-size:9.5px;font-weight:800;display:block}.contact-field input,.contact-field textarea{width:100%;color:var(--text);font-size:12px;font-family:var(--ui);resize:none;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;outline:none;padding:7px 10px;transition:border-color .15s}.contact-field input:focus,.contact-field textarea:focus{border-color:#7cb8f566}.send-btn{color:#fff;cursor:pointer;width:100%;font-size:12px;font-weight:800;font-family:var(--ui);background:linear-gradient(135deg,#f385df,#e9adf8);border:none;border-radius:8px;padding:9px;transition:opacity .15s}.send-btn:hover{opacity:.85}.wc-section-label{letter-spacing:.12em;color:var(--muted2);margin-bottom:6px;font-size:9.5px;font-weight:800}.social-row{gap:8px;display:flex}.social-btn{color:var(--text);text-align:center;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;flex:1;padding:7px 10px;font-size:11.5px;font-weight:700;text-decoration:none;transition:background .15s}.social-btn:hover{background:#ffffff1c}#dock-wrap{position:fixed;bottom:12px;left:50%;transform:translate(-50%);z-index:99999!important;pointer-events:auto!important}#dock{-webkit-backdrop-filter:blur(32px)saturate(2);backdrop-filter:blur(32px)saturate(2);background:#faf8f817;border:1px solid #ffffff2e;border-radius:18px;align-items:flex-end;gap:8px;padding:7px 12px 9px;display:flex}.dock-item{cursor:pointer;flex-direction:column;align-items:center;gap:4px;transition:transform .18s cubic-bezier(.34,1.56,.64,1);display:flex}.dock-icon{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000059}.dock-icon img{object-fit:cover;z-index:2;background:#141424e6;border-radius:12px;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.dock-emoji{z-index:1;position:relative}.dock-item:first-child .dock-icon{background:linear-gradient(145deg,#3a7bd5,#00d2ff)}.dock-item:nth-child(2) .dock-icon{background:linear-gradient(145deg,#fff,#f0f0f0)}.dock-item:nth-child(3) .dock-icon{background:linear-gradient(145deg,gray,#a0a0a0)}.dock-item:nth-child(4) .dock-icon{background:linear-gradient(145deg,#c94b4b,#4b134f)}.dock-item:nth-child(5) .dock-icon{background:linear-gradient(145deg,#0077b5,#00a0dc)}.dock-item:nth-child(6) .dock-icon{background:linear-gradient(145deg,#24292e,#586069)}.dock-label{color:#f0eff5a6;letter-spacing:.01em;white-space:nowrap;font-size:9.5px;font-weight:700}@keyframes bounce-in{0%{opacity:0;transform:scale(.82)translateY(20px)}65%{opacity:1;transform:scale(1.03)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes bounce-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.88)translateY(10px)}}.detail-layout{flex-direction:column;flex:1;gap:16px;padding:16px 18px;display:flex;overflow-y:auto}.detail-layout::-webkit-scrollbar{width:4px}.detail-layout::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.detail-image{object-fit:cover;border:1px solid #ffffff1a;border-radius:10px;width:100%;height:200px}.detail-content{flex-direction:column;gap:12px;display:flex}.detail-header{flex-direction:column;gap:4px;display:flex}.detail-role{color:var(--text);margin:0;font-size:18px;font-weight:800;line-height:1.2}.detail-company-link,.detail-company-tag{color:var(--accent);font-size:14px;font-weight:700;text-decoration:none;transition:opacity .15s}.detail-company-link:hover{opacity:.8}.detail-period{color:var(--muted2);font-size:12px}.detail-description{color:var(--muted);font-size:13px;line-height:1.6}.detail-tags{flex-wrap:wrap;gap:6px;display:flex}.detail-tag{color:var(--accent);background:#e9ecef1f;border:1px solid #7cb8f538;border-radius:20px;padding:3px 9px;font-size:10.5px;font-weight:700}.detail-achievements h3,.detail-tech h3{color:var(--text);margin:0 0 8px;font-size:14px;font-weight:700}.detail-achievements ul{margin:0;padding-left:20px}.detail-achievements li{color:var(--muted);margin-bottom:4px;font-size:12px;line-height:1.5}.detail-tech{margin-top:2px}.tech-tags{flex-wrap:wrap;gap:6px;display:flex}.tech-tag{color:var(--muted);background:#ffffff14;border:1px solid #ffffff1f;border-radius:15px;padding:2px 8px;font-size:10px;font-weight:600}.detail-actions{justify-content:center;margin-top:16px;display:flex}.detail-link-btn{color:#fff;background:linear-gradient(135deg,#f385df,#e9adf8);border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:700;text-decoration:none;transition:opacity .15s;display:inline-flex}.detail-link-btn:hover{opacity:.85}
