:root{--titlebar: #e8e6e6;--titlebar-edge: #cfcdcd;--win-bg: #fbfbfd;--text: #1d1d1f;--muted: #6e6e73;--accent: #2d8cff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}@supports (height: 100dvh){html,body,#root{height:100dvh}}body{overflow:hidden;-webkit-font-smoothing:antialiased;color:var(--text)}button{font-family:inherit}img{display:block}.desktop{position:fixed;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-attachment:scroll;-webkit-user-select:none;user-select:none;overflow:hidden}.icons-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.desktop-icon{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;width:92px;padding:6px 4px;border:0;background:transparent;cursor:pointer;border-radius:8px;text-decoration:none;touch-action:none}.desktop-icon:hover{background:#5096ff38;backdrop-filter:blur(20px) saturate(2);-webkit-backdrop-filter:blur(20px) saturate(2);border:.5px solid rgba(140,200,255,.45);box-shadow:inset 0 1px #ffffff40,0 2px 10px #00000026}.desktop-icon:active{transform:translate(-50%,-50%) scale(.96)}.desktop-icon--dragging{cursor:grabbing;z-index:100;transform:translate(-50%,-50%)}.desktop-icon--dragging:active{transform:translate(-50%,-50%)}.icon-thumb{width:56px;height:56px;font-size:46px;line-height:56px;text-align:center;object-fit:contain;border-radius:12px}img.icon-thumb{object-fit:contain}img.icon-thumb[src*=uic-global]{object-fit:cover}.icon-label{font-size:12px;color:#fff;text-align:center;line-height:1.15;padding:1px 5px;border-radius:4px;text-shadow:0 1px 2px rgba(0,0,0,.7)}.desktop-icon:hover .icon-label{background:#5096ff59;backdrop-filter:blur(20px) saturate(2);-webkit-backdrop-filter:blur(20px) saturate(2);border:.5px solid rgba(140,200,255,.5);box-shadow:inset 0 1px #ffffff4d,0 2px 8px #0003;text-shadow:none}.windows-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.window{position:absolute;top:0;left:0;pointer-events:auto;width:360px;max-width:92vw;background:var(--win-bg);border-radius:11px;box-shadow:0 22px 60px #0006,0 0 0 .5px #0003;display:flex;flex-direction:column;max-height:78vh;overflow:hidden}.titlebar{height:38px;flex:0 0 auto;position:relative;display:flex;align-items:center;padding:0 12px;background:linear-gradient(var(--titlebar),#dedcdc);border-bottom:1px solid var(--titlebar-edge);cursor:grab}.titlebar:active{cursor:grabbing}.titlebar-text{position:absolute;left:0;right:0;text-align:center;font-size:13px;font-weight:600;color:#4a4a4e;pointer-events:none;padding:0 78px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lights{display:flex;gap:8px;z-index:1}.light{width:12px;height:12px;border-radius:50%;border:0;padding:0;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;color:#0000008c}.light span{opacity:0}.lights:hover .light span{opacity:1}.light.red{background:#ff5f57;cursor:pointer}.light.yellow{background:#febc2e;cursor:default}.light.green{background:#28c840;cursor:default}.window-body{overflow:auto;padding:16px}.window-body:has(.pdf-frame){padding:0;display:flex}.pdf-frame{flex:1;border:none;min-height:520px;border-radius:0 0 12px 12px}.locked-body{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;text-align:center}.locked-icon{font-size:48px;line-height:1}.locked-msg{font-size:13px;color:var(--text-2, #888);max-width:240px}.locked-form{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.locked-input{width:200px;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#ffffff14;color:inherit;font-size:14px;text-align:center;outline:none;transition:border-color .15s}.locked-input:focus,.locked-input:focus-within{border-color:#fff6}.locked-input--error{border-color:#ff4d4d;animation:shake .25s ease}.locked-error{font-size:12px;color:#ff4d4d}.locked-btn{padding:7px 28px;border-radius:8px;border:none;background:#ffffff26;color:inherit;font-size:13px;cursor:pointer;transition:background .15s}.locked-btn:hover{background:#ffffff40}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.info-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}.info-thumb{width:46px;height:46px;font-size:38px;line-height:46px;text-align:center;border-radius:10px;object-fit:cover;flex:0 0 auto}.info-title{font-size:15px;font-weight:700}.info-subtitle{font-size:13px;color:var(--muted)}.info-body{font-size:13px;line-height:1.5;color:#333;margin:0 0 12px;white-space:pre-line}.disclosure{border-top:1px solid #e7e7ea;padding-top:8px;margin-top:6px}.disclosure-h{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;padding:2px 0;cursor:pointer;font-size:13px;font-weight:600;color:#3a3a3c}.tri{font-size:9px;transition:transform .15s;display:inline-block}.tri.open{transform:rotate(90deg)}.details{margin:8px 0 6px}.detail-row{display:flex;gap:8px;font-size:13px;padding:2px 0}.detail-row dt{color:var(--muted);min-width:78px}.detail-row dd{margin:0;color:#2a2a2c}.detail-link{color:#0071e3;text-decoration:none}.detail-link:hover{text-decoration:underline}.preview{margin-top:8px}.preview-media{width:100%;border-radius:8px;max-height:220px;object-fit:cover;font-size:64px;text-align:center;line-height:1.4;background:#f0f0f2}.skills .skill-group{margin-bottom:14px}.skill-group-name{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}.badges{display:flex;flex-wrap:wrap;gap:7px}.badge{font-size:12.5px;background:#ececf0;color:#2a2a2c;padding:4px 10px;border-radius:999px}.gallery .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.thumb{border:0;padding:0;background:none;cursor:pointer;border-radius:8px;overflow:hidden;aspect-ratio:1}.thumb img{width:100%;height:100%;object-fit:cover}.thumb:hover img{transform:scale(1.05);transition:transform .2s}.lightbox{border:0;background:none;padding:0;width:100%;cursor:zoom-out;position:relative}.lightbox img{width:100%;border-radius:8px}.lightbox-hint{position:absolute;bottom:8px;right:10px;font-size:11px;color:#fff;background:#00000073;padding:2px 7px;border-radius:6px}.video-frame{width:100%;aspect-ratio:16 / 9;border:0;border-radius:8px;background:#000}.video-empty{text-align:center;color:var(--muted);font-size:13px}.video-poster{font-size:64px;margin-bottom:8px}.video-empty code{background:#ececf0;padding:1px 5px;border-radius:4px;font-size:12px}.contact-btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:9px 16px;border-radius:9px;font-size:13px;font-weight:600}.contact-btn:hover{filter:brightness(1.06)}.folder{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.folder-item{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:none;cursor:pointer;padding:8px 4px;border-radius:8px}.folder-item:hover{background:#ececf0}.folder-icon{width:44px;height:44px;font-size:36px;line-height:44px;text-align:center;border-radius:9px;object-fit:cover}.folder-label{font-size:12px;color:#2a2a2c;text-align:center}.dock{position:absolute;bottom:10px;left:50%;transform:translate(-50%);z-index:8000;display:flex;align-items:flex-end;gap:10px;padding:8px 12px;border-radius:22px;background:linear-gradient(180deg,#ffffff6b,#ffffff24 55%,#ffffff14);border:.5px solid rgba(255,255,255,.55);box-shadow:0 8px 32px #00000029,inset 0 1px #ffffffb8,inset 0 -.5px #ffffff2e;backdrop-filter:blur(40px) saturate(190%);-webkit-backdrop-filter:blur(40px) saturate(190%)}.dock-item-wrap{position:relative;display:block}.dock-item{border:0;background:none;padding:0;cursor:pointer;display:block;transition:transform .15s ease;text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.dock-item-wrap:hover .dock-item{transform:translateY(-8px) scale(1.18)}.dock-tooltip{position:absolute;bottom:calc(100% + 22px);left:50%;transform:translate(-50%) translateY(4px);padding:4px 11px;border-radius:8px;font-size:12px;font-weight:500;color:#fff;white-space:nowrap;background:#ffffff1f;border:.5px solid rgba(255,255,255,.28);backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);box-shadow:0 2px 12px #00000040,inset 0 1px #ffffff2e;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.dock-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#ffffff2e}.dock-item-wrap:hover .dock-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.dock-icon{width:50px;height:50px;border-radius:13px;font-size:34px;line-height:50px;text-align:center;object-fit:contain}img.dock-icon{object-fit:contain}.dock-badge{display:block;color:#fff;font-size:24px;font-weight:700}.dock-sep{width:1px;height:44px;background:#ffffff73;margin:0 2px;align-self:center}.context-menu{position:absolute;z-index:9500;min-width:200px;background:#f5f5f7d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:.5px solid rgba(0,0,0,.15);border-radius:10px;box-shadow:0 12px 40px #0000004d;padding:8px}.context-title{font-size:12px;color:var(--muted);padding:2px 6px 8px}.wallpaper-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.wallpaper-swatch{aspect-ratio:16/10;border-radius:6px;border:2px solid transparent;background-size:cover;background-position:center;cursor:pointer}.wallpaper-swatch.active{border-color:var(--accent)}@media (max-width: 768px){.window--mobile{position:fixed;left:12px;right:12px;top:16px;bottom:88px;width:auto!important;max-width:none;max-height:none;border-radius:16px}.window--mobile .titlebar{border-radius:16px 16px 0 0}.window--mobile .light{width:18px;height:18px;font-size:13px}.window--mobile .lights{gap:12px}.window--mobile .titlebar-text{padding:0 110px;font-size:14px}.icons-layer{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:16px 8px 88px;align-content:start;overflow-y:auto}.desktop-icon--mobile{position:static!important;transform:none!important;width:100%;padding:8px 4px}.desktop-icon--mobile:hover{backdrop-filter:none;-webkit-backdrop-filter:none;background:none;border:none;box-shadow:none}.icon-thumb{width:48px;height:48px;font-size:38px;line-height:48px}.icon-label{font-size:10px}.dock{gap:4px;padding:6px 10px;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}.dock::-webkit-scrollbar{display:none}.dock-icon{width:40px;height:40px;font-size:26px;line-height:40px}.dock-item-wrap:hover .dock-item{transform:none}.dock-tooltip{display:none}.dock-sep{height:34px;margin:0 1px}}
