:root{--desktop-blue:#2971f7;--nav-bg:#f5f9ff;--nav-border:#0542b4;--ink:#1d1e1c;--white:#fff;--wallpaper-base:var(--desktop-blue);--wallpaper-dot:#fff3;--window-chrome:var(--nav-bg);--window-border:var(--nav-border);--text-strong:var(--white);--text-muted:#ffffffb3;--shadow-rgba:7, 30, 80;--folder-1-front:#fad844;--folder-1-back:#dbbd3e;--folder-2-front:#f7824d;--folder-2-back:#d2a591;--folder-3-front:#7eeea4;--folder-3-back:#237d4a;--folder-4-front:#ffadff;--folder-4-back:#d161e2;--folder-5-front:#72a0fe;--folder-5-back:#135cb5;--folder-6-front:#a5e9fe;--folder-6-back:#2aabda;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-flap:cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quart:cubic-bezier(.165, .84, .44, 1);--ease-in-out-cubic:cubic-bezier(.65, 0, .35, 1);--dur-fast:.15s;--dur-normal:.28s;--dur-slow:.52s;--dur-flash:.38s;--dur-modal-in:.42s;--dur-modal-out:.3s;--stagger:70ms;--breathe-period:4.2s;--col:clamp(150px, 13.4vw, 192.92px);--grid-gap-x:clamp(22px, 3.5vw, 50px);--grid-gap-y:clamp(20px, 2.2vw, 29px);--label-size:clamp(18px, 1.45vw, 24px);--shadow-rest:0 2px 4px rgba(var(--shadow-rgba), .16), 0 8px 16px rgba(var(--shadow-rgba), .18);--shadow-hover:0 8px 16px rgba(var(--shadow-rgba), .22), 0 24px 48px rgba(var(--shadow-rgba), .3);--z-wallpaper:0;--z-window:10;--z-folders:20;--z-folder-hover:30;--z-flap:35;--z-scrim:40;--z-modal:50;--z-loader:100;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=neon]{--desktop-blue:#05010f;--wallpaper-base:#05010f;--wallpaper-dot:#00ffe02e;--nav-bg:#14122b;--window-chrome:#14122b;--nav-border:#3a2f73;--window-border:#3a2f73;--ink:#f0eefe;--text-strong:#f0eefe;--text-muted:#8a86c4;--shadow-rgba:0, 0, 0;--folder-1-front:#00ffe0;--folder-1-back:#00b39c;--folder-2-front:#ff2fd6;--folder-2-back:#b21d95;--folder-3-front:#7a5cff;--folder-3-back:#4a36b0;--folder-4-front:#29ff7a;--folder-4-back:#14b052;--folder-5-front:#ffd84d;--folder-5-back:#b89824;--folder-6-front:#ff5e5e;--folder-6-back:#b03434}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--wallpaper-base);color:var(--text-strong);font-family:Handjet,Segoe UI,system-ui,sans-serif;overflow:hidden}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.nav{z-index:10;background:var(--nav-bg);border-bottom:1px solid var(--nav-border);flex-direction:column;justify-content:center;align-items:flex-start;padding:22px 17px;display:flex;position:absolute;inset:0 0 auto}.nav__controls{align-items:center;gap:6px;display:flex}.win-btn{width:32px;height:32px;color:var(--ink);border:1px solid var(--ink);transition:transform var(--dur-fast) var(--ease-spring), background-color var(--dur-fast) var(--ease-out-quart), border-color var(--dur-fast) var(--ease-out-quart), color var(--dur-fast) var(--ease-out-quart);background:0 0;place-items:center;display:grid}.win-btn__icon{transition:transform var(--dur-fast) var(--ease-spring);display:block}.win-btn:hover{color:var(--white);transform:translateY(-1px)}.win-btn--minimize:hover{background:#febc2e;border-color:#d99a17}.win-btn--maximize:hover{background:#28c840;border-color:#1aa531}.win-btn--close:hover{background:#ff5f57;border-color:#e0443b}.win-btn--close:hover .win-btn__icon{transform:rotate(90deg)}.win-btn:active{transition-duration:90ms;transform:translateY(0)scale(.9)}.win-btn:focus-visible{outline:2px solid var(--nav-border);outline-offset:2px}.folder{z-index:var(--z-folders);width:var(--col);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:21px;display:flex;position:relative}.folder:hover,.folder[data-tapped],.folder[data-opening]{z-index:var(--z-folder-hover)}.folder-drag{aspect-ratio:182/191.077;will-change:transform;width:182px;max-width:94.34%;margin-inline:auto;display:block;position:relative;transform:translate(0)}.folder-magnet{will-change:transform;position:absolute;inset:0;transform:translate(0)}.folder-entrance{opacity:0;transform-origin:bottom;animation:folder-in var(--dur-slow) var(--ease-out-expo) both;animation-delay:var(--enter-delay,0s);position:absolute;inset:0}@keyframes folder-in{0%{opacity:0;transform:translateY(40px)scale(.85)}to{opacity:1;transform:none}}.folder-idle{transform-origin:bottom;animation:folder-breathe var(--breathe-period) var(--ease-in-out-cubic) infinite;will-change:transform;position:absolute;inset:0}@keyframes folder-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.folder-hover{transform-origin:bottom;transition:transform var(--dur-normal) var(--ease-spring);position:absolute;inset:0;transform:translateY(0)scale(1)}.folder:hover .folder-hover,.folder:focus-visible .folder-hover,.folder[data-tapped] .folder-hover{transform:translateY(-12px)scale(1.04)}.folder:active .folder-hover{transition-duration:var(--dur-fast);transform:translateY(-4px)scale(.99)}.folder-visual{perspective:760px;position:absolute;inset:0}.folder-ground{height:46%;box-shadow:var(--shadow-rest);transition:box-shadow var(--dur-normal) var(--ease-out-quart);pointer-events:none;border-radius:12px;position:absolute;bottom:2%;left:5%;right:5%}.folder:hover .folder-ground,.folder:focus-visible .folder-ground,.folder[data-tapped] .folder-ground,.folder[data-opening] .folder-ground{box-shadow:var(--shadow-hover)}.folder__layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.photo-stack{position:absolute;inset:0}.photo-slot{transform:rotate(var(--r,0deg));transform-origin:50%;position:absolute}.photo-fan{transform-origin:bottom;transition:transform .36s var(--ease-spring);transition-delay:calc(var(--i,0) * 28ms);will-change:transform;position:absolute;inset:0;transform:none}.folder:hover .photo-fan,.folder:focus-visible .photo-fan,.folder[data-tapped] .photo-fan{transform:translate(calc((var(--i,0) - 1) * 7px), calc(-12px - var(--i,0) * 5px)) rotate(calc(var(--r,0deg) * .34))}.folder[data-opening] .photo-fan{transform:translate(calc((var(--i,0) - 1) * 13px), calc(-26px - var(--i,0) * 9px)) rotate(calc(var(--r,0deg) * .55));transition-duration:.46s}.photo-tilt{transform-origin:50%;will-change:transform;position:absolute;inset:0;transform:rotate(0)}.photo-idle{transform-origin:50%;animation:photo-float var(--float-dur,3.6s) var(--ease-in-out-cubic) infinite;animation-delay:var(--float-delay,0s);will-change:transform;position:absolute;inset:0}@keyframes photo-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-6px) rotate(calc(var(--drift,0) * 1deg))}}.photo-img{position:absolute;inset:0}.photo-img img{-webkit-user-select:none;user-select:none;width:100%;height:100%}.photo-img--framed{border:3px solid var(--white);background:var(--white);box-shadow:0 2px 6px rgba(var(--shadow-rgba), .18);overflow:hidden}.folder-flap{transform-origin:50% 48%;transform-style:preserve-3d;backface-visibility:hidden;transition:transform var(--dur-slow) var(--ease-flap);transform:rotateX(0)}.folder[data-opening] .folder-flap{transform:rotateX(-118deg)}.folder:hover .folder-idle,.folder:focus-visible .folder-idle,.folder[data-tapped] .folder-idle,.folder[data-opening] .folder-idle,.folder:hover .photo-idle,.folder:focus-visible .photo-idle,.folder[data-tapped] .photo-idle,.folder[data-opening] .photo-idle{animation-play-state:paused}.folder__label{font-variation-settings:"ELGR" 1, "ELSH" 2;font-family:Handjet,system-ui,sans-serif;font-weight:500;font-size:var(--label-size);color:var(--text-strong);text-align:center;opacity:0;transform-origin:top;animation:label-in var(--dur-slow) var(--ease-out-quart) both;animation-delay:var(--enter-delay,0s);transition:transform .18s var(--ease-out-quart), letter-spacing .18s var(--ease-out-quart), text-shadow .18s var(--ease-out-quart);line-height:1}@keyframes label-in{0%{opacity:0}to{opacity:1}}.folder:hover .folder__label,.folder:focus-visible .folder__label,.folder[data-tapped] .folder__label{letter-spacing:.4px;text-shadow:0 1px 10px rgba(var(--shadow-rgba), .35);transform:scale(1.04)}.folder:focus-visible{outline:none}.folder:focus-visible .folder-visual{outline-offset:7px;border-radius:8px;outline:2.5px solid #ffffffe6}@media (prefers-reduced-motion:reduce){.folder-entrance,.folder-idle,.photo-idle,.photo-fan,.folder-flap,.folder__label{animation:none!important}.folder-entrance,.folder__label{opacity:1!important}}.loader{z-index:var(--z-loader);color:#4ef0c0;background:#05010f;place-items:center;font-family:Handjet,ui-monospace,SFMono-Regular,monospace;display:grid;position:fixed;inset:0}.loader__scanlines{pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#00000059 3px 4px);animation:.11s steps(2,end) infinite crt-flicker;position:absolute;inset:0}@keyframes crt-flicker{0%,to{opacity:.5}50%{opacity:.62}}.loader__terminal{width:min(560px,82vw);padding:0 4px;position:relative}.loader__lines{white-space:pre-wrap;text-shadow:0 0 8px #4ef0c073;margin:0 0 26px;font-size:clamp(15px,2.4vw,21px);line-height:1.7}.loader__line{display:block}.loader__cursor{vertical-align:text-bottom;background:#4ef0c0;width:.6em;height:1.05em;margin-left:2px;animation:1s step-end infinite cursor-blink;display:inline-block;box-shadow:0 0 10px #4ef0c0b3}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.loader__bar{background:#4ef0c014;border:1.5px solid #4ef0c08c;height:14px;overflow:hidden}.loader__bar-fill{background:linear-gradient(90deg,#2bd6a0,#4ef0c0);height:100%;transition:width 90ms linear;box-shadow:0 0 12px #4ef0c099}.loader__pct{letter-spacing:1px;opacity:.85;margin-top:8px;font-size:clamp(13px,1.8vw,16px)}.loader__flash{opacity:0;pointer-events:none;animation:loader-flash var(--dur-flash) var(--ease-out-quart) forwards;background:#fff;position:absolute;inset:0}@keyframes loader-flash{0%{opacity:0}60%{opacity:1}to{opacity:1}}@media (prefers-reduced-motion:reduce){.loader__scanlines,.loader__cursor{animation:none!important}.loader__flash{display:none}}.gallery{z-index:var(--z-modal);color:var(--text-strong);animation:gallery-in var(--dur-modal-in) var(--ease-out-quart) both;flex-direction:column;padding:clamp(16px,4vw,48px);display:flex;position:fixed;inset:0}.gallery--closing{animation:gallery-out var(--dur-modal-out) var(--ease-out-quart) both}@keyframes gallery-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes gallery-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}.gallery__bar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(14px,3vh,30px);display:flex}.gallery__title{font-variation-settings:"ELGR" 1, "ELSH" 2;letter-spacing:.5px;text-shadow:0 2px 18px rgba(var(--shadow-rgba), .4);font-family:Handjet,system-ui,sans-serif;font-size:clamp(28px,5vw,56px);font-weight:600;line-height:1}.gallery__close{width:44px;height:44px;color:var(--text-strong);transition:transform var(--dur-fast) var(--ease-spring), background-color var(--dur-fast) var(--ease-out-quart);background:#ffffff1f;border:1px solid #ffffff59;border-radius:50%;place-items:center;display:grid}.gallery__close:hover{background:#ffffff38;transform:rotate(90deg)}.gallery__close:focus-visible{outline:2px solid var(--text-strong);outline-offset:3px}.gallery__board{flex-wrap:wrap;flex:1;place-content:flex-start center;gap:clamp(18px,3vw,40px);min-height:0;padding:clamp(8px,2vh,20px) 4px;display:flex;overflow:auto}.polaroid{--tilt:0deg;width:clamp(150px,22vw,230px);box-shadow:var(--shadow-rest);transform:rotate(var(--tilt));transition:transform var(--dur-normal) var(--ease-spring), box-shadow var(--dur-normal) var(--ease-out-quart);animation:polaroid-drop var(--dur-modal-in) var(--ease-out-quart) both;background:#fffdf8;border-radius:3px;margin:0;padding:12px 12px 16px}@keyframes polaroid-drop{0%{opacity:0;transform:translateY(24px) rotate(var(--tilt)) scale(.9)}to{opacity:1;transform:rotate(var(--tilt))}}.polaroid:hover{box-shadow:var(--shadow-hover);z-index:1;transform:rotate(0)scale(1.05)}.polaroid__frame{aspect-ratio:1;background:#e9e6df;overflow:hidden}.polaroid__frame img{width:100%;height:100%}.polaroid__caption{font-variation-settings:"ELGR" 1, "ELSH" 2;text-align:center;color:#4a4a4a;margin-top:10px;font-family:Handjet,system-ui,sans-serif;font-size:17px}@media (prefers-reduced-motion:reduce){.gallery,.gallery--closing,.polaroid{animation:none!important}}.desktop{background:var(--wallpaper-base);width:100%;height:100%;min-height:100svh;transition:background-color .6s var(--ease-out-quart);position:relative;overflow:hidden}.desktop__pattern{z-index:var(--z-wallpaper);opacity:.2;mix-blend-mode:plus-lighter;pointer-events:none;transform-origin:50%;animation:wallpaper-in .9s var(--ease-out-quart) both;position:absolute;inset:-40px}.desktop__dots{will-change:transform;background-image:url(/assets/decor/stars-bg.png);background-position:0 0;background-size:17.5px 19.5px;position:absolute;inset:0}@keyframes wallpaper-in{0%{opacity:0;transform:scale(.96)}to{opacity:.2;transform:scale(1)}}.desktop__window{z-index:var(--z-window);transform-origin:50%;animation:window-drop .72s var(--ease-spring) backwards;transition:transform var(--dur-slow) var(--ease-spring), opacity var(--dur-slow) var(--ease-spring);position:absolute;inset:0}@keyframes window-drop{0%{opacity:0;transform:translateY(-100%)}55%{opacity:1}to{opacity:1;transform:translateY(0)}}.desktop__stage{height:100%;transition:transform var(--dur-normal) var(--ease-out-quart);place-items:center;padding:clamp(92px,12vh,130px) 24px 32px;display:grid;position:relative;overflow:auto}.folder-grid{align-items:center;gap:var(--grid-gap-y);flex-direction:column;display:flex}.folder-grid__row{justify-content:center;gap:var(--grid-gap-x);flex-wrap:wrap;display:flex}.scrim{z-index:var(--z-scrim);pointer-events:none;opacity:0;transition:opacity var(--dur-normal) var(--ease-out-quart);background:radial-gradient(125% 125% at 50% 45%,#00000085 32%,#000c 100%);position:absolute;inset:0}.is-dimmed .scrim{opacity:1}.is-dimmed .desktop__stage{transform:scale(.98)}.is-still .folder-idle,.is-still .photo-idle{animation-play-state:paused}.is-minimized .desktop__window{opacity:0;pointer-events:none;transform:scale(.02)}.desktop--close .desktop__stage{animation:window-shake .5s var(--ease-out-quart)}.desktop--maximize .desktop__stage{animation:stage-pop .55s var(--ease-spring)}@keyframes window-shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes stage-pop{0%,to{transform:scale(1)}45%{transform:scale(1.04)}}.folder__layer path{transition:fill .6s var(--ease-out-quart)}@media (prefers-reduced-motion:reduce){.desktop__window,.desktop__pattern,.desktop--close .desktop__stage,.desktop--maximize .desktop__stage{animation:none!important}.desktop__pattern{opacity:.2}}
