/* Interactive desktop shell. Project cards and case galleries are unchanged. */
:root{--desktop-header-height:44px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.site-header{position:relative;z-index:10;gap:20px;background:#f5f4eedf;backdrop-filter:blur(12px)}
.system-status{gap:12px}.desktop-tool{width:40px;height:40px;min-height:40px;flex-shrink:0;background:transparent;border-radius:6px;display:grid;place-items:center;padding:0;color:inherit}
.desktop-tool svg{display:block;width:18px;height:18px;grid-area:1/1}.desktop-tool:hover{background:#3345330d}.desktop-tool:active{background:#3345331c}.desktop-tool:focus-visible{outline:2px solid #456684;outline-offset:0}
.desktop-light .light-sun,.desktop-light[aria-pressed=true] .light-moon{display:none}.desktop-light[aria-pressed=true] .light-sun{display:block}.desktop-light[aria-pressed=true]{background:#33453312}.desktop-time{font-size:11px}
.desktop-room{height:calc(100svh - var(--desktop-header-height));min-height:calc(100svh - var(--desktop-header-height));max-height:none;padding:0;overflow:hidden;touch-action:pan-x pan-y}
.room-art{transition:filter .7s,opacity .7s}.desktop-room::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(135deg,#1929481a,#694b2426);opacity:0;transition:opacity .7s}
html[data-desktop-theme=evening] .room-art{filter:brightness(.53) saturate(.8)}html[data-desktop-theme=evening] .desktop-room::after{opacity:1}
html[data-desktop-theme=evening] .site-header{background:#e5e4dcf5}
.desktop-folders{display:block;position:absolute;inset:0;max-width:none;margin:0;pointer-events:none}
.desktop-icon{position:absolute;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:104px;height:112px;min-width:0;gap:14px;padding:14px 2px 2px;font-size:12px;text-align:center;border-radius:10px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;pointer-events:auto;touch-action:none;transition:background .15s}
.desktop-folder{left:clamp(24px,5.5vw,80px);top:48px;cursor:grab}
.desktop-folder:nth-child(even){left:calc(clamp(24px,5.5vw,80px) + 136px)}.desktop-folder:nth-child(n+3){top:192px}
.desktop-icon>span:last-child{display:block;max-width:104px;white-space:normal;padding:4px 8px;border:1px solid #ffffff5c;border-radius:5px;background:#f8f8f0ed;color:#2d372d;box-shadow:0 2px 8px #23332b1a;font-size:11px;line-height:1.25}
.desktop-folder small,.desktop-trash small{display:inline-block;font-size:9px;padding:1px 4px;vertical-align:1px;margin-left:3px;border-radius:8px;background:#386f9e;color:#fff}
.desktop-icon:hover{translate:none;background:#ffffff21}.desktop-icon:focus-visible{outline:2px solid #f5faff;outline-offset:2px;background:#a2c7e742;box-shadow:0 0 0 4px #45668466}
.desktop-icon .folder-shape{flex-shrink:0;width:76px;height:52px;pointer-events:none}
.desktop-icon.is-dragging{z-index:5;cursor:grabbing;background:#c9e2f15c;filter:drop-shadow(0 10px 10px #243c342b);opacity:.9}
.desktop-trash{right:clamp(20px,4vw,60px);bottom:24px;cursor:grab}
.trash-shape{position:relative;width:46px;height:52px;display:flex;align-items:center;justify-content:center;gap:5px;flex-shrink:0;border:1px solid #8d9692;border-radius:3px 3px 10px 10px;background:linear-gradient(100deg,#eef2eadd,#aab8b4ed 65%,#d7e0d7e8);box-shadow:inset 3px 0 2px #ffffff8c,4px 6px 8px #273b3b25;transform:perspective(150px) rotateX(-4deg)}
.trash-shape::before{content:'';position:absolute;top:-6px;left:-5px;right:-5px;height:6px;border:1px solid #8b9892;border-radius:3px;background:linear-gradient(#edf3e7,#a7b4ac)}
.trash-shape::after{content:'';position:absolute;top:-11px;width:20px;height:5px;border:1px solid #839189;border-bottom:0;border-radius:4px 4px 0 0;background:#dae2d8}
.trash-shape i{width:2px;height:30px;background:#7c8e836b;box-shadow:1px 0 #ffffffab}.desktop-trash.is-full .trash-shape{background:linear-gradient(110deg,#dfe5d9,#91a59b)}
.desktop-trash.is-full .trash-shape i:nth-child(2){height:48px;transform:rotate(-13deg);background:#ece8d4;width:15px;margin-top:-14px;z-index:-1;border:1px solid #9ea68f}
.desktop-trash.is-drop-target{outline:2px solid #d4e8a7;background:#daecba73;scale:1.08}
.desktop-menu{position:absolute;top:calc(100% + 8px);left:16px;width:288px;padding:8px;border:1px solid #fff9;border-radius:12px;background:#f7f7f0f5;color:#303b30;box-shadow:0 14px 50px #22362b38;backdrop-filter:blur(20px);z-index:20;font-size:12px}
.desktop-menu>p{margin:8px 10px 10px;text-transform:uppercase;font-family:monospace;font-size:9px;letter-spacing:.1em;color:#788170}
.desktop-menu a,.desktop-menu button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:10px 12px;min-height:38px;border-radius:6px;font-size:12px;text-align:left;background:transparent;border:0;color:inherit}
.desktop-menu a:hover,.desktop-menu button:hover,.desktop-menu a:focus-visible,.desktop-menu button:focus-visible{background:#dce6d6;color:#263c27;outline-offset:-2px}
.desktop-menu [data-desktop-action=theme][aria-checked=true]{background:#dde5d3}
.desktop-context{position:fixed;top:0;left:0;z-index:40;width:270px}
.desktop-notice{position:fixed;z-index:100;left:50%;bottom:24px;translate:-50% 0;max-width:min(480px,calc(100vw - 32px));padding:12px 18px;margin:0;border-radius:10px;background:#f8f8f0f2;color:#30402e;box-shadow:0 6px 26px #21352426;border:1px solid #fff9;font-size:12px;line-height:1.5;pointer-events:none;backdrop-filter:blur(12px)}
.trash-content{padding:36px;display:flex;flex-direction:column}.trash-content h2{font-size:40px;line-height:1.1;letter-spacing:-.055em;font-weight:500;margin:0 0 20px}.trash-content>p:not(.section-label){max-width:58ch;font-size:13px;line-height:1.7;color:var(--muted)}
.trash-empty{text-align:center;padding:48px 20px}.trash-empty-mark{display:block;font-size:48px;color:#89987c}.trash-empty h3{font-size:20px;font-weight:400;margin:14px 0}.trash-empty p{font-size:13px;line-height:1.6;color:var(--muted);max-width:35ch;margin:auto}
.trash-content .trash-empty{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px 20px}.trash-content .trash-empty p{margin:0}.trash-items:empty{display:none}
.trash-items{list-style:none;padding:0;margin:30px 0}.trash-items li{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:16px;padding:16px 0;border-top:1px solid #d5dccd;font-size:14px}.trash-items .folder-shape{width:26px;height:20px;box-shadow:none;border-radius:3px}.trash-items .folder-shape::before{width:14px;height:6px;top:-4px;border-radius:3px 4px 0 0}.trash-items button{background:#e3eada;padding:10px 14px;border-radius:6px;font-size:12px;min-height:40px}
.text-file-shape{position:relative;display:flex;align-items:flex-end;justify-content:center;flex-shrink:0;width:46px;height:58px;margin-top:-6px;background:linear-gradient(135deg,#fffef7,#e7ede6);border:1px solid #b0bcb2;border-radius:3px 12px 3px 3px;box-shadow:3px 5px 8px #243d3126;padding:0 0 9px;color:#627e75}
.text-file-shape::before{content:'';position:absolute;right:-1px;top:-1px;width:13px;height:13px;background:linear-gradient(45deg,#d0dcd4 49%,#ffffffd9 50%);border-left:1px solid #acbab0;border-bottom:1px solid #acbab0;border-radius:0 10px 0 2px}
.text-file-shape b{font-family:monospace;font-size:10px;letter-spacing:.1em;font-weight:500;border-top:1px solid #bdcbc0;border-bottom:1px solid #bdcbc0;padding:3px 0}
.trash-items .text-file-shape{width:24px;height:30px;padding-bottom:3px;margin:0;box-shadow:none}.trash-items .text-file-shape::before{width:7px;height:7px}.trash-items .text-file-shape b{font-size:6px;padding:1px 0}
.notepad-window .window-content{background:#fdfdf8}.about.notepad-document{padding:32px 36px 28px;font-family:Consolas,'Cascadia Code','Courier New',monospace;font-size:15px;line-height:1.8;color:#343e36}
.notepad-document h2{font-family:inherit;font-size:22px;line-height:1.4;letter-spacing:0;font-weight:700;margin:0 0 4px}.notepad-document p{margin:0 0 22px;max-width:72ch}.notepad-document .notepad-bio{color:#717b70;margin-bottom:26px;font-size:12px}
.notepad-document h3{font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.035em;text-transform:uppercase;margin:32px 0 14px}.notepad-document ul{list-style:none;padding:0;margin:0 0 24px}.notepad-document li{position:relative;padding-left:20px;margin-bottom:14px}.notepad-document li::before{content:'—';position:absolute;left:0;color:#7f8f7c}.notepad-document strong{font-weight:600}
.notepad-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:30px}.notepad-links a{font-family:inherit;font-size:12px;min-height:44px;display:inline-flex;align-items:center;color:#366b57;text-decoration:underline;text-underline-offset:5px}
.notepad-status{display:flex;justify-content:space-between;gap:20px;padding:10px 24px;border-top:1px solid #dce2d5;background:#eff2e9;color:#7d8678;font-family:monospace;font-size:10px}
@media(max-width:760px){.about.notepad-document{padding:28px 24px;font-size:14px;line-height:1.8}.notepad-document h2{font-size:22px}.notepad-links{gap:4px;flex-direction:column}.notepad-status{padding:10px 20px}}
.desktop-session{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:40px;border:0;border-radius:0;background:#e7ece7;color:#f7f6ed;text-align:center;overflow:auto}
.desktop-session::backdrop{background:#101d19}.desktop-session[open]{display:grid;place-items:center}
.desktop-session.is-restarting{background:#1c2925}.desktop-session.is-login{background:linear-gradient(#182b2766,#14221dcc),url('/assets/workspace/room-20261013-1440.webp') center/cover}
.session-restarting,.session-login{width:min(100%,440px);margin:auto}.session-monogram{display:block;font-size:54px;letter-spacing:-.1em;font-weight:600;margin:0 0 48px}.session-monogram>span,.session-avatar>span{font-weight:300;color:#94b19d;margin:0 5px}
.session-restarting h2{font-size:18px;font-weight:400;margin:0 0 16px}.session-status{color:#bac7bc;font-size:12px;min-height:20px}.session-progress{height:3px;background:#536259;border-radius:4px;overflow:hidden;margin:28px auto;width:180px}.session-progress>span{display:block;height:100%;width:0;background:#e1e8cd;transition:width .35s ease}.session-restarting>small{display:block;font-size:10px;line-height:1.6;color:#9cae9e;max-width:32ch;margin:36px auto 0}
.session-avatar{display:grid;grid-auto-flow:column;justify-content:center;align-items:center;width:112px;height:112px;margin:0 auto 28px;background:linear-gradient(145deg,#faf9e8f0,#b2c2a6db);border:1px solid #fff9;box-shadow:0 8px 40px #132b252b,inset 0 0 0 6px #fff2;border-radius:50%;color:#344a38;font-size:34px;font-weight:600;letter-spacing:-.06em}.session-avatar>span{font-size:26px;color:#758b72;margin:0 2px}
.session-account-label{font-family:monospace;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#d6e1d0;margin:0 0 12px}.session-login h2{font-size:32px;font-weight:500;letter-spacing:-.04em;margin:0 0 14px}.session-login>p:not(.session-account-label){font-size:12px;color:#d3dfd0;line-height:1.65;margin:0 0 32px}.session-signin{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;border:1px solid #ffffff73;background:#f4f4e9e8;color:#2b4233;border-radius:9px;font-size:14px;min-height:48px;min-width:168px;padding:12px 20px;box-shadow:0 4px 20px #14251b1a}.session-signin:hover{background:#fff}.session-login>small{display:block;font-size:10px;color:#c1d0be;margin:24px 0 0;line-height:1.6}.desktop-session button:focus-visible{outline:3px solid #fff;outline-offset:5px}
@media(max-width:760px){:root{--desktop-header-height:48px}.site-header{padding:0 16px;gap:14px}.system-status{gap:4px}.system-status .desktop-tool{width:44px;height:44px;min-height:44px}.desktop-time{font-size:10px;margin-left:8px}.desktop-menu{left:8px;width:min(300px,calc(100vw - 16px))}.desktop-icon{width:100px;height:108px;font-size:12px;padding-top:14px}.desktop-icon .folder-shape{width:68px;height:46px}.desktop-icon>span:last-child{font-size:11px}.desktop-room .room-art{opacity:1;background-position:65% center}.desktop-trash{right:16px;bottom:20px}.trash-content{padding:30px 24px}.trash-items li{gap:10px;font-size:13px}.trash-items button{padding:10px;font-size:11px}.desktop-session{padding:32px 24px}.desktop-context{width:268px}}
@media(max-width:390px){.desktop-folder:nth-child(even){left:176px}.desktop-folder:nth-child(n+3){top:180px}}
@media(prefers-reduced-motion:no-preference){.desktop-entering .desktop-icon{animation:desktop-arrive .35s ease both}.desktop-entering .desktop-icon:nth-child(2){animation-delay:.04s}.desktop-entering .desktop-icon:nth-child(3){animation-delay:.08s}.desktop-entering .desktop-icon:nth-child(4){animation-delay:.12s}@keyframes desktop-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
@media(forced-colors:active){.trash-shape{border:2px solid ButtonText}.desktop-icon>span:last-child{border:1px solid CanvasText}.desktop-session,.desktop-menu{border:1px solid CanvasText}.session-progress>span{background:Highlight}}
