/* One pink desktop. Shared shell tokens also reach each app's existing components. */
@font-face{font-family:Plex;src:url('/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Plex;src:url('/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2');font-weight:600 900;font-display:swap}
@font-face{font-family:'Plex Mono';src:url('/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Plex Mono';src:url('/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');font-weight:600 900;font-display:swap}
:root{
 --sans:Plex,sans-serif;--mono:'Plex Mono',monospace;
 --ink:#382530;--muted:#705663;--paper:#fffaf3;--wall:#dfadc0;--pink:#eac3d1;
 --accent:#8d3157;--line:#b599a5;--focus:#83234d;--surface:#f6e8eb;
 --shadow:4px 4px 0 #70415533;--control-shadow:0 1px 0 #70415526;
 --text-small:.75rem;--control-border:1px solid var(--line);
}
body{font:1rem/1.6 var(--sans);background:var(--wall)}
button,a,select,input{transition:background-color 120ms,color 120ms,border-color 120ms}
button:hover:not(:disabled){filter:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.topbar{height:40px;padding:0 24px;background:var(--paper);border-bottom:1px solid var(--ink);font:11px var(--mono)}
.brand{font:600 16px var(--mono);gap:10px}.brand-mark{font-size:22px}.edition{font-size:10px;letter-spacing:.08em;border-color:var(--line)}
.top-right{color:var(--muted)}.online-dot{display:none}.version{color:var(--muted)}
#desktop{height:calc(100dvh - 104px);background-image:radial-gradient(#75445724 .7px,transparent .7px);background-size:12px 12px}
.wallpaper-art{opacity:.5}.spark-one{right:10%;top:10%;font-size:110px}.spark-two{left:44%;bottom:10%;font-size:80px}.spark-three{right:35%;top:43%;font-size:38px}
#desktop-icons{
 display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--desktop-rows,5),104px);grid-template-columns:none;grid-auto-columns:104px;
 gap:8px;padding:24px 16px;height:100%;max-height:100%;width:max-content;max-width:100%;overflow:auto;align-content:start;
 scrollbar-width:thin;scrollbar-color:var(--accent) transparent;
}
.desktop-icon{width:104px;min-height:104px;padding:8px 4px;gap:8px;justify-content:flex-start;border:1px solid transparent;border-radius:3px}
.desktop-icon:hover{background:#fffaf33d;border:1px solid #8d315775}
.desktop-icon:active{background:#fffaf37a}
.desktop-icon span{font:12px/1.4 var(--mono);background:none;padding:0 2px;min-height:34px;max-width:100%;color:var(--ink);text-shadow:0 1px #ffffff50}
.pixel-icon{width:44px;height:44px;filter:drop-shadow(2px 2px 0 #70415526)}
.window{left:264px;top:40px;width:640px;border:1px solid var(--ink);border-radius:5px;background:var(--paper);box-shadow:var(--shadow);animation:none;overflow:hidden}
.window.is-front{box-shadow:5px 5px 0 #70415540}
.window-titlebar{height:46px;min-height:46px;padding:0 6px 0 14px;gap:12px;background:var(--surface);border-bottom:1px solid var(--line)}
.window.is-front>.window-titlebar{background:var(--pink);border-bottom-color:var(--ink);box-shadow:none}
.window-title{font:600 12px var(--mono);gap:10px;color:var(--muted)}.is-front .window-title{color:var(--ink)}
.window-title .pixel-icon{width:20px;height:20px}.window-controls{gap:4px}
.window-controls button{width:32px;height:32px;min-width:32px;border:1px solid var(--line);border-radius:2px;background:var(--paper);box-shadow:none;font:20px/1 var(--mono)}
.window-controls button:hover{background:#f2d5df;border-color:var(--ink)}.window-controls [data-close]:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.window-content{padding:28px 32px;scrollbar-width:thin;scrollbar-color:var(--line) var(--paper)}
.window-status{min-height:28px;padding:5px 14px;background:var(--surface);border-top:1px solid var(--line);font:10px/1.6 var(--mono);color:var(--muted)}
.intro-heading{font:600 clamp(32px,3vw,44px)/1.15 var(--sans);letter-spacing:-.04em;margin:0 0 16px}
.section-heading{font:600 26px/1.25 var(--sans);letter-spacing:-.025em;margin:0 0 12px}
.mini-heading{font:600 12px/1.5 var(--mono);letter-spacing:.03em;color:var(--muted)}
.avatar{width:68px;height:68px;border:1px solid var(--ink);border-radius:3px;background:var(--pink);box-shadow:2px 2px 0 #70415526;transform:none}
.avatar img{width:52px;height:52px}.handle{margin:0 0 20px}.handle strong{background:var(--surface);padding:4px 8px;border-radius:2px}
.lead{font-size:16px;line-height:1.7;max-width:52ch;margin:0 0 24px}.section-intro{color:var(--muted);line-height:1.65}
.tags{gap:8px;margin-bottom:24px}.tag{font:11px/1.5 var(--mono);padding:4px 7px;background:transparent;border:1px solid var(--line);border-radius:3px}
.about-bottom{padding-top:20px;border-top:1px solid var(--line);gap:12px}.soft-note{font-size:11px}
.action,.copy-button,.text-button,.rig-tabs button,.link-tile,.memory-frame-bottom button{font:12px/1.4 var(--mono);border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);padding:10px 12px;min-height:40px;box-shadow:var(--control-shadow)}
.action:hover,.link-tile:hover,.copy-button:hover,.rig-tabs button:hover,.memory-frame-bottom button:hover{background:var(--surface);border-color:var(--accent);transform:none}
.action.primary,.action[aria-pressed="true"],.rig-tabs [aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--paper);box-shadow:none}
.action.primary:hover{background:#702342}.action:disabled{background:var(--surface);color:var(--muted);border-color:var(--line)}
.project{gap:16px;padding:24px 0}.project h3{font-size:18px;font-weight:600}.project p{font-size:14px;color:var(--muted)}.project small{color:var(--accent)}.project .badge{background:var(--surface);color:var(--accent);border-radius:3px;font-size:11px}
.rig-device{border:1px solid var(--line);border-radius:3px;box-shadow:none;padding:16px;background:var(--paper)}.rig-device[aria-pressed="true"]{border:1px solid var(--accent);background:var(--surface);box-shadow:inset 3px 0 var(--accent)}.rig-device strong{font:600 18px var(--sans)}
.rig-tabs{gap:8px;flex-wrap:wrap}.part{border-radius:3px;box-shadow:none}.part[aria-pressed="true"]{background:var(--surface);border-color:var(--accent)}.part-detail{color:var(--muted);background:var(--surface)}
.game-card{border-radius:3px;box-shadow:none}.game-card h3{font-weight:600}.game-card p{color:var(--muted)}.featured-video{border:1px solid var(--line);background:var(--surface);width:100%;min-height:0}
.watch-card{border-radius:3px;padding:20px;margin:16px 0}.watch-badge{background:var(--surface);border:1px solid var(--line);border-radius:2px;box-shadow:none}.watch-card a{font-size:16px}.watch-card p{font-size:14px}
.link-grid{gap:12px}.contact{border-color:var(--line);background:var(--surface)}.settings-group{border-color:var(--line)}input[type="checkbox"]{accent-color:var(--accent);width:18px;height:18px}
.memory-frame{border:1px solid var(--ink);border-radius:3px;padding:10px;transform:rotate(2deg);box-shadow:var(--shadow)}.memory-frame-open{border:0!important}.memory-frame-bottom{font:11px var(--mono)}.memory-frame-bottom button{min-height:32px;padding:6px 10px}
.memory-stage{background:var(--surface);border:1px solid var(--line);border-radius:3px}.memory-tile{border-radius:3px}.memory-tile:hover{background:var(--surface);border-color:var(--accent)}.memory-warning{border:1px solid var(--ink);border-radius:5px}.memory-warning h3{font:600 24px var(--sans)}
.taskbar{height:64px;padding:10px 16px;gap:10px;background:var(--paper);border-top:1px solid var(--ink);box-shadow:none}
.start-button{height:40px;min-height:40px;padding:0 14px;font:600 13px var(--mono);border:1px solid var(--ink);border-radius:3px;background:var(--pink);box-shadow:var(--control-shadow);gap:8px}
.start-button:hover,.start-button[aria-expanded="true"]{background:var(--accent);color:var(--paper)}.start-button span{font-size:20px}.task-divider{height:24px;border-right:0;border-left-color:var(--line)}
.task-button{height:40px;min-width:110px;max-width:180px;flex:0 0 auto;padding:0 12px;border:1px solid var(--line);border-radius:3px;gap:8px;font:11px var(--mono);background:var(--surface)}
.task-button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:inset 0 -3px var(--pink)}
.taskbar>button:not(.start-button){width:40px;height:40px;flex-basis:40px;min-width:40px;border:1px solid var(--line);border-radius:3px;background:var(--paper)}
.taskbar>button:not(.start-button):hover{background:var(--surface)}.clock{font:12px var(--mono);padding:0 0 0 14px;border-color:var(--line)}.clock span{font-size:9px;letter-spacing:.04em}
.weather{font:11px var(--mono)}.weather summary{min-height:40px;display:flex;align-items:center;padding:6px}.weather-panel{background:var(--paper);border:1px solid var(--ink);border-radius:3px;box-shadow:var(--shadow)}
.start-menu{left:16px;bottom:72px;width:300px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 120px);display:flex;flex-direction:column;overflow:hidden;padding:6px;border:1px solid var(--ink);border-radius:5px;background:var(--paper);box-shadow:var(--shadow)}
.menu-header{padding:14px 12px;background:var(--pink);border-radius:2px;font:600 18px var(--mono);margin-bottom:4px;flex-shrink:0}.menu-header small{font:12px var(--sans);margin-top:3px}
#menu-apps{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.start-menu button{min-height:44px;padding:8px 12px;border-radius:2px;font:12px var(--mono);flex-shrink:0}.start-menu button:hover{background:var(--surface)}.start-menu>button{border-top:1px solid var(--line)}
#toast{border-radius:3px;box-shadow:var(--shadow);background:var(--ink);font:13px/1.5 var(--sans)}
@media(min-width:1600px){.window:not([data-app="memories"]){width:660px}}
@media(max-width:1100px){.memory-frame{width:190px;right:16px;bottom:16px}}
@media(max-width:700px){
 .topbar{height:38px;padding:0 12px}.brand{font-size:14px}.top-right{display:none}.brand-mark{font-size:20px}
 #desktop{height:calc(100dvh - 102px - env(safe-area-inset-bottom))}
 #desktop-icons{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:112px;width:100%;gap:8px;padding:20px 12px;overflow-y:auto}
 .desktop-icon{width:100%;min-height:104px}.desktop-icon span{font-size:11px}.pixel-icon{width:44px;height:44px}
 .window,.window[data-app="memories"],.window.is-maximized{position:fixed;left:8px!important;right:8px!important;top:46px!important;bottom:auto!important;width:auto!important;max-width:none;height:calc(100dvh - 118px - env(safe-area-inset-bottom))!important;max-height:none;border-radius:4px}
 .window:not(.is-front){visibility:hidden}
 .window-titlebar{height:52px;min-height:52px;padding:0 4px 0 12px;gap:8px}.window-title{font-size:11px;gap:8px}.window-controls button{height:44px;width:44px;min-width:44px}.window-title .pixel-icon{width:18px;height:18px}
 .window-content{padding:24px 20px}.window-status{font-size:10px;min-height:27px}.intro-heading{font-size:34px}.section-heading{font-size:24px}.lead{font-size:16px;line-height:1.65}.avatar{width:56px;height:56px}.avatar img{width:44px;height:44px}
 .about-bottom{gap:12px}.soft-note{flex-basis:100%;margin-left:0}.tag{font-size:11px}.handle{margin-bottom:20px}
 .action,.copy-button,.text-button,.link-tile,.rig-tabs button,select{min-height:44px}.link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.link-tile{padding:12px 8px;font-size:11px}
 .taskbar{height:calc(64px + env(safe-area-inset-bottom));padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:4px}
 .start-button{height:44px;min-height:44px;padding:0 8px;font-size:12px}.task-button{height:44px;min-width:44px;max-width:44px;flex:0 0 44px;padding:0;justify-content:center}.task-label{display:none}.taskbar>button:not(.start-button){height:44px;width:44px;min-width:44px;flex-basis:44px}
 .clock{top:10px;right:12px;font-size:11px}.weather summary{min-height:44px;padding:4px;font-size:10px}.weather-panel{right:0;max-width:calc(100vw - 16px)}
 .start-menu{left:8px;bottom:calc(72px + env(safe-area-inset-bottom));max-height:calc(100dvh - 118px - env(safe-area-inset-bottom));max-width:calc(100vw - 16px)}
 .memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-stage img,.memory-stage video{height:32dvh}.watch-card{padding:16px}.rig-device strong{font-size:17px}
}
@media(prefers-reduced-motion:reduce){button,a,select,input{transition:none}}
@media(pointer:coarse){
 .window-titlebar{height:54px;min-height:54px}
 .window-controls button{width:44px;height:44px;min-width:44px}
 .action,.copy-button,.rig-tabs button,.link-tile,select,.memory-frame-bottom button,.task-button,.start-button,.weather summary{min-height:44px}
 .taskbar>button:not(.start-button){width:44px;height:44px;min-width:44px;flex-basis:44px}
}
