@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;1,14..32,400&display=swap";:root{--bg:#fff;--card-bg:#fff;--widget-bg:#fbfbfa;--radius:22px;--fg:#111;--fg-muted:#8c8b86;--fg-subtle:#b0afa9;--border:#d4d2cb;--badge-bg:#111;--badge-fg:#fff;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--hero-bg:linear-gradient(135deg, #ff8364 0%, #ffb03a 100%);--hero-fg:#fff;--hero-badge-bg:#ffffff1f;--hero-badge-border:#ffffff14;--glass-badge-bg:#ffffffb8;--glass-badge-fg:#111;--glass-badge-border:#fff6;--hover-bg-subtle:#00000008;--hover-bg-deep:#00000003;--mini-card-bg:#fff;--mini-card-border:#0000000f;--mini-card-name-color:#000}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;min-height:100%;color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-y:auto}#app{width:100%;min-height:100%}a{color:inherit;text-decoration:none}.label{letter-spacing:.02em;color:var(--fg);font-size:.7rem;font-weight:500}.muted{color:var(--fg-muted)}.badge{background:var(--badge-bg);color:var(--badge-fg);letter-spacing:.02em;white-space:nowrap;border-radius:100px;align-items:center;gap:.25rem;padding:.2rem .65rem;font-size:.62rem;font-weight:500;display:inline-flex}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.page-enter-active,.page-leave-active{transition:opacity .3s var(--ease-out), transform .3s var(--ease-out)}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0;transform:translateY(-6px)}:root.dark{--bg:#121212;--card-bg:#1c1c1b;--widget-bg:#181817;--fg:#f5f5f3;--fg-muted:#9f9e98;--fg-subtle:#6e6d68;--border:#33322f;--badge-bg:#f5f5f3;--badge-fg:#121212;--hero-bg:linear-gradient(135deg, #1c1335 0%, #2f174e 100%);--hero-fg:#f5f3ff;--hero-badge-bg:#ffffff0a;--hero-badge-border:#ffffff08;--glass-badge-bg:#141414a6;--glass-badge-fg:#f5f5f3;--glass-badge-border:#ffffff14;--hover-bg-subtle:#ffffff0a;--hover-bg-deep:#ffffff04;--mini-card-bg:#1c1c1b;--mini-card-border:#ffffff14;--mini-card-name-color:#fff}body{transition:background .4s,color .4s,border-color .4s}.card-wrap,.project-card,.resume-card,.datetime-card,.bio-card,.link-card,.modal-container,.right-col,.info-bar,.btn-close,.floating-header{transition:background .4s ease, color .4s ease, border-color .4s ease, transform .3s var(--ease-out), box-shadow .3s var(--ease-out)}.floor-lamp-container[data-v-e7496d15]{z-index:900;pointer-events:none;width:100px;height:195px;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .5s;position:fixed;bottom:0;right:25px}.lamp-interactive[data-v-e7496d15]{cursor:pointer;pointer-events:auto}.lamp-metal[data-v-e7496d15],.lamp-shade[data-v-e7496d15],.lamp-base[data-v-e7496d15],.pull-string line[data-v-e7496d15],.pull-string circle[data-v-e7496d15]{transition:fill .4s,stroke .4s}.pull-string[data-v-e7496d15]{transform-origin:35px 62px;transition:transform .18s cubic-bezier(.175,.885,.32,1.275)}.pull-string.pulled[data-v-e7496d15]{transform:translateY(10px)}.light-glow[data-v-e7496d15]{pointer-events:none;transform-origin:35px 62px;animation:.4s cubic-bezier(.16,1,.3,1) forwards light-on-e7496d15}@keyframes light-on-e7496d15{0%{opacity:0;transform:scaleY(.5)}to{opacity:1;transform:scaleY(1)}}.lamp-interactive:hover .lamp-shade[data-v-e7496d15]{fill:#ffe033}@media (width<=840px){.floor-lamp-container.hidden-mobile[data-v-e7496d15]{opacity:0;pointer-events:none;transform:translateY(220px)}}.modal-wrapper[data-v-020b798f]{z-index:1000;position:fixed;inset:0}.modal-overlay[data-v-020b798f]{-webkit-backdrop-filter:blur(20px);z-index:1000;opacity:0;pointer-events:none;background:#fff6;transition:opacity .45s cubic-bezier(.2,.8,.2,1);position:fixed;inset:0}.modal-overlay.active[data-v-020b798f]{opacity:1;pointer-events:all}.modal-container[data-v-020b798f]{background:var(--card-bg);border:1px solid var(--border);z-index:1001;transition:all .45s cubic-bezier(.2,.8,.2,1);position:fixed;overflow:hidden;box-shadow:0 4px 12px #0000000d}.modal-content-inner[data-v-020b798f]{opacity:0;width:100%;height:100%;transition:opacity .35s ease-out .15s;display:flex}.expanded .modal-content-inner[data-v-020b798f]{opacity:1}.left-col[data-v-020b798f]{border-right:1px solid var(--border);background:var(--widget-bg);width:55%;height:100%;transition:all .45s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.right-col[data-v-020b798f]{box-sizing:border-box;background:var(--card-bg);flex-direction:column;justify-content:space-between;width:45%;height:100%;padding:2.2rem 2rem 1.4rem;transition:all .45s cubic-bezier(.2,.8,.2,1);display:flex;position:relative}.btn-close[data-v-020b798f]{top:max(1.2rem, calc(env(safe-area-inset-top,0px) + 10px));right:max(1.2rem, calc(env(safe-area-inset-right,0px) + 10px));background:var(--border);width:28px;height:28px;color:var(--fg);cursor:pointer;z-index:100;opacity:0;pointer-events:none;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.65rem;transition:background .15s,color .15s,opacity .15s ease-out;display:flex;position:absolute}.expanded .btn-close[data-v-020b798f]{opacity:1;pointer-events:all;transition:background .15s,color .15s,opacity .25s ease-out .15s}.btn-close[data-v-020b798f]:hover{background:var(--fg);color:var(--bg)}.project-info[data-v-020b798f]{flex-direction:column;display:flex}.badge[data-v-020b798f]{background:var(--badge-bg);color:var(--badge-fg);text-transform:uppercase;letter-spacing:.06em;border-radius:100px;align-self:flex-start;margin-bottom:.8rem;padding:.25rem .65rem;font-size:.58rem;font-weight:600;transition:background .4s,color .4s;display:inline-flex}.title[data-v-020b798f]{letter-spacing:-.03em;color:var(--fg);margin:0 0 .5rem;font-size:1.6rem;font-weight:700;line-height:1.1}.meta-lines[data-v-020b798f]{flex-direction:column;gap:.15rem;margin-bottom:1.2rem;display:flex}.meta-line[data-v-020b798f]{color:var(--fg-muted);font-size:.68rem;line-height:1.4}.divider[data-v-020b798f]{background:var(--border);width:100%;height:1px;margin-bottom:1.2rem}.description[data-v-020b798f]{color:var(--fg-muted);font-size:.76rem;line-height:1.7}.compact-preview[data-v-020b798f]{flex-direction:column;gap:1rem;margin-top:1.2rem;display:flex}.compact-metrics[data-v-020b798f]{border:1px solid var(--border);border-radius:14px;gap:0;display:flex;overflow:hidden}.compact-metric[data-v-020b798f]{border-right:1px solid var(--border);flex-direction:column;flex:1;align-items:center;gap:.1rem;padding:.7rem .5rem;transition:background .4s,border-color .4s;display:flex}.compact-metric[data-v-020b798f]:last-child{border-right:none}.compact-metric-val[data-v-020b798f]{color:var(--fg);letter-spacing:-.02em;font-size:1rem;font-weight:800;line-height:1}.compact-metric-lbl[data-v-020b798f]{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;text-align:center;font-size:.52rem;font-weight:600}.compact-tech[data-v-020b798f]{flex-wrap:wrap;gap:.3rem;display:flex}.compact-tech-pill[data-v-020b798f]{background:var(--border);color:var(--fg-muted);border-radius:100px;padding:.25rem .6rem;font-size:.58rem;font-weight:600;transition:background .4s,color .4s}.fallback-hero[data-v-020b798f]{background:#f2f1ec;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.fallback-img[data-v-020b798f]{object-fit:contain;max-width:80%;max-height:80%}.hero-image-wrap[data-v-020b798f]{background:var(--widget-bg);width:100%;height:100%;position:relative;overflow:hidden}.hero-img[data-v-020b798f]{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1);display:block}.is-mobile-project .hero-img[data-v-020b798f]{object-position:top center;object-fit:contain;display:block}.hero-image-wrap[data-v-020b798f]:after{content:"";pointer-events:none;background:linear-gradient(#0000 50%,#00000014 100%);position:absolute;inset:0}@media (width<=768px){.overview-grid[data-v-020b798f]{grid-template-columns:1fr;gap:1.5rem}}.btn-download[data-v-020b798f]{top:max(1.2rem, calc(env(safe-area-inset-top,0px) + 10px));right:max(4.2rem, calc(env(safe-area-inset-right,0px) + 3.8rem));background:var(--border);height:28px;color:var(--fg);cursor:pointer;z-index:100;opacity:0;pointer-events:none;border-radius:100px;align-items:center;gap:.3rem;padding:0 1rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,opacity .15s ease-out;display:flex;position:absolute}.expanded .btn-download[data-v-020b798f]{opacity:1;pointer-events:all;transition:background .15s,color .15s,opacity .25s ease-out .15s}.btn-download[data-v-020b798f]:hover{background:var(--fg);color:var(--bg)}.btn-download .download-icon[data-v-020b798f]{font-size:.8rem;font-weight:700}.resume-full-content[data-v-020b798f]{opacity:0;box-sizing:border-box;width:100%;height:100%;padding:max(4.5rem, calc(env(safe-area-inset-top,0px) + 4rem)) 2rem max(2.5rem, calc(env(safe-area-inset-bottom,0px) + 1.5rem));justify-content:center;align-items:flex-start;transition:opacity .35s ease-out .15s;display:flex;overflow-y:auto}.resume-full-content.visible[data-v-020b798f]{opacity:1}.resume-image-container[data-v-020b798f]{border:1px solid var(--border);background:#fff;border-radius:16px;justify-content:center;width:100%;max-width:780px;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000014}.resume-image[data-v-020b798f]{width:100%;height:auto;display:block}.resume-full-content[data-v-020b798f]::-webkit-scrollbar{width:8px}.resume-full-content[data-v-020b798f]::-webkit-scrollbar-track{background:0 0}.resume-full-content[data-v-020b798f]::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.resume-full-content[data-v-020b798f]::-webkit-scrollbar-thumb:hover{background:var(--fg-muted)}@media (width<=768px){.modal-container.expanded[data-v-020b798f]{border-radius:20px!important;width:94vw!important;height:86vh!important}.modal-container.expanded.detailed-view[data-v-020b798f]{border-radius:0!important;width:100vw!important;height:100vh!important}.modal-content-inner[data-v-020b798f]{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;overflow-y:auto}.left-col[data-v-020b798f]{border-right:none;border-bottom:1px solid var(--border);width:100%;height:250px;padding-top:env(safe-area-inset-top,0px);flex-shrink:0}.right-col[data-v-020b798f]{width:100%;height:auto;padding:1.5rem 1.2rem max(2rem, calc(env(safe-area-inset-bottom,0px) + 1.2rem))}.scroll-hint[data-v-020b798f]{align-self:flex-start;margin-top:1.4rem}.btn-close[data-v-020b798f]{top:max(.8rem, calc(env(safe-area-inset-top,0px) + 10px))!important;right:max(.8rem, calc(env(safe-area-inset-right,0px) + 10px))!important}.btn-download[data-v-020b798f]{top:max(.8rem, calc(env(safe-area-inset-top,0px) + 10px))!important;right:max(3.5rem, calc(env(safe-area-inset-right,0px) + 3.2rem))!important}.resume-full-content[data-v-020b798f]{padding:max(4rem, calc(env(safe-area-inset-top,0px) + 3.5rem)) .8rem max(2rem, calc(env(safe-area-inset-bottom,0px) + 1.5rem))}}.detailed-view .modal-content-inner[data-v-020b798f]{justify-content:center;height:100%;display:flex;overflow-y:auto}.detailed-view .right-col[data-v-020b798f]{width:100%;max-width:850px;height:auto;min-height:100%;padding:max(4.5rem, calc(env(safe-area-inset-top,0px) + 4rem)) 2.5rem max(5rem, calc(env(safe-area-inset-bottom,0px) + 2rem));justify-content:flex-start;margin:0 auto;overflow-y:visible}.detailed-view .modal-content-inner[data-v-020b798f]::-webkit-scrollbar{width:6px}.detailed-view .modal-content-inner[data-v-020b798f]::-webkit-scrollbar-track{background:0 0}.detailed-view .modal-content-inner[data-v-020b798f]::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.detailed-view .modal-content-inner[data-v-020b798f]::-webkit-scrollbar-thumb:hover{background:var(--fg-muted)}.details-section[data-v-020b798f]{flex-direction:column;gap:2.5rem;margin-top:2.5rem;animation:.6s ease-out fadeIn-020b798f;display:flex}@keyframes fadeIn-020b798f{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.metrics-grid[data-v-020b798f]{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:.5rem;display:grid}.metric-card[data-v-020b798f]{background:var(--widget-bg);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:.2rem;padding:1.2rem;transition:transform .3s,border-color .3s;display:flex}.metric-card[data-v-020b798f]:hover{border-color:var(--fg-muted);transform:translateY(-2px)}.metric-val[data-v-020b798f]{color:var(--fg);font-size:1.8rem;font-weight:800;line-height:1.1}.metric-lbl[data-v-020b798f]{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.6rem;font-weight:600}.overview-grid[data-v-020b798f]{grid-template-columns:1fr 1fr;gap:2.5rem;display:grid}.overview-col h3[data-v-020b798f]{text-transform:uppercase;letter-spacing:.05em;color:var(--fg);margin-bottom:.8rem;font-size:.85rem;font-weight:700}.overview-col p[data-v-020b798f]{color:var(--fg-muted);font-size:.78rem;line-height:1.6}.features-section h3[data-v-020b798f]{text-transform:uppercase;letter-spacing:.05em;color:var(--fg);margin-bottom:1.2rem;font-size:.85rem;font-weight:700}.features-grid[data-v-020b798f]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.features-list[data-v-020b798f]{flex-direction:column;gap:1.2rem;display:flex}.feature-card[data-v-020b798f]{background:var(--widget-bg);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:.4rem;padding:1.2rem;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex}.feature-card.has-image[data-v-020b798f]{border-radius:20px;flex-direction:row;align-items:center;gap:1.4rem;padding:1.1rem 1.3rem}.feature-card.has-image[data-v-020b798f]:hover{border-color:var(--fg-muted);transform:translateY(-2px);box-shadow:0 12px 30px #00000014}.feature-img-wrap[data-v-020b798f]{cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:235px;display:flex;position:relative}.feature-img[data-v-020b798f]{object-fit:contain;object-position:center;filter:drop-shadow(0 10px 22px #00000029);width:100%;height:100%;transition:transform .4s,filter .4s}.feature-img-wrap:hover .feature-img[data-v-020b798f]{filter:drop-shadow(0 14px 28px #00000038);transform:scale(1.05)}.zoom-overlay[data-v-020b798f]{-webkit-backdrop-filter:blur(4px);color:#fff;opacity:0;pointer-events:none;background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.85rem;transition:opacity .25s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.feature-img-wrap:hover .zoom-overlay[data-v-020b798f]{opacity:1}.feature-content[data-v-020b798f]{flex-direction:column;flex:1;gap:.45rem;display:flex}.feature-card h4[data-v-020b798f]{color:var(--fg);font-size:.85rem;font-weight:700}.feature-card p[data-v-020b798f]{color:var(--fg-muted);font-size:.74rem;line-height:1.6}.tech-section h3[data-v-020b798f]{text-transform:uppercase;letter-spacing:.05em;color:var(--fg);margin-bottom:1rem;font-size:.85rem;font-weight:700}.tech-list[data-v-020b798f]{flex-wrap:wrap;gap:.5rem;display:flex}.tech-pill[data-v-020b798f]{background:var(--border);color:var(--fg);border:1px solid #ffffff0d;border-radius:100px;padding:.35rem .85rem;font-size:.65rem;font-weight:600;transition:all .2s}.tech-pill[data-v-020b798f]:hover{background:var(--fg);color:var(--bg)}.challenge-box[data-v-020b798f]{background:#ff95000a;border:1px solid #ff950026;border-radius:16px;padding:1.5rem}.challenge-title[data-v-020b798f]{color:#ff9500;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.4rem;margin-bottom:.6rem;font-size:.8rem;font-weight:700;display:flex}.challenge-text[data-v-020b798f]{color:var(--fg-muted);font-size:.74rem;line-height:1.6}.scroll-hint[data-v-020b798f]{background:color-mix(in srgb, var(--card-bg) 72%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);cursor:pointer;border-radius:100px;flex-shrink:0;align-self:flex-start;align-items:center;gap:.5rem;margin-top:auto;padding:.45rem .85rem .45rem .75rem;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 16px #00000012}.scroll-hint[data-v-020b798f]:hover{background:var(--fg);border-color:var(--fg);transform:translateY(-1px);box-shadow:0 8px 20px #0000001f}.scroll-hint:hover .hint-text[data-v-020b798f]{color:var(--bg)}.scroll-hint:hover .hint-icon[data-v-020b798f]{color:var(--bg);background:#fff3}.hint-text[data-v-020b798f]{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);white-space:nowrap;font-size:.62rem;font-weight:600;transition:color .2s}.hint-icon[data-v-020b798f]{background:var(--border);width:18px;height:18px;color:var(--fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.62rem;font-weight:700;transition:background .2s,color .2s;display:flex}@media (width<=768px){.overview-grid[data-v-020b798f]{grid-template-columns:1fr;gap:1.5rem}.detailed-view .modal-content-inner[data-v-020b798f]{flex-direction:column;overflow-y:auto}.detailed-view .left-col[data-v-020b798f]{border-right:none;border-bottom:1px solid var(--border);flex-shrink:0;width:100%;height:420px}.detailed-view .right-col[data-v-020b798f]{width:100%;height:auto;padding:2.2rem 1.4rem;overflow-y:visible}.feature-card.has-image[data-v-020b798f]{flex-direction:column;align-items:flex-start}.feature-img-wrap[data-v-020b798f]{align-self:center;width:100%;max-width:180px;height:320px}}.modal-wrapper[data-v-d09b9bf8]{z-index:2000;position:fixed;inset:0}.modal-overlay[data-v-d09b9bf8]{-webkit-backdrop-filter:blur(20px);z-index:2000;opacity:0;pointer-events:none;background:#fff6;transition:opacity .45s cubic-bezier(.2,.8,.2,1);position:fixed;inset:0}.modal-overlay.active[data-v-d09b9bf8]{opacity:1;pointer-events:all}.modal-container[data-v-d09b9bf8]{background:var(--card-bg);border:1px solid var(--border);z-index:2001;transition:all .45s cubic-bezier(.2,.8,.2,1),background .4s,border-color .4s;position:fixed;overflow:hidden;box-shadow:0 4px 12px #0000000d}.modal-content-inner[data-v-d09b9bf8]{flex-direction:column;width:100%;height:100%;display:flex}.image-area[data-v-d09b9bf8]{background:0 0;flex:auto;justify-content:center;align-items:center;width:100%;transition:background .4s;display:flex;overflow:hidden}.full-img[data-v-d09b9bf8]{object-fit:contain;filter:drop-shadow(0 20px 50px #00000040);width:100%;height:100%}.info-bar[data-v-d09b9bf8]{background:var(--card-bg);box-sizing:border-box;opacity:0;pointer-events:none;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;height:0;padding:0;transition:height .22s cubic-bezier(.2,.8,.2,1),padding .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease-out,background .4s;display:flex;overflow:hidden}.info-bar.ui-visible[data-v-d09b9bf8]{opacity:1;pointer-events:auto;height:84px;padding:1.2rem 1.4rem;transition-delay:.22s}.info-left[data-v-d09b9bf8],.info-right[data-v-d09b9bf8]{flex-direction:column;gap:.15rem;display:flex}.info-title[data-v-d09b9bf8]{color:var(--fg);font-size:.85rem;font-weight:700;transition:color .4s}.info-location[data-v-d09b9bf8]{color:var(--fg-muted);font-size:.65rem;transition:color .4s}.info-right[data-v-d09b9bf8]{text-align:right}.info-spec[data-v-d09b9bf8]{color:var(--fg);font-size:.72rem;font-weight:600;transition:color .4s}.info-date[data-v-d09b9bf8]{color:var(--fg-muted);font-size:.62rem;transition:color .4s}.btn-close[data-v-d09b9bf8]{top:max(1rem, calc(env(safe-area-inset-top,0px) + 10px));right:max(1rem, calc(env(safe-area-inset-right,0px) + 10px));background:var(--border);width:28px;height:28px;color:var(--fg);cursor:pointer;z-index:10;opacity:0;pointer-events:none;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.65rem;transition:background .15s,color .15s,opacity .2s ease-out;display:flex;position:absolute}.btn-close.ui-visible[data-v-d09b9bf8]{opacity:1;pointer-events:auto;transition-delay:.18s}.btn-close[data-v-d09b9bf8]:hover{background:var(--fg);color:var(--bg)}.modal-wrapper[data-v-72d0fead]{z-index:2100;position:fixed;inset:0}.modal-overlay[data-v-72d0fead]{-webkit-backdrop-filter:blur(20px);z-index:2100;opacity:0;pointer-events:none;background:#fff6;transition:opacity .45s cubic-bezier(.2,.8,.2,1);position:fixed;inset:0}:root.dark .modal-overlay[data-v-72d0fead]{background:#0a0a0a80}.modal-overlay.active[data-v-72d0fead]{opacity:1;pointer-events:all}.modal-container[data-v-72d0fead]{background:var(--card-bg);border:1px solid var(--border);z-index:2101;transition:all .45s cubic-bezier(.2,.8,.2,1),background .4s,border-color .4s;position:fixed;overflow:hidden;box-shadow:0 4px 12px #0000000d}.modal-content-inner[data-v-72d0fead]{box-sizing:border-box;opacity:0;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:1.8rem;transition:opacity .3s ease-out .15s;display:flex}.expanded .modal-content-inner[data-v-72d0fead]{opacity:1}.player-top[data-v-72d0fead]{flex-direction:column;flex:1;align-items:stretch;display:flex}.album-wrap[data-v-72d0fead]{width:170px;height:170px;margin:.8rem auto 1.8rem;transition:transform .8s cubic-bezier(.25,1,.5,1);position:relative}.expanded .album-wrap[data-v-72d0fead]{transform:translate(-35px)}.album-cover[data-v-72d0fead]{z-index:2;background-color:#222;background-position:50%;background-size:cover;border-radius:6px;width:100%;height:100%;position:absolute;top:0;left:0;box-shadow:0 12px 30px #0000004d,inset 0 0 1px 1px #ffffff26}.album-cover[data-v-72d0fead]:before{z-index:4;content:"";pointer-events:none;background:linear-gradient(90deg,#0000002e,#0000);width:10px;height:100%;position:absolute;top:0;left:0}.album-cover[data-v-72d0fead]:after{z-index:3;content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff14 0%,#ffffff08 50%,#0000 50.1%,#0000001f 100%);border-radius:6px;width:100%;height:100%;position:absolute;top:0;left:0}.vinyl-disc[data-v-72d0fead]{z-index:1;background-image:url(https://gallery.yopriceville.com/var/resizes/Free-Clipart-Pictures/Music-PNG/Gramophone_Vinyl_LP_Record_PNG_Transparent_Clip_Art_Image.png?m=1462983196);background-position:50%;background-size:106% 106%;border-radius:50%;width:95%;height:95%;transition:left .8s cubic-bezier(.25,1,.5,1);display:block;position:absolute;top:2.5%;left:2.5%;box-shadow:0 4px 15px #00000059}.expanded .vinyl-disc[data-v-72d0fead]{left:45%}.vinyl-disc[data-v-72d0fead]:before{z-index:2;content:"";pointer-events:none;background:conic-gradient(#fff0 0deg,#ffffff14 45deg,#fff0 90deg,#ffffff14 135deg,#fff0 180deg,#ffffff14 225deg,#fff0 270deg,#ffffff14 315deg,#fff0 360deg);border-radius:50%;width:100%;height:100%;position:absolute;top:0;left:0}.vinyl-disc.spinning[data-v-72d0fead]{animation:8s linear infinite spinRecord-72d0fead}@keyframes spinRecord-72d0fead{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.track-details[data-v-72d0fead]{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.track-header[data-v-72d0fead]{flex:1;min-width:0}.modal-track-name[data-v-72d0fead]{color:var(--fg);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:1.25rem;font-weight:700;line-height:1.2;overflow:hidden}.modal-track-artist[data-v-72d0fead]{color:var(--fg-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:.1rem;font-size:.88rem;font-weight:500;overflow:hidden}.audio-visualizer[data-v-72d0fead]{align-items:flex-end;gap:3px;height:22px;margin-bottom:2px;display:flex}.bar[data-v-72d0fead]{background:var(--fg);border-radius:10px;width:3px;animation:.8s ease-in-out infinite alternate bounceBar-72d0fead}.bar-1[data-v-72d0fead]{height:35%;animation-delay:.1s}.bar-2[data-v-72d0fead]{height:65%;animation-delay:.3s}.bar-3[data-v-72d0fead]{height:95%;animation-delay:0s}.bar-4[data-v-72d0fead]{height:50%;animation-delay:.4s}.bar-5[data-v-72d0fead]{height:75%;animation-delay:.2s}@keyframes bounceBar-72d0fead{0%{transform:scaleY(.35)}to{transform:scaleY(1.05)}}.divider[data-v-72d0fead]{background:var(--border);width:100%;height:1px;margin-top:1.2rem;margin-bottom:1.2rem;transition:background .4s}.player-bottom[data-v-72d0fead]{flex-direction:column;gap:.65rem;display:flex}.links-title[data-v-72d0fead]{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-size:.7rem;font-weight:650}.music-links[data-v-72d0fead]{flex-direction:column;gap:.55rem;display:flex}.platform-link[data-v-72d0fead]{background:var(--widget-bg);border:1px solid var(--border);color:var(--fg);transition:transform .3s var(--ease-out), border-color .3s var(--ease-out), background .3s var(--ease-out), box-shadow .3s var(--ease-out), color .4s ease;border-radius:14px;justify-content:space-between;align-items:center;padding:.72rem .9rem;text-decoration:none;display:flex}.platform-link[data-v-72d0fead]:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000000a}.spotify-link[data-v-72d0fead]:hover{background:#1db95408;border-color:#1db954}.apple-link[data-v-72d0fead]:hover{background:#fc3c4408;border-color:#fc3c44}:root.dark .spotify-link[data-v-72d0fead]:hover{background:#1db9540f}:root.dark .apple-link[data-v-72d0fead]:hover{background:#fc3c440f}.platform-left[data-v-72d0fead]{align-items:center;gap:.8rem;display:flex}.platform-icon[data-v-72d0fead]{width:20px;height:20px;transition:transform .3s var(--ease-out);flex-shrink:0}.spotify-link .platform-icon[data-v-72d0fead]{color:#1db954}.apple-link .platform-icon[data-v-72d0fead]{color:#fc3c44}.platform-link:hover .platform-icon[data-v-72d0fead]{transform:scale(1.08)}.platform-text[data-v-72d0fead]{flex-direction:column;display:flex}.platform-name[data-v-72d0fead]{font-size:.82rem;font-weight:600;line-height:1.25}.platform-desc[data-v-72d0fead]{color:var(--fg-muted);font-size:.65rem;line-height:1.2}.platform-arrow[data-v-72d0fead]{color:var(--fg-muted);transition:transform .3s var(--ease-out), color .3s var(--ease-out);font-size:.75rem}.platform-link:hover .platform-arrow[data-v-72d0fead]{color:var(--fg);transform:translate(2.5px,-2.5px)}.btn-close[data-v-72d0fead]{background:var(--border);width:28px;height:28px;color:var(--fg);cursor:pointer;z-index:10;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.65rem;transition:background .15s,color .15s,opacity .15s ease-out;display:flex;position:absolute;top:1rem;right:1rem}.btn-close[data-v-72d0fead]:hover{background:var(--fg);color:var(--bg)}.hero-card[data-v-269fbd12]{border-radius:var(--radius);box-sizing:border-box;background:var(--hero-bg);min-height:280px;color:var(--hero-fg);transition:background .5s ease, color .5s ease, box-shadow .3s var(--ease-out), transform .3s var(--ease-out);flex-direction:column;justify-content:space-between;padding:2.2rem 2.4rem;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000000a,inset 0 1px #ffffff26}.hero-card[data-v-269fbd12]:hover{transform:translateY(-2px);box-shadow:0 14px 35px #00000014,inset 0 1px #fff3}.top-row[data-v-269fbd12]{opacity:.95;letter-spacing:-.01em;z-index:2;justify-content:space-between;align-items:center;font-size:.82rem;font-weight:500;display:flex}.clock-loc[data-v-269fbd12],.weather-info[data-v-269fbd12]{background:var(--hero-badge-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--hero-badge-border);border-radius:100px;align-items:center;gap:.4rem;padding:.35rem .75rem;transition:background .5s,border-color .5s;display:flex}.separator[data-v-269fbd12]{opacity:.5}.clock-time[data-v-269fbd12]{font-variant-numeric:tabular-nums;font-weight:600}.content-body[data-v-269fbd12]{z-index:2;max-width:72%;margin-top:auto}.name[data-v-269fbd12]{letter-spacing:-.04em;color:inherit;margin-bottom:.6rem;font-size:clamp(2rem,3.8vw,3.25rem);font-weight:700;line-height:1.05}.status[data-v-269fbd12]{letter-spacing:-.02em;opacity:.95;margin-bottom:.4rem;font-size:clamp(1.05rem,1.8vw,1.25rem);font-weight:500;line-height:1.35}.bio-subtext[data-v-269fbd12]{opacity:.75;letter-spacing:-.015em;font-size:.85rem;font-weight:400;line-height:1.4}.avatar-wrap[data-v-269fbd12]{pointer-events:none;z-index:1;width:150px;height:150px;transition:transform .6s var(--ease-out);justify-content:center;align-items:center;display:flex;position:absolute;bottom:-5px;right:5%}.avatar[data-v-269fbd12]{object-fit:contain;filter:drop-shadow(0 8px 16px #0000001f);width:100%;height:100%}.hero-card:hover .avatar-wrap[data-v-269fbd12]{transform:translateY(-8px)rotate(4deg)}@media (width<=480px){.hero-card[data-v-269fbd12]{min-height:250px;padding:1.6rem}.top-row[data-v-269fbd12]{flex-direction:column;align-items:flex-start;gap:.5rem}.content-body[data-v-269fbd12]{max-width:100%;margin-top:1.5rem}.avatar-wrap[data-v-269fbd12]{opacity:.45;width:110px;height:110px;bottom:-10px;right:2%}}.pics-carousel[data-v-e091b784]{cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.slides-viewport[data-v-e091b784]{width:100%;height:100%;overflow:hidden}.slides-wrapper[data-v-e091b784]{width:100%;height:100%;transition:transform .65s cubic-bezier(.25,1,.5,1);display:flex}.slide[data-v-e091b784]{flex:0 0 100%;width:100%;height:100%;position:relative}.slide-image[data-v-e091b784]{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-out);display:block}.pics-label[data-v-e091b784]{z-index:10;background:var(--glass-badge-bg);-webkit-backdrop-filter:blur(10px);color:var(--glass-badge-fg);border:1px solid var(--glass-badge-border);letter-spacing:-.01em;border-radius:100px;padding:.32rem .75rem;font-size:.72rem;font-weight:600;transition:background .3s,color .3s,border-color .3s;position:absolute;top:14px;left:14px;box-shadow:0 2px 10px #0000000f}.archive-btn[data-v-e091b784]{z-index:10;background:var(--glass-badge-bg);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-badge-border);width:28px;height:28px;transition:transform .3s var(--ease-out), background .3s, border-color .3s;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px;box-shadow:0 2px 10px #0000000f}.archive-btn span[data-v-e091b784]{color:var(--glass-badge-fg);font-size:.8rem;line-height:1;transition:color .3s;transform:translate(.5px,-.5px)}.pics-carousel:hover .archive-btn[data-v-e091b784]{transform:scale(1.08)translate(1px,-1px)}.indicators[data-v-e091b784]{z-index:10;-webkit-backdrop-filter:blur(8px);background:#00000047;border:1px solid #ffffff0f;border-radius:100px;gap:6px;padding:5px 9px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.dot[data-v-e091b784]{cursor:pointer;background:#ffffff59;border-radius:50%;width:6px;height:6px;transition:background .25s,transform .25s}.dot[data-v-e091b784]:hover{background:#ffffffb3}.dot.active[data-v-e091b784]{background:#fff;transform:scale(1.2)}.slides-wrapper.no-transition[data-v-e091b784]{transition:none!important}.now-playing[data-v-5c809f6e]{box-sizing:border-box;cursor:pointer;flex-direction:column;justify-content:space-between;height:100%;padding:1.2rem;display:flex;position:relative;overflow:hidden}.header-label[data-v-5c809f6e]{color:var(--fg);z-index:2;letter-spacing:-.015em;transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);font-size:.95rem;font-weight:600}.track-info[data-v-5c809f6e]{z-index:2;min-width:0;max-width:55%;transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);flex-direction:column;gap:.12rem;display:flex}.track-name[data-v-5c809f6e]{color:var(--fg);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:1.1rem;font-weight:700;line-height:1.2;overflow:hidden}.track-artist[data-v-5c809f6e]{color:var(--fg-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:500;overflow:hidden}.connect-btn[data-v-5c809f6e]{font-size:.58rem;font-family:var(--font);color:var(--fg-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:100px;align-self:flex-start;margin-top:.35rem;padding:.13rem .5rem;transition:all .2s}.connect-btn[data-v-5c809f6e]:hover{color:var(--fg);border-color:var(--fg-muted)}.vinyl-wrapper[data-v-5c809f6e]{z-index:1;pointer-events:none;width:200px;height:200px;transition:left .65s cubic-bezier(.25,1,.5,1);position:absolute;top:-30px;left:calc(100% - 145px)}.now-playing:hover .vinyl-wrapper[data-v-5c809f6e]{left:-45px}.vinyl[data-v-5c809f6e]{background-image:url(https://gallery.yopriceville.com/var/resizes/Free-Clipart-Pictures/Music-PNG/Gramophone_Vinyl_LP_Record_PNG_Transparent_Clip_Art_Image.png?m=1462983196);background-position:50%;background-size:106% 106%;border-radius:50%;flex-shrink:0;width:100%;height:100%;animation:6s linear infinite spinThat-5c809f6e;display:block;position:relative;box-shadow:0 4px 16px #00000073}.vinyl[data-v-5c809f6e]:before{z-index:10;content:"";pointer-events:none;background:conic-gradient(#fff0 0deg,#ffffff14 45deg,#fff0 90deg,#ffffff14 135deg,#fff0 180deg,#ffffff14 225deg,#fff0 270deg,#ffffff14 315deg,#fff0 360deg);border-radius:50%;width:100%;height:100%;position:absolute;top:0;left:0}.print[data-v-5c809f6e]{background-color:#1a1a1a;background-position:50%;background-size:cover;border-radius:50%;width:34%;height:34%;position:absolute;top:33%;left:33%;box-shadow:inset 0 0 0 1px #ffffff26,0 0 4px #00000080}@keyframes spinThat-5c809f6e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.artwork-bg[data-v-5c809f6e]{filter:blur(4px)saturate(1.4);opacity:0;z-index:0;pointer-events:none;width:110%;height:110%;transition:opacity .5s var(--ease-out);background-position:50%;background-size:cover;position:absolute;top:0%;left:0%}.now-playing:hover .artwork-bg[data-v-5c809f6e]{opacity:.4}.see-more[data-v-5c809f6e]{opacity:0;pointer-events:none;color:var(--fg);transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);z-index:3;align-items:center;gap:6px;font-size:.88rem;font-weight:600;display:flex;position:absolute;top:50%;right:24px;transform:translateY(-50%)translate(15px)}.see-more .arrow[data-v-5c809f6e]{transition:transform .3s var(--ease-out);font-size:.95rem}.now-playing:hover .see-more[data-v-5c809f6e]{opacity:1;transform:translateY(-50%)translate(0)}.now-playing:hover .see-more .arrow[data-v-5c809f6e]{transform:translate(3px)}.now-playing:hover .header-label[data-v-5c809f6e]{opacity:0;transform:translateY(-8px)}.now-playing:hover .track-info[data-v-5c809f6e]{opacity:0;transform:translateY(8px)}@media (width<=840px){.now-playing[data-v-5c809f6e]{padding:1.1rem}.header-label[data-v-5c809f6e]{font-size:.85rem}.track-info[data-v-5c809f6e]{gap:.08rem;max-width:60%}.track-name[data-v-5c809f6e]{font-size:1rem}.track-artist[data-v-5c809f6e]{font-size:.8rem}.vinyl-wrapper[data-v-5c809f6e]{width:160px;height:160px;top:-5px;left:calc(100% - 110px)}.now-playing:hover .vinyl-wrapper[data-v-5c809f6e]{left:-30px}}@media (width<=480px){.vinyl-wrapper[data-v-5c809f6e]{top:10px}}.link-item[data-v-b0f54bb9]{border-radius:var(--radius);background:var(--card-bg);border:1px solid var(--border);color:var(--fg);transition:background .4s ease, color .4s ease, border-color .4s ease, transform .3s var(--ease-out), box-shadow .3s var(--ease-out);justify-content:space-between;align-items:center;padding:0 1.4rem;font-size:.95rem;font-weight:600;text-decoration:none;display:flex;position:relative;overflow:hidden}.link-item[data-v-b0f54bb9]:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000000a,0 2px 6px #00000005}.hover-image[data-v-b0f54bb9]{object-fit:contain;pointer-events:none;z-index:1;opacity:0;width:auto;height:80%;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s;position:absolute;bottom:0;right:24px;transform:translateY(105%)}.link-item:hover .hover-image[data-v-b0f54bb9]{opacity:1;transform:translateY(10%)}.link-arrow[data-v-b0f54bb9]{color:var(--fg-muted);z-index:2;transition:transform .3s var(--ease-out), opacity .2s ease, color .2s ease;font-size:.85rem}.link-item:hover .link-arrow[data-v-b0f54bb9]{opacity:0;transform:translate(6px,-6px)}@media (width<=840px) and (width>=481px){.link-item[data-v-b0f54bb9]{border-radius:16px;padding:.8rem 1rem;font-size:.85rem}}.resume-card[data-v-cd310959]{box-sizing:border-box;background:var(--card-bg);cursor:pointer;flex-direction:column;justify-content:flex-start;height:100%;padding:1.4rem;transition:background .4s,color .4s,border-color .4s;display:flex;position:relative;overflow:hidden}.resume-label[data-v-cd310959]{color:var(--fg-muted);letter-spacing:.04em;text-transform:uppercase;z-index:5;margin-bottom:.5rem;font-size:.65rem;font-weight:600;transition:opacity .45s cubic-bezier(.25,1,.5,1)}.mini-cards-container[data-v-cd310959]{pointer-events:none;z-index:1;width:140px;height:140px;transition:opacity .45s cubic-bezier(.25,1,.5,1);position:absolute;bottom:-20px;right:-5px}.mini-card[data-v-cd310959]{background:var(--mini-card-bg);border:1px solid var(--mini-card-border);will-change:transform;border-radius:12px;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s,background .4s;position:absolute;box-shadow:0 4px 12px #00000008,0 1px 3px #00000005}.mini-card-back[data-v-cd310959]{z-index:2;width:82px;height:115px;bottom:0;right:12px;transform:rotate(5deg)}.mini-card-front[data-v-cd310959]{z-index:3;box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:flex-start;width:82px;height:115px;padding:12px 10px;display:flex;bottom:-5px;right:26px;transform:rotate(-7deg)}.mini-card-name[data-v-cd310959]{color:var(--mini-card-name-color);white-space:nowrap;letter-spacing:-.02em;margin-top:1px;font-size:.65rem;font-weight:600}.resume-card:hover .mini-card-front[data-v-cd310959]{transform:rotate(-9deg)translateY(-8px)translate(-2px);box-shadow:0 12px 24px #0000000f,0 4px 8px #00000008}.resume-card:hover .mini-card-back[data-v-cd310959]{transform:rotate(7deg)translateY(-12px)translate(4px);box-shadow:0 10px 20px #0000000d,0 3px 6px #00000005}.resume-card[data-v-cd310959]:hover{background:var(--hover-bg-deep)}.modal-active .resume-label[data-v-cd310959],.modal-active .mini-cards-container[data-v-cd310959]{opacity:0;pointer-events:none}@media (width<=840px){.resume-card[data-v-cd310959]{padding:1.2rem}.mini-cards-container[data-v-cd310959]{width:120px;height:120px;bottom:-15px;right:0}.mini-card-back[data-v-cd310959]{width:72px;height:100px;bottom:0;right:10px}.mini-card-front[data-v-cd310959]{width:72px;height:100px;padding:10px 9px;bottom:-5px;right:22px}.mini-card-name[data-v-cd310959]{font-size:.6rem}.resume-card:hover .mini-card-front[data-v-cd310959]{transform:rotate(-9deg)translateY(-6px)translate(-1.5px)}.resume-card:hover .mini-card-back[data-v-cd310959]{transform:rotate(7deg)translateY(-8px)translate(3px)}}.project-card-frame[data-v-32efa044]{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);box-sizing:border-box;cursor:pointer;flex-direction:column;height:100%;padding:10px;transition:background .4s cubic-bezier(.25,1,.5,1),border-color .4s cubic-bezier(.25,1,.5,1),box-shadow .4s cubic-bezier(.25,1,.5,1);display:flex;position:relative;overflow:hidden}.project-card-frame[data-v-32efa044]:hover{background:var(--project-theme);border-color:var(--project-theme);box-shadow:0 12px 28px #00000014,0 4px 10px #0000000a}.frame-header[data-v-32efa044]{flex-shrink:0;justify-content:space-between;align-items:center;padding:.25rem .5rem .55rem;transition:opacity .45s cubic-bezier(.25,1,.5,1);display:flex}.modal-active .frame-header[data-v-32efa044]{opacity:0;pointer-events:none}.project-title[data-v-32efa044]{letter-spacing:-.015em;color:var(--fg);align-items:center;gap:.3rem;font-size:.84rem;font-weight:600;transition:color .4s cubic-bezier(.25,1,.5,1);display:flex}.project-card-frame:hover .project-title[data-v-32efa044]{color:#fff}.project-title .arrow[data-v-32efa044]{opacity:0;transition:opacity .3s, transform .3s var(--ease-out);font-size:.8rem;transform:translate(-4px)}.project-card-frame:hover .project-title .arrow[data-v-32efa044]{opacity:1;transform:translate(0)}.inner-card[data-v-32efa044]{border-radius:calc(var(--radius) - 8px);box-sizing:border-box;transform-origin:50%;background:0 0;flex-grow:1;justify-content:flex-start;align-items:center;transition:transform .45s cubic-bezier(.25,1,.5,1),opacity .45s cubic-bezier(.25,1,.5,1);display:flex;position:relative}.modal-active .inner-card[data-v-32efa044]{opacity:0;pointer-events:none}.project-card-frame:hover .inner-card[data-v-32efa044]{transform:scale(.95) rotate(var(--hover-rotation))}.description[data-v-32efa044]{color:var(--fg-muted);z-index:2;-webkit-user-select:none;user-select:none;max-width:50%;margin:0;padding:0 .8rem;font-size:.64rem;line-height:1.5;transition:color .4s}.project-card-frame:hover .description[data-v-32efa044]{color:#ffffffe6}.phone-img[data-v-32efa044]{transition:transform .45s cubic-bezier(.25,1,.5,1);display:block;position:absolute;right:12px}.phone-img.is-mobile[data-v-32efa044]{transform-origin:100% 0;object-fit:contain;object-position:top right;width:95px;height:auto;max-height:160%;top:4px;transform:rotate(-8deg)}.project-card-frame:hover .phone-img.is-mobile[data-v-32efa044]{transform:rotate(0)scale(1.1)translate(1px,2px)}.phone-img.is-web[data-v-32efa044]{transform-origin:50%;object-fit:contain;width:110px;height:auto;max-height:100%;top:50%;transform:translateY(-50%)rotate(-6deg)}.project-card-frame:hover .phone-img.is-web[data-v-32efa044]{transform:translateY(-50%)rotate(0)scale(1.08)}.projects-panel[data-v-3bd6a12e]{flex-direction:column;gap:12px;width:100%;display:flex}.filter-bar[data-v-3bd6a12e]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-pill[data-v-3bd6a12e]{background:var(--card-bg);border:1px solid var(--border);color:var(--fg-muted);cursor:pointer;font-size:.7rem;font-weight:600;font-family:var(--font);-webkit-user-select:none;user-select:none;border-radius:100px;align-items:center;gap:6px;padding:.35rem .8rem;transition:all .25s cubic-bezier(.25,1,.5,1);display:inline-flex}.filter-pill[data-v-3bd6a12e]:hover{border-color:var(--fg-muted);color:var(--fg)}.filter-pill.active[data-v-3bd6a12e]{background:var(--fg);border-color:var(--fg);color:var(--bg)}.pill-count[data-v-3bd6a12e]{background:var(--border);color:var(--fg-muted);border-radius:100px;padding:.1rem .45rem;font-size:.58rem;font-weight:700;transition:all .25s}.filter-pill.active .pill-count[data-v-3bd6a12e]{background:var(--bg);color:var(--fg)}.category-sections[data-v-3bd6a12e]{flex-direction:column;gap:16px;display:flex}.category-group[data-v-3bd6a12e]{flex-direction:column;gap:8px;display:flex}.group-header[data-v-3bd6a12e]{align-items:center;gap:8px;padding:0 4px;display:flex}.group-title[data-v-3bd6a12e]{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);font-size:.68rem;font-weight:700}.group-count[data-v-3bd6a12e]{background:var(--widget-bg);border:1px solid var(--border);color:var(--fg-muted);border-radius:100px;padding:.1rem .4rem;font-size:.56rem;font-weight:700}.group-line[data-v-3bd6a12e]{background:var(--border);flex:1;height:1px}.projects-grid[data-v-3bd6a12e]{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:8px;display:grid}@media (width<=768px){.projects-grid[data-v-3bd6a12e]{grid-template-columns:1fr;grid-auto-rows:115px}}.home[data-v-05bc8a28]{box-sizing:border-box;grid-template-columns:44% 1fr;gap:10px;width:100%;min-height:100vh;padding:14px;display:grid}.left-panel[data-v-05bc8a28]{flex-direction:column;gap:8px;display:flex}.card-wrap[data-v-05bc8a28]{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);flex-shrink:0;overflow:hidden}.interactive-grid[data-v-05bc8a28]{grid-template-columns:1fr 1.18fr;gap:8px;height:440px;display:grid}.vertical-photo[data-v-05bc8a28]{height:100%}.side-widgets[data-v-05bc8a28]{flex-direction:column;gap:8px;height:100%;display:flex}.side-widgets[data-v-05bc8a28]>*{min-height:0}.side-widgets[data-v-05bc8a28]>:first-child,.side-widgets[data-v-05bc8a28]>:nth-child(2){flex:.65}.side-widgets[data-v-05bc8a28]>:nth-child(3),.side-widgets[data-v-05bc8a28]>:nth-child(4){flex:1.35}@media (width<=840px){.home[data-v-05bc8a28]{grid-template-columns:1fr;gap:8px;padding:10px 10px 200px}.interactive-grid[data-v-05bc8a28]{grid-template-columns:1fr;height:auto}.vertical-photo[data-v-05bc8a28]{height:380px}.side-widgets[data-v-05bc8a28]{flex-direction:row;height:150px}.side-widgets[data-v-05bc8a28]>*{height:100%}}@media (width<=480px){.side-widgets[data-v-05bc8a28]{grid-template-columns:1fr 1fr;gap:8px;height:auto;display:grid}.side-widgets[data-v-05bc8a28]>:first-child{grid-column:1/2;height:75px}.side-widgets[data-v-05bc8a28]>:nth-child(2){grid-column:2/3;height:75px}.side-widgets[data-v-05bc8a28]>:nth-child(3){grid-column:1/3;height:120px}.side-widgets[data-v-05bc8a28]>:nth-child(4){grid-column:1/3;height:150px}}
