
@font-face{font-family:Departure;src:url('/assets/fonts/departure-mono.woff2') format('woff2');font-display:swap}
:root{--desktop:#0c6974;--navy:#071a84;--silver:#c7c7c7;--light:#fff;--shadow:#333;--terminal:#020a06;--term:#7dff9d;--term-soft:#d7ffe0;--term-accent:#35f2ff;--font-size:15px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow:hidden;background:#111;font-family:Departure,"Courier New",monospace}button,a,input{font:inherit}.retro-os{position:fixed;inset:62px 0 0;display:grid;grid-template-rows:minmax(0,1fr) 42px;background:var(--desktop);color:#111;image-rendering:pixelated}.desktop{position:relative;min-height:0;overflow:hidden;background:radial-gradient(circle at 58% 36%,rgba(53,242,255,.24),transparent 27%),linear-gradient(135deg,#0c6974,#064c66 62%,#08344e);background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),radial-gradient(circle at 58% 36%,rgba(53,242,255,.24),transparent 27%),linear-gradient(135deg,#0c6974,#064c66 62%,#08344e);background-size:32px 32px,32px 32px,auto,auto}.desktop-brand{position:absolute;right:5vw;bottom:7vh;text-align:right;color:rgba(255,255,255,.15);text-shadow:4px 4px 0 rgba(0,0,0,.12)}.desktop-brand b{display:block;font-size:clamp(4rem,12vw,11rem);line-height:.72}.desktop-brand span{font-size:clamp(1rem,2vw,2rem);letter-spacing:.24em}.desktop-icon{position:relative;width:92px;min-height:92px;margin:13px 0 0 13px;padding:4px;border:1px solid transparent;background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;gap:5px;text-shadow:1px 1px #111;cursor:pointer}.desktop-icon:nth-of-type(2){position:absolute;left:0;top:112px}.desktop-icon:nth-of-type(3){position:absolute;left:0;top:224px}.desktop-icon:nth-of-type(4){position:absolute;left:0;top:336px}.desktop-icon:hover,.desktop-icon:focus-visible{border:1px dotted #fff;background:rgba(3,41,76,.55);outline:none}.desktop-icon b{font-size:10px;line-height:1.35;text-align:center}.pixel-icon{width:48px;height:43px;display:grid;place-items:center;background:#c7c7c7;color:#06130d;border:3px outset #eee;box-shadow:3px 3px 0 rgba(0,0,0,.35);font-size:14px}.pixel-icon.folder{background:#ffcf4a}.pixel-icon.document{background:#fff}.pixel-icon.user{background:#ff4fd8}.os-window{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);min-width:320px;min-height:220px;display:none;flex-direction:column;padding:4px;background:var(--silver);border:2px outset #fff;box-shadow:10px 12px 0 rgba(0,0,0,.35);z-index:20}.os-window.is-open{display:flex}.os-window.is-active .window-bar{background:var(--navy)}.os-window.is-maximized{inset:4px!important;width:calc(100% - 8px)!important;height:calc(100% - 8px)!important}.window-bar{height:30px;flex:0 0 30px;display:flex;align-items:center;justify-content:space-between;padding:3px 4px;background:#5b5b5b;color:#fff;cursor:grab;user-select:none}.window-bar:active{cursor:grabbing}.window-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:700}.window-title i{display:inline-grid;place-items:center;width:22px;height:20px;margin-right:5px;background:#c7c7c7;color:#111;font-style:normal;border:1px outset #fff}.window-buttons{display:flex;gap:3px}.window-buttons button{width:25px;height:23px;padding:0;border:2px outset #fff;background:var(--silver);color:#111;line-height:1;cursor:pointer}.window-buttons button:active{border-style:inset}.resize-handle{position:absolute;right:2px;bottom:2px;width:16px;height:16px;cursor:nwse-resize;background:repeating-linear-gradient(135deg,transparent 0 3px,#555 3px 5px)}.terminal-screen{min-height:0;flex:1;overflow:auto;background:var(--terminal);color:var(--term);padding:14px 15px;font:400 var(--font-size)/1.55 Departure,"Courier New",monospace;outline:none;scrollbar-color:var(--silver) #111}.terminal-output{white-space:pre-wrap;overflow-wrap:anywhere}.terminal-output .muted{color:#8aa69a}.terminal-output .accent{color:var(--term-accent)}.terminal-output .warn{color:#ffcf4a}.terminal-output .error{color:#ff6b7a}.terminal-output a{color:#35f2ff}.terminal-form{display:flex;align-items:flex-start;gap:7px}.prompt{flex:none;color:#6cff8f}.prompt span{color:#35f2ff}.terminal-form input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--term-soft);caret-color:#fff;padding:0}.window-content{flex:1;min-height:0;overflow:auto;background:#f5f5f5;padding:18px;border:2px inset #fff;user-select:text}.window-content h1{margin:0 0 14px;color:#071a84;font-size:18px}.window-content p{max-width:72ch;line-height:1.7}.window-content .lead{font-weight:700;color:#0c6974}.window-content a{color:#071a84}.command-guide>p{font-size:12px}.command-category{margin:18px 0;border:2px solid #aaa;background:#fff}.command-category h2{margin:0;padding:8px 10px;background:#071a84;color:#fff;font-size:12px}.command-table{width:100%;border-collapse:collapse;font-size:11px}.command-table th,.command-table td{padding:8px;border:1px solid #bbb;text-align:left;vertical-align:top}.command-table th{background:#ddd}.command-table code{color:#8b0057;font-family:inherit}.project-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-files a{display:flex;align-items:center;gap:12px;padding:12px;border:2px outset #fff;background:#ddd;text-decoration:none;color:#111}.project-files a:hover{background:#071a84;color:#fff}.project-files b{display:grid;place-items:center;width:42px;height:42px;background:#ffcf4a;border:2px outset #fff}.start-menu{position:absolute;z-index:9999;left:4px;bottom:4px;width:min(360px,94vw);display:none;grid-template-columns:58px 1fr;background:var(--silver);border:3px outset #fff;box-shadow:8px -8px 0 rgba(0,0,0,.35)}.start-menu.is-open{display:grid}.start-brand{background:#071a84;color:#fff;writing-mode:vertical-rl;transform:rotate(180deg);padding:12px 14px;letter-spacing:.13em}.start-brand b{font-size:26px}.start-items{padding:4px}.start-items button,.start-items a{width:100%;display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#111;text-decoration:none;padding:9px;text-align:left;cursor:pointer}.start-items button:hover,.start-items a:hover{background:#071a84;color:#fff}.start-items span{display:grid;place-items:center;width:29px;height:29px;border:2px outset #fff;background:#ddd;color:#111}.start-items hr{border:0;border-top:2px groove #fff}.taskbar{display:flex;align-items:center;gap:5px;padding:4px;background:var(--silver);border-top:2px outset #fff;z-index:10000}.start-button{height:33px;display:flex;align-items:center;gap:6px;border:3px outset #fff;background:var(--silver);padding:2px 9px;cursor:pointer}.start-button[aria-expanded=true]{border-style:inset}.start-logo{display:grid;place-items:center;width:22px;height:22px;background:#071a84;color:#fff;font-size:10px}.task-buttons{min-width:0;flex:1;display:flex;gap:4px;overflow:auto}.task-buttons button{min-width:130px;max-width:220px;height:31px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:2px outset #fff;background:#ccc;text-align:left;font-size:9px}.task-buttons button.is-active{border-style:inset;background:#ddd}.tray{height:33px;display:flex;align-items:center;gap:7px;padding:4px 8px;border:2px inset #fff;font-size:10px}.tray button{border:0;background:transparent}.online-led{width:7px;height:7px;border-radius:50%;background:#2dbe55;box-shadow:0 0 5px #2dbe55}.crt-lines{position:fixed;z-index:2147483401;inset:62px 0 0;pointer-events:none;background:repeating-linear-gradient(transparent 0 3px,rgba(0,0,0,.12) 3px 4px);mix-blend-mode:multiply;opacity:.45}.terminal-window.theme-amber{--term:#ffcf4a;--term-soft:#fff0bd;--term-accent:#ff8a3d}.terminal-window.theme-cyan{--term:#35f2ff;--term-soft:#d6fbff;--term-accent:#ff4fd8}.terminal-window.theme-violet{--term:#b8a4ff;--term-soft:#eee9ff;--term-accent:#c8ff4d}.terminal-window.font-small{--font-size:12px}.terminal-window.font-large{--font-size:18px}
@media(max-width:700px){.retro-os{inset:62px 0 0}.desktop-icon{width:76px;min-height:84px}.desktop-icon:nth-of-type(2){top:96px}.desktop-icon:nth-of-type(3){top:190px}.desktop-icon:nth-of-type(4){top:284px}.os-window{left:5px!important;top:5px!important;width:calc(100% - 10px)!important;height:calc(100% - 10px)!important;min-width:0;min-height:0}.resize-handle{display:none}.project-files{grid-template-columns:1fr}.window-title{font-size:9px}.terminal-screen{padding:10px;font-size:13px}.task-buttons{display:none}.desktop-brand{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.crt-lines{display:none}}


/* V16 exact-laptop + mobile terminal patch
   Desktop remains visually unchanged. Mobile keeps the same Retro OS identity
   while making the terminal usable without horizontal scrolling. */
@media(max-width:900px){
  html,body{width:100%;max-width:100%;overflow:hidden;touch-action:manipulation}
  .retro-os{inset:62px 0 0;grid-template-rows:minmax(0,1fr) 44px;min-height:calc(100svh - 62px)}
  @supports(height:100dvh){.retro-os{min-height:calc(100dvh - 62px)}}
  .desktop{overflow:hidden;background-size:24px 24px,24px 24px,auto,auto}
  .desktop-icon{width:64px;min-height:72px;margin:9px 0 0 8px;z-index:8}
  .desktop-icon:nth-of-type(2){top:82px}.desktop-icon:nth-of-type(3){top:164px}.desktop-icon:nth-of-type(4){top:246px}
  .desktop-icon b{font-size:8px;line-height:1.25;text-shadow:2px 2px #111}.pixel-icon{width:40px;height:36px;font-size:12px;border-width:2px}
  .os-window{left:76px!important;top:10px!important;width:calc(100% - 86px)!important;height:calc(100% - 20px)!important;min-width:0;min-height:0;max-width:none;max-height:none;box-shadow:6px 7px 0 rgba(0,0,0,.36);padding:3px}
  .terminal-window{z-index:40}.window-bar{height:28px;flex-basis:28px}.window-title{font-size:9px}.window-title i{width:20px;height:18px}.window-buttons button{width:24px;height:22px}
  .terminal-screen{padding:12px 12px 74px;font-size:clamp(12px,3.4vw,15px);line-height:1.55;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .terminal-output{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.terminal-output pre{white-space:pre-wrap;overflow-wrap:anywhere}.terminal-form{min-width:0}.terminal-form input{font-size:16px;min-height:26px}
  .window-content{padding:14px;font-size:12px;line-height:1.55}.project-files{grid-template-columns:1fr}.command-table{font-size:10px}.command-table th,.command-table td{padding:7px}
  .desktop-brand{right:4vw;bottom:8vh;max-width:74vw;opacity:.78}.desktop-brand b{font-size:clamp(3.4rem,22vw,8rem)}.desktop-brand span{font-size:clamp(.8rem,4vw,1.5rem)}
  .start-menu{left:4px;bottom:4px;width:min(360px,calc(100vw - 8px));max-height:calc(100svh - 96px);overflow:auto;-webkit-overflow-scrolling:touch}.taskbar{height:44px;min-height:44px;padding:4px;gap:4px}.start-button{height:34px;min-width:76px}.task-buttons{display:none}.tray{height:34px;margin-left:auto}.crt-lines{inset:62px 0 0}.resize-handle{display:none}
}
@media(max-width:560px){
  .retro-os{inset:62px 0 0;grid-template-rows:minmax(0,1fr) 46px}
  .desktop-icon{left:auto!important;top:auto!important;position:relative!important;display:inline-flex;margin:8px 4px 0 8px;width:54px;min-height:64px;vertical-align:top}
  .desktop-icon b{font-size:7px}.pixel-icon{width:34px;height:31px;font-size:11px}
  .os-window{left:6px!important;top:82px!important;width:calc(100% - 12px)!important;height:calc(100% - 92px)!important;box-shadow:5px 6px 0 rgba(0,0,0,.36)}
  .window-title{font-size:8px}.window-buttons button{width:22px;height:20px}.terminal-screen{font-size:clamp(11px,3.2vw,13px);padding:10px 10px 74px}.desktop-brand{display:block;right:3vw;bottom:56px;opacity:.28}.desktop-brand b{font-size:22vw}.desktop-brand span{font-size:4vw}.start-menu{bottom:48px}
}
@media(max-width:390px){
  .os-window{top:76px!important;height:calc(100% - 86px)!important}.desktop-icon{width:50px;min-height:58px;margin-left:5px}.terminal-screen{font-size:11px;line-height:1.5}.window-title{max-width:calc(100vw - 128px)}.tray{font-size:8px;padding-inline:5px}.start-button{min-width:66px;padding-inline:5px}.start-logo{width:19px;height:19px}.desktop-brand{display:none}
}
@media(orientation:landscape) and (max-height:520px) and (max-width:900px){
  .desktop-icon{display:none}.os-window{left:5px!important;top:5px!important;width:calc(100% - 10px)!important;height:calc(100% - 10px)!important}.terminal-screen{padding-bottom:52px}.desktop-brand{display:none}
}


/* V18 no-reload restore patch: closed/minimized windows remain recoverable from the taskbar. */
.os-window.is-minimized,.os-window.is-closed{display:none!important}
.task-buttons{scrollbar-color:#071a84 #c7c7c7;scrollbar-width:thin}
.task-buttons button{position:relative;padding-left:8px;flex:0 0 auto;cursor:pointer}
.task-buttons button[data-state="closed"]{background:#bfc6cf;color:#16202a;border-style:outset;opacity:.92}
.task-buttons button[data-state="minimized"]{background:#e5e5e5;color:#111;border-style:outset}
.task-buttons button[data-state="open"].is-active{background:#fff;color:#071a84;box-shadow:inset 0 0 0 1px #071a84}
.task-buttons button:hover,.task-buttons button:focus-visible{background:#071a84;color:#fff;outline:2px solid #ffcf4a;outline-offset:1px}
@media(max-width:900px){.task-buttons{display:flex!important;overflow-x:auto;max-width:calc(100vw - 150px);padding-bottom:1px}.task-buttons button{min-width:118px;max-width:168px;font-size:8px}}
@media(max-width:560px){.task-buttons{max-width:calc(100vw - 138px)}.task-buttons button{min-width:96px;max-width:132px;height:30px;font-size:7px}.tray{display:none}}
@media(orientation:landscape) and (max-height:520px) and (max-width:900px){.task-buttons{display:flex!important;max-width:calc(100vw - 150px)}}
