@import "https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@3.x/dist/tabler-icons.min.css";*,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,textarea,select{font-family:inherit}body{background:#0a0a14;font-family:Instrument Sans,sans-serif;overflow:hidden}#root{width:100vw;height:100dvh}::-webkit-scrollbar{width:2px}::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.desktop{background:#fff;width:100%;height:100%;position:relative;overflow:hidden}.bg-wrap{z-index:0;flex-direction:column;gap:0;padding:16px 0 0;display:flex;position:absolute;inset:0}.bg-bar{letter-spacing:.05em;color:#636363;flex-shrink:0;justify-content:center;align-items:center;gap:32px;padding:16px;font-size:12px;font-weight:500;display:flex}.bg-row{justify-content:center;align-items:center;gap:32px;display:flex}.bg-dot{background:#aaa;border-radius:50%;flex-shrink:0;width:3px;height:3px}.bg-time{font-variant-numeric:tabular-nums}@media (width<=640px){.bg-bar{flex-direction:column;align-items:stretch;gap:8px;padding:0 16px}.bg-dot--sep{display:none}.bg-row{justify-content:space-between;width:100%}}.bg-photo{flex:1;min-height:0;position:relative;overflow:hidden}.bg-video{object-fit:cover;object-position:center;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.blobs{pointer-events:none;position:absolute;inset:0;overflow:hidden}.blob{filter:blur(80px);opacity:.55;border-radius:50%;animation:linear infinite drift;position:absolute}@keyframes drift{0%{transform:translate(0)scale(1)}33%{transform:translate(40px,-30px)scale(1.1)}66%{transform:translate(-20px,50px)scale(.9)}to{transform:translate(0)scale(1)}}.blob-1{background:radial-gradient(circle,#7c3aed,#0000 70%);width:320px;height:320px;animation-duration:18s;top:-60px;left:10%}.blob-2{background:radial-gradient(circle,#0ea5e9,#0000 70%);width:280px;height:280px;animation-duration:22s;animation-delay:-8s;top:30%;right:5%}.blob-3{background:radial-gradient(circle,#ec4899,#0000 70%);width:260px;height:260px;animation-duration:26s;animation-delay:-5s;bottom:-40px;left:30%}.blob-4{background:radial-gradient(circle,#10b981,#0000 70%);width:200px;height:200px;animation-duration:20s;animation-delay:-12s;top:10%;left:55%}.blob-5{background:radial-gradient(circle,#f59e0b,#0000 70%);width:180px;height:180px;animation-duration:24s;animation-delay:-3s;bottom:15%;right:25%}.hint{text-align:center;color:#ffffff4d;pointer-events:none;letter-spacing:.02em;font-size:13px;transition:opacity .4s;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.hint i{opacity:.5;margin-bottom:8px;font-size:26px;display:block}.window{-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(10px)saturate(140%)brightness(.95);backdrop-filter:blur(10px)saturate(140%)brightness(.95);background:#0a0a144d;border:1px solid #ffffff24;border-radius:20px;flex-direction:column;min-width:260px;min-height:140px;transition:box-shadow .2s;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 .5px #ffffff0d,inset 0 1px #ffffff1f,inset 0 -1px #0000001a,0 12px 32px #00000014,0 2px 6px #0000000f}.glass-distort .window{-webkit-backdrop-filter:url(#glass-distortion)blur(8px)saturate(120%)brightness(.95);backdrop-filter:url(#glass-distortion)blur(8px)saturate(120%)brightness(.95)}.window:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(135deg,#ffffff1a 0%,#ffffff05 40%,#fff0 60%,#ffffff0a 100%);position:absolute;inset:0}.window:after{content:"";border-radius:inherit;pointer-events:none;z-index:50;background:radial-gradient(140% 80% at 50% -10%,#ffffff21,#0000 55%),linear-gradient(115deg,#ffffff12 0%,#0000 20% 80%,#ffffff0d 100%);position:absolute;inset:0}.window.active{box-shadow:inset 0 0 0 .5px #ffffff14,inset 0 1px #ffffff2e,inset 0 -1px #0000001f,0 16px 48px #0000001a,0 0 0 1px #ffffff1f,0 4px 12px #00000012}.win-bar{z-index:1;cursor:grab;background:linear-gradient(#ffffff1a 0%,#ffffff0a 100%);border-bottom:1px solid #ffffff1a;border-radius:20px 20px 0 0;flex-shrink:0;align-items:center;gap:8px;padding:12px 16px 10px;display:flex;position:relative}.win-bar:active{cursor:grabbing}.dots{flex-shrink:0;gap:6px;display:flex}.dot{cursor:pointer;border:.5px solid #0003;border-radius:50%;width:12px;height:12px;transition:filter .15s,transform .1s}.dot:hover{filter:brightness(1.3);transform:scale(1.12)}.dot-r{background:radial-gradient(circle at 35% 35%,#ff7b72,#ff5f56)}.dot-y{background:radial-gradient(circle at 35% 35%,#ffd166,#ffbd2e)}.dot-g{background:radial-gradient(circle at 35% 35%,#6de06d,#27c93f)}.win-title{text-align:center;letter-spacing:.01em;color:#fffffff2;flex:1;padding-right:54px;font-size:13px;font-weight:600}.win-body{z-index:1;color:#ffffffe6;scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;border-radius:0 0 20px 20px;flex:1;padding:16px 18px;font-size:13px;line-height:1.6;position:relative;overflow:auto}.win-body::-webkit-scrollbar{width:2px}.win-body::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:2px}@keyframes winOpen{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes winGenie{0%{opacity:1;transform-origin:bottom;transform:translate(0)scaleX(1)scaleY(1)}28%{opacity:1;transform-origin:bottom;transform:translateY(-18px)scaleX(1.04)scaleY(1.04)}79%{opacity:0;transform:translate(var(--genie-x,0px), var(--genie-y,260px)) scaleX(.08) scaleY(.01);transform-origin:bottom}to{opacity:0;transform:translate(var(--genie-x,0px), var(--genie-y,260px)) scaleX(.08) scaleY(.01);transform-origin:bottom}}.win--opening{animation:.28s cubic-bezier(.22,1,.36,1) both winOpen}.win--open-delayed{animation-delay:.18s}.win--minimizing{pointer-events:none;animation:.38s cubic-bezier(.5,0,.85,.7) forwards winGenie}.resize-handle{z-index:2;cursor:se-resize;color:#ffffff59;font-size:13px;transition:color .15s;position:absolute;bottom:6px;right:8px}.resize-handle:hover{color:#ffffffb3}.dock-zone{z-index:100;padding:40px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.dock{-webkit-backdrop-filter:blur(10px)saturate(140%)brightness(.95);backdrop-filter:blur(10px)saturate(140%)brightness(.95);background:#0a0a144d;border:1px solid #ffffff24;border-top-color:#ffffff2e;border-radius:9999px;align-items:center;gap:0;padding:6px;transition:transform .25s cubic-bezier(.25,.46,.45,.94);display:flex;overflow:hidden;box-shadow:inset 0 0 0 .5px #ffffff0d,inset 0 1px #ffffff1f,0 4px 16px #0000001a}.glass-distort .dock{-webkit-backdrop-filter:url(#glass-distortion)blur(4px)saturate(120%)brightness(.95);backdrop-filter:url(#glass-distortion)blur(4px)saturate(120%)brightness(.95)}@keyframes pillIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pillOut{0%{opacity:1;transform:scale(1)}15%{opacity:1;transform:scale(1.06)}to{opacity:0;transform:scale(.5)}}.dock-pill{-webkit-backdrop-filter:blur(32px)saturate(180%);backdrop-filter:blur(32px)saturate(180%);pointer-events:none;z-index:0;background:#ffffff14;border:1px solid #ffffff2e;border-radius:9999px;width:100px;height:calc(100% - 12px);transition:left .32s cubic-bezier(.34,1.4,.64,1);animation:.3s cubic-bezier(.34,1.4,.64,1) forwards pillIn;position:absolute;top:6px;overflow:hidden;box-shadow:inset 0 0 0 .5px #ffffff0f,inset 0 1px #ffffff38,inset 0 -1px #0003,0 8px 24px #00000059}.dock-pill--exit{animation:.2s cubic-bezier(.5,0,.8,.6) forwards pillOut}.dock-pill:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff2e 0%,#ffffff0a 40%,#fff0 60%,#ffffff0f 100%);position:absolute;inset:0}.dock-pill:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff1f 0%,#0000 40%);position:absolute;inset:0}.dock-btn{z-index:1;cursor:pointer;color:#ffffff73;background:0 0;border:none;border-radius:9999px;width:100px;height:42px;transition:color .2s;position:relative;overflow:hidden}.dock-glow{filter:blur(20px);pointer-events:none;opacity:0;z-index:0;background:radial-gradient(circle,#fff3 0%,#0000 70%);border-radius:50%;width:160px;height:160px;transition:opacity .3s;position:absolute;transform:translate(-50%,-50%)}.dock-btn:hover{color:#ffffffe6}.dock-btn--active{color:#fff}.dock-btn-scroll{flex-direction:column;transition:transform .3s cubic-bezier(.34,1.3,.64,1);display:flex}.dock-btn:hover .dock-btn-scroll,.dock-btn--active .dock-btn-scroll{transform:translateY(-42px)}.dock-btn-icon,.dock-btn-label{flex-shrink:0;justify-content:center;align-items:center;height:42px;display:flex}.dock-btn-icon i,.dock-btn-icon svg{font-size:18px}.dock-btn-label{letter-spacing:.06em;text-transform:uppercase;color:#fff;font-size:11px;font-weight:400}.glass-tag{letter-spacing:.04em;color:#ffffffbf;background:#ffffff1f;border:.5px solid #fff3;border-radius:9999px;margin:4px 8px 4px 0;padding:3px 9px;font-size:12px;font-weight:500;display:inline-block}.profile-divider{background:#ffffff1a;height:.5px;margin:14px 0}.profile-actions{gap:8px;display:flex}.profile-btn{color:#ffffffd9;background:#ffffff14;border:.5px solid #ffffff26;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 0;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.profile-btn:hover{color:#fff;background:#ffffff26}.stat-row{gap:8px;margin-top:12px;display:flex}.stat-card{text-align:center;background:#ffffff14;border:.5px solid #ffffff26;border-radius:12px;flex:1;padding:10px 8px}.stat-num{color:#fff;font-size:20px;font-weight:600;line-height:1.2}.stat-lbl{color:#ffffff80;letter-spacing:.03em;margin-top:3px;font-size:10px}.task-row{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:7px 0;display:flex}.task-row:last-child{border-bottom:none}.chk{cursor:pointer;background:#ffffff0f;border:1.5px solid #ffffff4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:17px;height:17px;transition:all .2s;display:flex}.chk.done{background:#27c93fcc;border-color:#27c93fe6}.task-lbl{color:#ffffffd9;font-size:13px}.task-lbl.done{color:#ffffff59;text-decoration:line-through}.msg-row{gap:10px;margin-bottom:12px;display:flex}.msg-row>div:last-child{flex:1;min-width:0}.msg-av{color:#fff;border:.5px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:600;display:flex}.av-a{background:linear-gradient(135deg,#7c3aed,#4f46e5)}.av-b{background:linear-gradient(135deg,#0ea5e9,#0284c7)}.av-c{background:linear-gradient(135deg,#ec4899,#be185d)}.msg-bubble{color:#ffffffd9;background:#ffffff1a;border:.5px solid #ffffff26;border-radius:4px 14px 14px;width:fit-content;max-width:400px;padding:8px 12px;font-size:13px;line-height:1.5}.msg-time{color:#ffffff59;margin-top:3px;padding-left:2px;font-size:10px}.win-body--messages{flex-direction:column;padding:0;display:flex;overflow:hidden}.msg-list{scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;flex:1;padding:16px 18px 12px;overflow-y:auto}.msg-list::-webkit-scrollbar{width:2px}.msg-list::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:2px}.msg-compose{border-top:.5px solid #ffffff14;flex-shrink:0;gap:10px;padding:12px 18px 16px;display:flex}.msg-compose-av{background:#ffffff1f;border:.5px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;margin-top:2px;display:flex;overflow:hidden}.msg-compose-initial{color:#ffffffe6;letter-spacing:.05em;text-transform:uppercase;text-align:center;cursor:text;background:0 0;border:none;outline:none;width:100%;height:100%;padding:0;font-family:inherit;font-size:16px;font-weight:600;line-height:30px;transform:scale(.688)}.msg-compose-initial::placeholder{letter-spacing:0;text-transform:none;color:#ffffff4d;font-weight:400}.msg-compose-fields{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.msg-compose-input-row{align-items:flex-start;gap:6px;display:flex}.msg-compose-text{transform-origin:0 0;color:#ffffffe6;resize:none;box-sizing:border-box;background:#ffffff12;border:.5px solid #ffffff1f;border-radius:16px;outline:none;width:133.333%;padding:7px 10px;font-family:inherit;font-size:16px;line-height:1.5;transform:scale(.75)}.msg-compose-text::placeholder{color:#ffffff40}.msg-compose-text:focus{background:#ffffff1a;border-color:#ffffff4d}.msg-compose-count{color:#ffffff40;padding-left:2px;font-size:10px}.msg-compose-send{color:#ffffffd9;cursor:pointer;background:#ffffff1f;border:.5px solid #ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,opacity .15s;display:flex}.msg-compose-send:hover:not(:disabled){background:#ffffff38}.msg-compose-send:disabled{opacity:.3;cursor:default}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)rotate(-6deg)}35%{transform:translate(4px)rotate(6deg)}55%{transform:translate(-3px)rotate(-4deg)}75%{transform:translate(3px)rotate(4deg)}90%{transform:translate(-1px)}}.msg-compose-av.is-shaking{border-color:#ff646499;animation:.45s shake}.msg-skeleton{gap:10px;margin-bottom:12px;display:flex}.msg-skeleton-av{background:#ffffff14;border-radius:50%;flex-shrink:0;width:30px;height:30px;animation:1.4s ease-in-out infinite shimmer}.msg-skeleton-body{flex-direction:column;gap:6px;padding-top:4px;display:flex}.msg-skeleton-bubble{background:#ffffff14;border-radius:4px 14px 14px;height:32px;animation:1.4s ease-in-out infinite shimmer}.msg-skeleton-time{background:#ffffff0f;border-radius:4px;width:60px;height:8px;animation:1.4s ease-in-out .2s infinite shimmer}.projects-root{isolation:isolate;width:calc(100% + 36px);height:calc(100% + 32px);margin:-16px -18px;overflow:hidden;transform:translateZ(0)}.projects-view{padding:14px 16px 16px;position:absolute;inset:0;overflow:hidden auto}.proj-gallery{grid-template-columns:1fr 1fr;gap:10px;padding:4px 2px;display:grid}.proj-card{appearance:none;cursor:pointer;text-align:left;color:inherit;background:#0a0a1447;border:.5px solid #ffffff29;border-top-color:#ffffff38;border-radius:14px;flex-direction:column;transition:transform .24s cubic-bezier(.34,1.4,.64,1),box-shadow .24s;display:flex;overflow:hidden;box-shadow:inset 0 0 0 .5px #ffffff0d,inset 0 1px #ffffff24,0 4px 14px #0000002e}@media (hover:hover) and (pointer:fine){.proj-card:hover{transform:translateY(-5px)scale(1.02);box-shadow:inset 0 0 0 .5px #ffffff14,inset 0 1px #ffffff38,0 0 0 1px #ffffff1f,0 14px 36px #0000004d}}.proj-card:active{transform:scale(.96);box-shadow:inset 0 0 0 .5px #ffffff0a,inset 0 1px #ffffff1a,0 2px 8px #0003}.proj-thumb{aspect-ratio:16/9;border-radius:8px;flex-shrink:0;width:calc(100% - 16px);margin:8px 8px 0;position:relative;overflow:hidden}.proj-thumb-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}@supports not (aspect-ratio:1){.proj-thumb{aspect-ratio:unset;height:0;padding-top:56.25%}}.proj-card-body{z-index:2;padding:8px 10px 10px;position:relative}.proj-card-title{color:#ffffffeb;letter-spacing:-.01em;transform-origin:0 0;margin-bottom:2px;font-size:14px;font-weight:450;line-height:1.5}.proj-card-meta{color:#fff6;letter-spacing:.03em;font-size:12px;line-height:1.5}.projects-view--detail.is-entering,.projects-view--detail.is-exiting{z-index:3}.proj-gallery-layer.is-entering,.proj-gallery-layer.is-exiting{z-index:2}.projects-view.is-entering,.projects-view.is-exiting{will-change:opacity, background-color;transform:translateZ(0)}.projects-view.is-exiting{pointer-events:none}.projects-view::-webkit-scrollbar{width:2px}.projects-view::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:2px;transition:background .3s}.projects-view.is-entering::-webkit-scrollbar-thumb{background:0 0}.projects-view.is-exiting::-webkit-scrollbar-thumb{background:0 0}.projects-view{scrollbar-color:#ffffff40 transparent;scrollbar-width:thin}.projects-view.is-entering,.projects-view.is-exiting{scrollbar-color:transparent transparent}@keyframes projCardOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)scale(.97)}}@keyframes projCardIn{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}@keyframes projCardSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.proj-gallery-layer.is-exiting .proj-card{animation:.26s forwards projCardOut}.proj-gallery-layer.is-entering .proj-card{animation:.3s both projCardSlideIn;animation-delay:calc(.1s + var(--i,0) * 50ms)}.proj-gallery-layer.is-exiting .proj-card.is-hero{opacity:0;animation:none}@keyframes projHeroReveal{0%{opacity:0}to{opacity:1}}.proj-gallery-layer.is-entering .proj-card.is-hero{animation:.24s both projHeroReveal}.proj-gallery-layer.is-entering .proj-card.is-hero .proj-thumb{animation:.1s .3s both projHeroReveal}.projects-view--detail{background-color:#0a0a1433}@keyframes projBgIn{0%{background-color:#0a0a1400}to{background-color:#0a0a1433}}@keyframes projBgOut{0%{background-color:#0a0a1433}to{background-color:#0a0a1400}}.projects-view--detail.is-entering{animation:.44s both projBgIn}.projects-view--detail.is-exiting{animation:.3s forwards projBgOut}.is-safari .projects-view--detail{background-color:#0000}.is-safari .projects-view--detail.is-entering,.is-safari .projects-view--detail.is-exiting{animation:none}@keyframes projContentIn{0%{opacity:0;transform:translateY(12px)}}@keyframes projContentOut{to{opacity:0;transform:translateY(8px)}}.projects-view--detail.is-entering .proj-back{animation:.32s ease-out 60ms both projContentIn}.projects-view--detail.is-entering .proj-detail-title,.projects-view--detail.is-entering .proj-detail-role{animation:.32s ease-out .24s both projContentIn}.projects-view--detail.is-entering .proj-detail-tags{animation:.32s ease-out .4s both projContentIn}.projects-view--detail.is-entering .proj-detail-fade,.projects-view--detail.is-entering .proj-detail-placeholder{animation:.32s ease-out .54s both projContentIn}.projects-view--detail.is-exiting .proj-back,.projects-view--detail.is-exiting .proj-detail-title,.projects-view--detail.is-exiting .proj-detail-fade{animation:.14s ease-in both projContentOut}.proj-detail-thumb,.proj-detail-title{z-index:1;will-change:transform;position:relative}.proj-back{color:#fffc;cursor:pointer;letter-spacing:.01em;background:#ffffff14;border:.5px solid #ffffff26;border-radius:9999px;align-items:center;gap:6px;margin-bottom:14px;padding:5px 12px 5px 8px;font-size:12px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.proj-back:hover{color:#fff;background:#ffffff24}.proj-detail-thumb{aspect-ratio:16/9;border-radius:12px;flex-shrink:0;width:100%;margin-bottom:14px;position:relative;overflow:hidden}@supports not (aspect-ratio:1){.proj-detail-thumb{aspect-ratio:unset;height:0;padding-top:56.25%}}.proj-detail-title{color:#fffffff5;letter-spacing:-.01em;transform-origin:0 0;margin-bottom:3px;width:100%;max-width:700px;margin-inline:auto;font-size:17px;font-weight:450;line-height:1.25}.proj-detail-role{color:#ffffff73;letter-spacing:.03em;margin-bottom:12px;font-size:11px}.proj-detail-tags{margin-top:8px;margin-bottom:12px;flex-wrap:wrap;width:100%;max-width:700px;margin-inline:auto;display:flex}.proj-detail-desc{color:#ffffffb8;margin:0 0 18px;font-size:12.5px;line-height:1.65}.notion-content{flex-direction:column;gap:0;display:flex}.notion-content p{color:#ffffffe0;width:100%;max-width:700px;margin:0 auto 10px;font-size:13.5px;line-height:1.65}.notion-content h1,.notion-content h2,.notion-content h3{color:#fffffff2;letter-spacing:-.01em;width:100%;max-width:700px;margin:20px auto 6px;font-weight:550;line-height:1.2}.notion-content h1:first-child,.notion-content h2:first-child,.notion-content h3:first-child{margin-top:0}.notion-content h1{font-size:16px}.notion-content h2{font-size:14.5px}.notion-content h3{font-size:13.5px}.notion-content ul{flex-direction:column;gap:4px;width:100%;max-width:700px;margin:0 auto 10px;padding-left:16px;display:flex}.notion-content li{color:#ffffffe0;font-size:13.5px;line-height:1.55}.notion-content img{border-radius:8px;width:100%;height:auto;margin:8px 0 14px;display:block}.notion-content video,.notion-content iframe{aspect-ratio:16/9;border:none;border-radius:8px;width:100%;margin:8px 0 14px;display:block}.notion-content .callout{color:#ffffffb8;background:#ffffff12;border-radius:8px;align-items:flex-start;gap:8px;width:100%;max-width:700px;margin:4px auto 10px;padding:10px 12px;font-size:13.5px;line-height:1.55;display:flex}.notion-content .callout-icon{flex-shrink:0}.notion-content .notion-link{color:#ffffffe6;text-underline-offset:2px;cursor:pointer;-webkit-text-decoration:underline #ffffff59;text-decoration:underline #ffffff59}@media (hover:hover) and (pointer:fine){.notion-content .notion-link:hover{text-decoration-color:#fffc}}.proj-detail-placeholder{opacity:.3;flex-direction:column;gap:8px;display:flex}.proj-card--skeleton{pointer-events:none;box-shadow:none;background:0 0;border:none;flex-direction:column;gap:0;padding:0;display:flex}.proj-sk-thumb{aspect-ratio:4/3;width:100%;animation:1.4s ease-in-out infinite shimmer;animation-delay:calc(var(--i,0) * .15s);background:#ffffff14;border-radius:10px;margin-bottom:8px}.proj-sk-title{width:75%;height:11px;animation:1.4s ease-in-out infinite shimmer;animation-delay:calc(var(--i,0) * .15s + .1s);background:#ffffff14;border-radius:6px;margin:8px 0 6px 10px}.proj-sk-meta{width:30%;height:8px;animation:1.4s ease-in-out infinite shimmer;animation-delay:calc(var(--i,0) * .15s + .2s);background:#ffffff0d;border-radius:4px;margin-left:10px}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}.proj-ph-bar{background:#fff6;border-radius:4px;height:8px}.av-initials{color:#fff;background:linear-gradient(135deg,#7c3aed,#ec4899);border:1px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:17px;font-weight:600;display:flex}@media (width<=640px){.dock-btn{width:90px}.dock-pill{-webkit-backdrop-filter:none;backdrop-filter:none;background:#ffffff1f;width:90px}.resize-handle,.dock-glow{display:none}}@media (hover:none){.dock-glow{display:none}}@keyframes slotToText{0%{transform:translateY(0)}to{transform:translateY(-42px)}}@keyframes slotToIcon{0%{transform:translateY(-42px)}to{transform:translateY(0)}}@media (hover:none){.dock-btn:hover .dock-btn-scroll{transform:translateY(0)}.dock-btn:hover{color:#ffffff73}.dock-btn--active .dock-btn-scroll{animation:.36s cubic-bezier(.34,1.3,.64,1) forwards slotToText}.dock-btn--active{color:#fff}.dock-btn--returning .dock-btn-scroll{animation:.3s cubic-bezier(.34,1.3,.64,1) forwards slotToIcon}}
