:root{
  --teal:#008080; --win-gray:#c0c0c0; --win-dark:#808080; --win-light:#ffffff; --win-shadow:#000000;
  --blue:#000080; --text:#000; --font:"MS Sans Serif", Tahoma, Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:var(--font);color:var(--text)}
.desktop{
  height:100%; background:var(--teal);
  background-size:cover; background-position:center;
  position:relative; overflow:hidden;
  user-select:none;
}
/* Desktop icons: absolute positioned */
.desktop-icons{position:absolute; inset:0;}
.desktop-icon{
  position:absolute;
  width:92px;
  background:transparent;
  border:0;
  padding:6px;
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  cursor:pointer;
}
.desktop-icon img{width:56px;height:56px;image-rendering:pixelated}
.desktop-icon span{
  max-width:92px;
  text-align:center;
  font-size:13px;
  line-height:1.1;
  text-shadow:1px 1px 0 #000;
  word-break:break-word;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.desktop-icon.selected{
  outline:1px dotted #fff;
  outline-offset:2px;
}
/* PDFs: look bigger + nicer label box */
.desktop-icon.pdf img{width:60px;height:60px}
.desktop-icon.pdf span{
  background:rgba(0,0,0,0.25);
  padding:2px 4px;
  border-radius:2px;
}

/* Window */
.window{
  position:absolute;
  top:72px; left:140px;
  width:min(760px, calc(100% - 40px));
  height:min(520px, calc(100% - 120px));
  background:var(--win-gray);
  border-top:2px solid var(--win-light);
  border-left:2px solid var(--win-light);
  border-right:2px solid var(--win-shadow);
  border-bottom:2px solid var(--win-shadow);
  box-shadow:1px 1px 0 var(--win-dark);
  display:flex; flex-direction:column;
  transform-origin:top left;
}
.titlebar{
  height:28px;
  background:linear-gradient(90deg, var(--blue), #3a6ea5);
  color:#fff;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 6px;
}
.titlebar-left{display:flex;align-items:center;gap:8px;font-weight:bold;font-size:13px}
.title-ico{width:16px;height:16px;image-rendering:pixelated}
.titlebar-right{display:flex;gap:4px}
.winbtn{
  width:24px;height:20px;background:var(--win-gray);
  border-top:2px solid var(--win-light);
  border-left:2px solid var(--win-light);
  border-right:2px solid var(--win-shadow);
  border-bottom:2px solid var(--win-shadow);
  font-family:var(--font); cursor:pointer;
}
.winbtn:active{
  border-top:2px solid var(--win-shadow);
  border-left:2px solid var(--win-shadow);
  border-right:2px solid var(--win-light);
  border-bottom:2px solid var(--win-light);
}
.menubar{
  height:26px;
  display:flex; gap:18px;
  padding:4px 8px;
  font-size:13px;
  border-bottom:1px solid var(--win-dark);
}
.content{flex:1;padding:8px;display:flex;flex-direction:column;gap:8px;min-height:0}
.pathbar{
  background:#fff;
  border-top:2px solid var(--win-dark);
  border-left:2px solid var(--win-dark);
  border-right:2px solid var(--win-light);
  border-bottom:2px solid var(--win-light);
  padding:6px 8px;
  display:flex; gap:8px;
  font-size:13px;
}
.explorer-grid{
  flex:1;
  background:#fff;
  border-top:2px solid var(--win-dark);
  border-left:2px solid var(--win-dark);
  border-right:2px solid var(--win-light);
  border-bottom:2px solid var(--win-light);
  padding:10px;
  display:flex; flex-wrap:wrap; gap:14px;
  align-content:flex-start;
  overflow:auto;
}
.folder-icon{
  width:96px;
  border:0; background:transparent;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  cursor:pointer; padding:6px;
}
.folder-icon img{width:44px;height:44px;image-rendering:pixelated}
.folder-icon span{font-size:13px;color:#000;text-align:center;line-height:1.1}

.statusbar{height:24px;border-top:1px solid var(--win-dark);padding:4px 8px;font-size:12px;display:flex;align-items:center}

/* Context menu */
.context-menu{
  position:absolute;
  min-width:240px;
  background:var(--win-gray);
  border-top:2px solid var(--win-light);
  border-left:2px solid var(--win-light);
  border-right:2px solid var(--win-shadow);
  border-bottom:2px solid var(--win-shadow);
  padding:4px;
  z-index:9999;
}
.context-menu button{
  width:100%;
  text-align:left;
  background:transparent;
  border:0;
  padding:8px 10px;
  font-family:var(--font);
  font-size:13px;
  cursor:pointer;
}
.context-menu button:hover{background:var(--blue);color:#fff}

.hidden{ display:none !important; }

/* Animations */
@keyframes winOpen{0%{transform:scale(.92);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes winClose{0%{transform:scale(1);opacity:1}100%{transform:scale(.92);opacity:0}}
.window.anim-open{animation:winOpen 140ms ease-out}
.window.anim-close{animation:winClose 120ms ease-in}


/* ---- Taskbar + Start Menu (Winblows 95) ---- */
.taskbar{
  position:absolute;
  left:0; right:0; bottom:0;
  height:34px;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  box-shadow: 0 -1px 0 var(--win-dark,#808080);
  display:flex;
  align-items:center;
  padding:4px;
  gap:6px;
  z-index: 20000;
}
.start-btn{
  height:26px;
  display:flex; align-items:center; gap:6px;
  padding:0 10px 0 8px;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  border-left:2px solid var(--win-light,#fff);
  border-right:2px solid var(--win-shadow,#000);
  border-bottom:2px solid var(--win-shadow,#000);
  font-family:var(--font, Tahoma, Arial, sans-serif);
  cursor:pointer;
  font-weight:bold;
}
.start-btn-icon{
  width:16px;
  height:16px;
  object-fit:contain;
  image-rendering:auto;
  flex:0 0 16px;
}
.start-btn:active, .start-btn.active{
  border-top:2px solid var(--win-shadow,#000);
  border-left:2px solid var(--win-shadow,#000);
  border-right:2px solid var(--win-light,#fff);
  border-bottom:2px solid var(--win-light,#fff);
}
.taskbar-spacer{flex:1}
.quick-launch-btn{
  width:28px;
  height:28px;
  margin-left:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--win-face,#c0c0c0);
  border:2px solid var(--win-light,#fff);
  border-right-color:var(--win-shadow,#000);
  border-bottom-color:var(--win-shadow,#000);
  padding:0;
  cursor:pointer;
}
.quick-launch-btn:active, .quick-launch-btn.active{
  border:2px solid var(--win-shadow,#000);
  border-right-color:var(--win-light,#fff);
  border-bottom-color:var(--win-light,#fff);
}
.quick-launch-btn img{width:16px;height:16px;image-rendering:pixelated;}

.clock{
  height:26px;
  padding:0 8px;
  display:flex;align-items:center;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-shadow,#000);
  border-left:2px solid var(--win-shadow,#000);
  border-right:2px solid var(--win-light,#fff);
  border-bottom:2px solid var(--win-light,#fff);
  font-size:12px;
  white-space:nowrap;
}

/* Start menu */
.start-menu{
  position:absolute;
  left:4px;
  bottom:34px;
  width:270px;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  border-left:2px solid var(--win-light,#fff);
  border-right:2px solid var(--win-shadow,#000);
  border-bottom:2px solid var(--win-shadow,#000);
  z-index: 21000;
  display:flex;
}
.start-strip{
  width:34px;
  background:linear-gradient(#000080, #3a6ea5);
  display:flex;
  align-items:flex-end;
  padding:10px 6px;
  color:#fff;
  font-weight:bold;
  letter-spacing:.4px;
  writing-mode:vertical-rl;
  transform: rotate(180deg);
  user-select:none;
}
.start-items{flex:1;padding:4px}
.start-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 8px;
  background:transparent;
  border:0;
  cursor:pointer;
  font-family:var(--font, Tahoma, Arial, sans-serif);
  font-size:13px;
  text-align:left;
}
.start-item img{width:20px;height:20px;image-rendering:pixelated}
.start-item:hover{background:#000080;color:#fff}
.menu-sep{height:1px;background:var(--win-dark,#808080);box-shadow:0 1px 0 var(--win-light,#fff);margin:4px 4px}
.start-folder-wrap{position:relative;}
.start-folder-item{justify-content:space-between;}
.submenu-arrow{margin-left:auto;font-size:11px;}
.start-submenu{
  position:absolute;
  left:100%;
  bottom:0;
  min-width:210px;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  border-left:2px solid var(--win-light,#fff);
  border-right:2px solid var(--win-shadow,#000);
  border-bottom:2px solid var(--win-shadow,#000);
  padding:4px;
  display:none;
  z-index:21010;
}
.start-folder-wrap:hover .start-submenu,
.start-folder-wrap:focus-within .start-submenu{display:block;}


/* Start menu animations */
@keyframes menuIn{0%{transform:translateY(8px);opacity:0}100%{transform:translateY(0);opacity:1}}
@keyframes menuOut{0%{transform:translateY(0);opacity:1}100%{transform:translateY(8px);opacity:0}}
.start-menu.anim-in{animation:menuIn 120ms ease-out}
.start-menu.anim-out{animation:menuOut 100ms ease-in}


.window{
  position:absolute;
  left:80px;
  top:80px;
  z-index:1000;
}

.toolbar{ display:flex; gap:6px; padding:6px; }
.toolbtn{
  font-size:12px;
  padding:2px 10px;
  background: var(--win-face,#c0c0c0);
  border:2px solid var(--win-shadow,#000);
  border-right-color: var(--win-light,#fff);
  border-bottom-color: var(--win-light,#fff);
  cursor:pointer;
}
.toolbtn:active{
  border-right-color: var(--win-shadow,#000);
  border-bottom-color: var(--win-shadow,#000);
  border-left-color: var(--win-light,#fff);
  border-top-color: var(--win-light,#fff);
}


/* Explorer grid visibility fix */
.explorer-grid{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:8px;
  padding:8px;
  min-height:160px;
  background:#fff;
}
.explorer-grid .folder-icon{
  position:relative;
  width:88px;
  height:auto;
  border:none;
  background:transparent;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  color:#000;
  cursor:default;
}
.explorer-grid .folder-icon img{
  width:32px;
  height:32px;
  image-rendering: pixelated;
}
.explorer-grid .folder-icon span{
  margin-top:4px;
  font-size:12px;
  color:#000;
  text-align:center;
  word-break:break-word;
}

/* Explorer grid visibility fix v2 (force override desktop icon styles) */
#projectsGrid.explorer-grid, #videosGrid.explorer-grid, .explorer-grid{
  display:flex !important;
  flex-wrap:wrap !important;
  align-content:flex-start !important;
  gap:8px !important;
  padding:8px !important;
  min-height:220px !important;
  background:#fff !important;
  position:relative !important;
}
.explorer-grid .folder-icon{
  position:relative !important;
  width:96px !important;
  height:auto !important;
  border:none !important;
  background:transparent !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  cursor:default !important;
  padding:4px !important;
}
.explorer-grid .folder-icon img{
  width:32px !important;
  height:32px !important;
  image-rendering: pixelated;
}
.explorer-grid .folder-icon span{
  margin-top:4px !important;
  font-size:12px !important;
  color:#000 !important;
  text-align:center !important;
  word-break:break-word !important;
}

#startMenu{ pointer-events:auto; }

/* Explorer items (separate from desktop icons) */
.explorer-grid{
  display:flex !important;
  flex-wrap:wrap !important;
  align-content:flex-start !important;
  gap:10px !important;
  padding:10px !important;
  min-height:240px !important;
  background:#fff !important;
  position:relative !important;
}
.explorer-item{
  width:110px;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  background:transparent;
  border:none;
  padding:4px;
  cursor:pointer;
  color:#000;
}
.explorer-item img{
  width:32px;
  height:32px;
  image-rendering: pixelated;
}
.explorer-item .label{
  margin-top:4px;
  font-size:12px;
  color:#000;
  text-align:center;
  word-break:break-word;
}


.version-badge{
  height:26px;
  padding:0 8px;
  display:flex;
  align-items:center;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-shadow,#000);
  border-left:2px solid var(--win-shadow,#000);
  border-right:2px solid var(--win-light,#fff);
  border-bottom:2px solid var(--win-light,#fff);
  font-size:12px;
  white-space:nowrap;
}


/* Clippy helper */
.clippy-widget{
  position:fixed;
  right:18px;
  bottom:52px;
  z-index:25000;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  max-width:320px;
}
.clippy-bubble{
  position:relative;
  background:#efefc8;
  color:#000;
  border:2px solid #000;
  border-radius:18px;
  padding:18px 34px 18px 18px;
  font-size:14px;
  line-height:1.35;
  box-shadow:2px 2px 0 rgba(0,0,0,0.2);
}
.clippy-bubble::after{
  content:"";
  position:absolute;
  right:58px;
  bottom:-18px;
  width:0;
  height:0;
  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-top:18px solid #efefc8;
  filter:drop-shadow(0 2px 0 #000);
}
.clippy-message{
  white-space:normal;
}
.clippy-close{
  position:absolute;
  top:8px;
  right:8px;
  width:22px;
  height:22px;
  padding:0;
  border:2px solid #000;
  background:#d4d4a8;
  color:#000;
  font-weight:bold;
  line-height:1;
  text-align:center;
  cursor:pointer;
}
.clippy-close:active{
  transform:translate(1px,1px);
}
.clippy-image{
  width:180px;
  max-width:42vw;
  height:auto;
  user-select:none;
  pointer-events:none;
}
@media (max-width: 700px){
  .clippy-widget{
    right:8px;
    left:8px;
    bottom:46px;
    align-items:flex-end;
    max-width:none;
  }
  .clippy-bubble{
    max-width:280px;
    font-size:13px;
  }
  .clippy-image{
    width:140px;
  }
}


.clippy-widget.minimized .clippy-bubble{
  display:none;
}
.clippy-widget.minimized .clippy-image{
  width:92px;
  opacity:0.96;
  cursor:pointer;
  pointer-events:auto;
}


/* Clippy transparent image + HTML speech bubble tune */
.clippy-widget{
  background: transparent !important;
}
.clippy-bubble{
  background:#efefc8 !important;
  border:2px solid #000 !important;
  border-radius:22px !important;
  padding:20px 36px 18px 18px !important;
  min-width:280px !important;
  max-width:360px !important;
}
.clippy-bubble::before{
  content:"";
  position:absolute;
  right:54px;
  bottom:-22px;
  width:0;
  height:0;
  border-left:14px solid transparent;
  border-right:14px solid transparent;
  border-top:22px solid #000;
}
.clippy-bubble::after{
  content:"";
  position:absolute;
  right:56px;
  bottom:-18px;
  width:0;
  height:0;
  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-top:18px solid #efefc8;
  filter:none !important;
}
.clippy-image{
  width:170px !important;
  height:auto !important;
  background:transparent !important;
}
.clippy-widget.minimized .clippy-image{
  width:96px !important;
}


/* Clippy v1.26e fixes */
.clippy-bubble{
  overflow: visible !important;
}
.clippy-message{
  display:block !important;
  color:#000 !important;
  font-family: Arial, sans-serif !important;
  font-size:14px !important;
  line-height:1.35 !important;
  min-height:auto !important;
  white-space:normal !important;
  text-align:left !important;
}


/* Clippy v1.28 behavior */
.clippy-widget {
  transform: translateY(120px);
  opacity: 0;
  transition: transform .45s ease, opacity .45s ease;
}
.clippy-widget.clippy-show {
  transform: translateY(0);
  opacity: 1;
}


.shutdown-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.2);
  z-index:40000;
  display:flex;
  align-items:center;
  justify-content:center;
}
.shutdown-box{
  width:min(520px, calc(100vw - 24px));
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  border-left:2px solid var(--win-light,#fff);
  border-right:2px solid var(--win-shadow,#000);
  border-bottom:2px solid var(--win-shadow,#000);
  box-shadow:2px 2px 0 rgba(0,0,0,0.25);
}
.shutdown-titlebar{
  background:#000080;
  color:#fff;
  font-weight:bold;
  padding:6px 8px;
  font-size:13px;
}
.shutdown-body{
  padding:16px;
  font-size:14px;
  line-height:1.4;
  color:#000;
}
.shutdown-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  padding:0 16px 16px;
}
.shutdown-btn{
  min-width:90px;
  padding:6px 10px;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  border-left:2px solid var(--win-light,#fff);
  border-right:2px solid var(--win-shadow,#000);
  border-bottom:2px solid var(--win-shadow,#000);
  font-family:var(--font, Tahoma, Arial, sans-serif);
  cursor:pointer;
}
.shutdown-btn:active{
  border-top:2px solid var(--win-shadow,#000);
  border-left:2px solid var(--win-shadow,#000);
  border-right:2px solid var(--win-light,#fff);
  border-bottom:2px solid var(--win-light,#fff);
}
.shutdown-screen{
  position:fixed;
  inset:0;
  background:#000;
  z-index:50000;
}



/* Startup sequence v1.31 */
.startup-overlay{
  position:fixed;
  inset:0;
  background:#000;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.startup-overlay.hidden{
  display:none !important;
}
.startup-overlay video{
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0;
}
.startup-bios{
  position:absolute;
  inset:0;
  background:#000;
  color:#cfcfcf;
  font: 18px/1.35 "Courier New", monospace;
  padding:28px 32px;
  z-index:2;
  opacity:1;
  transition:opacity .35s ease;
  pointer-events:none;
  text-shadow:0 0 2px rgba(255,255,255,.18);
}
.startup-bios.fade{
  opacity:0;
}
.startup-crt{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,0.03), rgba(0,0,0,0.08)),
    repeating-linear-gradient(
      to bottom,
      rgba(255,255,255,0.06) 0px,
      rgba(255,255,255,0.06) 1px,
      rgba(0,0,0,0.02) 2px,
      rgba(0,0,0,0.02) 3px
    );
  mix-blend-mode:screen;
  animation: startupFlicker 0.12s infinite alternate;
}
@keyframes startupFlicker{
  0%{opacity:.35}
  100%{opacity:.6}
}
.startup-progress-wrap{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  width:min(520px, calc(100vw - 32px));
  z-index:4;
  color:#fff;
  font-size:13px;
  font-family:Tahoma, Arial, sans-serif;
  text-shadow:1px 1px 0 #000;
}
.startup-progress-label{
  margin-bottom:6px;
}
.startup-progress{
  height:18px;
  background:#000;
  border:2px solid #7f7f7f;
  border-right-color:#fff;
  border-bottom-color:#fff;
  padding:2px;
}
.startup-progress-bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,#000080,#1084d0);
}


/* Startup sequence v1.32 */
.startup-bios{
  position:absolute;
  inset:0;
  background:#000;
  color:#cfcfcf;
  font:18px/1.35 "Courier New", monospace;
  padding:28px 32px;
  z-index:2;
  pointer-events:auto;
  text-shadow:0 0 2px rgba(255,255,255,.18);
}
.startup-bios .bios-line{
  min-height:1.35em;
  visibility:hidden;
}
.startup-bios .bios-line.visible,
.startup-bios .bios-line.done{
  visibility:visible;
}
.startup-bios .bios-click-line{
  color:#fff6a8;
}
.startup-bios .bios-click-line.visible::after{
  content:"";
  display:inline-block;
  width:10px;
  height:18px;
  margin-left:6px;
  vertical-align:-2px;
  background:#cfcfcf;
  animation:biosCursorBlink .9s steps(1) infinite;
}
@keyframes biosCursorBlink{
  0%,49%{opacity:1}
  50%,100%{opacity:0}
}
.startup-overlay video{
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .25s ease;
}
.startup-overlay.video-started video{
  opacity:1;
}


/* Startup sequence v1.33 */
.startup-overlay.hidden,
.startup-overlay.hidden *{
  display:none !important;
}
.startup-bios.fade{
  opacity:0 !important;
  visibility:hidden !important;
  transition:opacity .3s ease, visibility .3s ease;
}

.startup-progress-wrap,
.startup-progress,
.startup-progress-bar,
.startup-progress-label{
  display:none !important;
}


/* Startup sequence v1.35 */
.startup-overlay{
  position:fixed !important;
  inset:0 !important;
  background:#000 !important;
  z-index:99999 !important;
  overflow:hidden !important;
}
.startup-overlay.hidden{
  display:none !important;
}
.startup-overlay video{
  position:absolute !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  object-fit:cover !important;
  opacity:0 !important;
  background:#000 !important;
}
.startup-overlay.video-started video{
  opacity:1 !important;
}
.startup-bios{
  position:absolute !important;
  inset:0 !important;
  background:#000 !important;
  color:#cfcfcf !important;
  font:18px/1.35 "Courier New", monospace !important;
  padding:28px 32px !important;
  z-index:2 !important;
  pointer-events:auto !important;
  text-shadow:0 0 2px rgba(255,255,255,.18) !important;
}
.startup-bios.fade{
  opacity:0 !important;
  visibility:hidden !important;
  transition:opacity .25s ease, visibility .25s ease !important;
}
.bios-line{
  min-height:1.35em !important;
  white-space:pre-wrap !important;
}
.bios-click-line{
  color:#fff6a8 !important;
}
.bios-click-line.ready::after{
  content:"";
  display:inline-block;
  width:10px;
  height:18px;
  margin-left:6px;
  vertical-align:-2px;
  background:#cfcfcf;
  animation:biosCursorBlink .9s steps(1) infinite;
}
@keyframes biosCursorBlink{
  0%,49%{opacity:1}
  50%,100%{opacity:0}
}
.startup-crt{
  position:absolute !important;
  inset:0 !important;
  z-index:3 !important;
  pointer-events:none !important;
  background:
    linear-gradient(rgba(255,255,255,0.03), rgba(0,0,0,0.08)),
    repeating-linear-gradient(
      to bottom,
      rgba(255,255,255,0.06) 0px,
      rgba(255,255,255,0.06) 1px,
      rgba(0,0,0,0.02) 2px,
      rgba(0,0,0,0.02) 3px
    ) !important;
  mix-blend-mode:screen !important;
  animation:startupFlicker 0.12s infinite alternate !important;
}
@keyframes startupFlicker{
  0%{opacity:.35}
  100%{opacity:.6}
}


/* BIOS text visibility fix v1.36 */
.bios-line{
  visibility:visible !important;
  opacity:1 !important;
}


/* Settings window layout fix v1.37c */
#settingsWindow{
  display:flex;
  flex-direction:column;
}
#settingsWindow .content{
  display:flex;
  flex-direction:column;
  min-height:0;
  flex:1 1 auto;
  overflow:hidden;
}
#settingsWindow .explorer-grid{
  flex:0 0 auto;
  min-height:110px;
  margin-bottom:10px;
}
#settingsWindow #errorLogBox{
  display:block;
  width:100%;
  min-height:180px;
  height:180px;
  box-sizing:border-box;
  overflow-x:auto;
  overflow-y:auto;
  white-space:pre;
  word-break:normal;
  overflow-wrap:normal;
  background:#fff;
}
#settingsWindow .statusbar{
  margin-top:auto;
  box-sizing:border-box;
  width:100%;
  position:relative;
  left:0;
  right:0;
}


/* Shutdown screen message v1.38 */
.shutdown-screen{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#000;
}

.shutdown-screen img.shutdown-message{
  max-width:90%;
  height:auto;
  image-rendering:pixelated;
}


/* Shutdown screen + cameo v1.40 */
.shutdown-screen{
  position:fixed !important;
  inset:0 !important;
  background:#000 !important;
  z-index:50000 !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
.shutdown-screen:not(.hidden){
  display:flex !important;
}
.shutdown-screen .shutdown-message{
  max-width:90vw;
  max-height:80vh;
  width:auto;
  height:auto;
  image-rendering:auto;
}
.shutdown-clippy-cameo{
  position:fixed;
  right:40px;
  bottom:40px;
  z-index:50010;
  display:flex;
  flex-direction:column;
  align-items:center;
  animation:clippySlideIn .5s ease-out;
}
.shutdown-clippy-cameo .bubble{
  background:#ffffe1;
  border:2px solid #000;
  padding:10px 14px;
  margin-bottom:8px;
  font-family:Tahoma, sans-serif;
  font-size:14px;
  color:#000;
  max-width:260px;
}
.shutdown-clippy-cameo img{
  width:90px;
  height:auto;
}
@keyframes clippySlideIn{
  from { transform:translateY(30px); opacity:0; }
  to { transform:translateY(0); opacity:1; }
}


/* BIOS skip link + shutdown text v1.41 */
.bios-skip-link{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:100001;
  background:transparent;
  border:0;
  color:#fff;
  font:12px "Courier New", monospace;
  cursor:pointer;
  opacity:.9;
  padding:2px 4px;
}
.bios-skip-link:hover{
  text-decoration:underline;
}
.shutdown-screen{
  position:fixed !important;
  inset:0 !important;
  background:#000 !important;
  z-index:50000 !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  flex-direction:column !important;
}
.shutdown-screen:not(.hidden){
  display:flex !important;
}
.shutdown-screen .shutdown-text{
  color:#ff9966;
  font-family:"Courier New", monospace;
  font-size:clamp(28px, 4vw, 54px);
  line-height:1.35;
  text-align:center;
  max-width:90vw;
  white-space:pre-line;
  text-shadow:0 0 2px rgba(255,153,102,0.25);
}


/* Shutdown screen fixes v1.42 */
.shutdown-screen{
  position:fixed !important;
  inset:0 !important;
  background:#000 !important;
  z-index:50000 !important;
  overflow:hidden !important;
}
.shutdown-screen.hidden{
  display:none !important;
}
.shutdown-screen:not(.hidden){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-direction:column !important;
}
.shutdown-screen .shutdown-text{
  color:#ff9966 !important;
  font-family:"Courier New", monospace !important;
  font-size:clamp(28px, 4vw, 54px) !important;
  line-height:1.35 !important;
  text-align:center !important;
  max-width:90vw !important;
  white-space:pre-line !important;
  text-shadow:0 0 2px rgba(255,153,102,0.25) !important;
}
.shutdown-clippy-cameo{
  position:fixed !important;
  right:40px !important;
  bottom:40px !important;
  z-index:50010 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  animation:clippySlideIn .5s ease-out !important;
}
.shutdown-clippy-cameo .bubble{
  background:#ffffe1 !important;
  border:2px solid #000 !important;
  padding:10px 14px !important;
  margin-bottom:8px !important;
  font-family:Tahoma, sans-serif !important;
  font-size:14px !important;
  color:#000 !important;
  max-width:260px !important;
}
.shutdown-clippy-cameo img{
  width:90px !important;
  height:auto !important;
}


/* Window manager */
.titlebar{ cursor:move; }
.titlebar .winbtn{ cursor:default; }
.window.dragging{ user-select:none; }
.window.maximized{
  resize:none;
}
.task-buttons{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
}
.task-btn{
  height:26px;
  min-width:110px;
  max-width:180px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:0 10px;
  background:var(--win-gray,#c0c0c0);
  border-top:2px solid var(--win-light,#fff);
  border-left:2px solid var(--win-light,#fff);
  border-right:2px solid var(--win-shadow,#000);
  border-bottom:2px solid var(--win-shadow,#000);
  font-family:var(--font);
  font-size:12px;
  cursor:pointer;
}
.task-btn.active{
  border-top:2px solid var(--win-shadow,#000);
  border-left:2px solid var(--win-shadow,#000);
  border-right:2px solid var(--win-light,#fff);
  border-bottom:2px solid var(--win-light,#fff);
}
.task-btn-label{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Multimedia dropzone */
.multimedia-dropzone{
  position: relative;
}
.multimedia-dropzone.is-dragover{
  outline: 2px dashed #000080;
  outline-offset: -4px;
  background: rgba(0, 0, 128, 0.08);
}
.multimedia-drop-hint{
  grid-column: 1 / -1;
  font-size: 12px;
  padding: 8px;
  margin: 4px;
  border: 1px dashed #7f7f7f;
  background: #f3f3f3;
  color: #333;
}


/* AOL / AIM retro chat */
.aol-buddy-content,.aol-chat-content{display:flex;flex-direction:column;gap:8px}
.aim-buddy-toolbar{display:flex;gap:6px;margin-top:8px}
.aim-buddy-groups{background:#fff;border:2px solid var(--win-shadow,#000);border-right-color:var(--win-light,#fff);border-bottom-color:var(--win-light,#fff);padding:8px;min-height:240px}
.aim-group-title{font-weight:bold;color:#000080;margin-bottom:8px}
.aim-buddy-list{display:flex;flex-direction:column;gap:6px}
.aim-buddy{display:flex;align-items:center;gap:8px;padding:4px 6px;border:1px dotted #b5b5b5;background:#f8f8f8}
.aim-buddy img{width:16px;height:16px;image-rendering:pixelated}
.aim-buddy .sn{font-weight:bold}
.aim-buddy .meta{font-size:11px;color:#333}
.aim-chat-log{background:#fff;border:2px solid var(--win-shadow,#000);border-right-color:var(--win-light,#fff);border-bottom-color:var(--win-light,#fff);min-height:240px;max-height:300px;overflow:auto;padding:8px;font-family:"Courier New",monospace;font-size:12px;line-height:1.35;white-space:pre-wrap}
.aim-line{margin-bottom:5px}
.aim-line.system{color:#008000}
.aim-line.me{color:#000080;font-weight:bold}
.aim-chat-status{background:#fff;border:2px solid var(--win-shadow,#000);border-right-color:var(--win-light,#fff);border-bottom-color:var(--win-light,#fff);padding:4px 6px;font-size:12px}
.aim-compose-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.aim-chat-input{border:2px solid var(--win-shadow,#000);border-right-color:var(--win-light,#fff);border-bottom-color:var(--win-light,#fff);padding:6px;font:12px Tahoma,sans-serif;background:#fff;min-width:0}
.aim-chat-input:focus{outline:1px dotted #000;outline-offset:-3px}
.task-btn.has-unread{font-weight:bold;animation:taskFlash .8s steps(2,start) 5}
@keyframes taskFlash{50%{filter:invert(1)}}


/* v1.70 My Computer */
.mc-toolbar{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:4px 6px; background:var(--win-gray,#c0c0c0); border-top:1px solid var(--win-light,#fff); border-bottom:1px solid #808080; }
.mc-toolbar-group{ display:flex; align-items:center; gap:6px; }
.mc-toolbar-sep{ width:1px; height:24px; background:#808080; border-right:1px solid var(--win-light,#fff); }
.mc-content{ display:flex; gap:8px; min-height:320px; }
.mc-sidebar{ width:180px; background:#fff; border:2px solid var(--win-shadow,#000); border-right-color:var(--win-light,#fff); border-bottom-color:var(--win-light,#fff); padding:8px; overflow:auto; }
.mc-tree-btn{ display:flex; align-items:center; gap:6px; width:100%; padding:4px 6px; margin:0 0 2px; border:none; background:transparent; text-align:left; font-size:12px; cursor:pointer; }
.mc-tree-btn.active,.mc-tree-btn:hover{ background:#000080; color:#fff; }
.mc-tree-btn img{ width:16px; height:16px; image-rendering:pixelated; }
.mc-grid{ flex:1; background:#fff; border:2px solid var(--win-shadow,#000); border-right-color:var(--win-light,#fff); border-bottom-color:var(--win-light,#fff); align-content:flex-start; min-height:320px; }
.mc-dropzone{ position:relative; }
.mc-dropzone.is-dragover::after{ content:"Drop files to upload"; position:absolute; inset:12px; border:2px dashed #000080; background:rgba(192,192,192,0.85); display:flex; align-items:center; justify-content:center; font-weight:bold; z-index:5; }
.file-viewer-pre{ margin:0; width:100%; height:100%; min-height:0; box-sizing:border-box; background:#fff; border:2px solid var(--win-shadow,#000); border-right-color:var(--win-light,#fff); border-bottom-color:var(--win-light,#fff); padding:10px; overflow:auto; font:12px/1.35 "Courier New",monospace; white-space:pre-wrap; }
.file-viewer-pre.scene-viewer, .file-viewer-pre.scene-text-viewer{ background:#000; color:#c0c0c0; font:16px/1 "Courier New",monospace; white-space:pre; }
.file-viewer-pre.image-viewer{ background:#808080; display:flex; align-items:center; justify-content:center; padding:10px; overflow:auto; }
.file-viewer-pre .image-viewer-wrap{ display:flex; align-items:flex-start; justify-content:center; min-width:100%; min-height:100%; }
.file-viewer-pre .image-viewer-image{ display:block; max-width:none; image-rendering:auto; box-shadow:0 0 0 1px #222; }
.file-viewer-pre.scene-text-viewer{ padding:14px; }
.file-viewer-pre.scene-viewer{ padding:12px; display:block; overflow:auto; scrollbar-gutter:stable both-edges; }
.file-viewer-pre .scene-loading{ color:#c0c0c0; font:12px/1.4 "MS Sans Serif",Arial,sans-serif; }
.file-viewer-pre .scene-canvas{ max-width:none; image-rendering:pixelated; image-rendering:crisp-edges; box-shadow:0 0 0 1px #222; }
.dos-content{ background:#000; padding:0; }
.dos-output{ margin:0; min-height:280px; padding:10px; color:#c0c0c0; background:#000; font:12px/1.35 "Courier New",monospace; white-space:pre-wrap; }
@media (max-width: 800px){ .mc-content{ flex-direction:column; } .mc-sidebar{ width:auto; max-height:120px; } }


.quick-launch-btn--tiny{
  width:22px;
  height:22px;
  margin-left:0;
}
.quick-launch-btn--tiny img{
  width:12px;
  height:12px;
}


.mc-toolbar{
  display:none !important;
}

.mc-menubar{
  display:flex;
  gap:8px;
  padding:4px 8px;
  user-select:none;
}

.menu-item{
  position:relative;
  cursor:default;
  padding:2px 8px 3px;
  min-height:20px;
  display:flex;
  align-items:center;
}

.menu-item:hover,
.menu-item.menu-open{
  background:#000080;
  color:#fff;
}

.menu-dropdown{
  display:none;
  position:absolute;
  top:100%;
  left:-2px;
  margin-top:0;
  background:#c0c0c0;
  color:#000;
  border:2px solid;
  border-color:#fff #000 #000 #fff;
  min-width:160px;
  z-index:2000;
  box-shadow: 1px 1px 0 #000;
}

.menu-item:hover .menu-dropdown,
.menu-item.menu-open .menu-dropdown{
  display:block;
}

.menu-dropdown button{
  display:block;
  width:100%;
  border:none;
  background:transparent;
  padding:6px 12px;
  text-align:left;
  font:inherit;
  line-height:1.2;
  cursor:default;
}

.menu-dropdown button:hover,
.menu-dropdown button:focus{
  background:#000080;
  color:#fff;
  outline:none;
}

.file-viewer-pre .scene-canvas-wrap{ display:inline-block; max-width:100%; max-height:100%; }
.file-viewer-pre .scene-canvas-wrap.baud-sim{ position:relative; overflow:hidden; }
.file-viewer-pre .scene-canvas-wrap.baud-sim::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:#c0c0c0;
  opacity:.65;
  box-shadow:0 0 8px rgba(255,255,255,.45);
  animation:baudScanline .12s linear infinite;
  pointer-events:none;
}
.file-viewer-pre .baud-sim-content{ filter:contrast(1.04) brightness(1.02); }
@keyframes baudScanline{
  0%{ transform:translateY(0); }
  100%{ transform:translateY(3px); }
}

#fileViewerWindow{
  width:min(960px, calc(100% - 24px));
  height:min(90vh, calc(100% - 36px));
}
.file-viewer-pre.scene-viewer{
  white-space:normal;
}
.file-viewer-pre .scene-canvas-wrap{
  display:block;
  width:max-content;
  max-width:none;
  margin:0 auto;
}
.file-viewer-pre.scene-viewer.is-rendering{
  overflow-y:auto;
  overflow-x:auto;
}
.file-viewer-pre.scene-viewer.is-rendering .scene-canvas-wrap{
  min-height:1px;
}

.file-viewer-pre.scene-viewer{ overscroll-behavior:contain; }
.file-viewer-pre.scene-viewer.is-rendering{ scroll-behavior:auto; }


.file-viewer-pre.scene-viewer{
  padding:0;
  display:block;
  overflow:hidden;
  white-space:normal;
}
.file-viewer-pre.scene-viewer .scene-shell{
  height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
  background:#000;
}
.file-viewer-pre.scene-viewer .scene-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  background:#c0c0c0;
  color:#000;
  border-bottom:2px solid #808080;
  font:12px/1.2 "MS Sans Serif",Arial,sans-serif;
}
.file-viewer-pre.scene-viewer .scene-toolbar-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:bold;
}
.file-viewer-pre.scene-viewer .scene-speed-select{
  appearance:auto;
  font:12px "MS Sans Serif",Arial,sans-serif;
  padding:2px 4px;
}
.file-viewer-pre.scene-viewer .scene-toolbar-hint{
  color:#222;
}
.file-viewer-pre.scene-viewer .scene-scroll-viewport{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
  padding:12px;
  background:#000;
}
.file-viewer-pre.scene-viewer .scene-stage{
  display:block;
  width:max-content;
  min-width:100%;
  margin:0 auto;
}
.file-viewer-pre.scene-viewer .scene-grow{
  height:0;
  overflow:hidden;
}
.file-viewer-pre.scene-viewer .scene-sauce-wrap{
  border-top:1px solid #222;
  background:#050505;
}
.file-viewer-pre.scene-viewer .scene-sauce{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  padding:8px 10px;
  color:#bdbdbd;
  font:12px/1.3 "Courier New",monospace;
}
.file-viewer-pre.scene-viewer .scene-sauce strong{ color:#fff; }
.file-viewer-pre.scene-viewer .scene-loading{
  display:inline-block;
  padding:8px 10px;
  color:#c0c0c0;
  background:#000;
  font:12px/1.4 "MS Sans Serif",Arial,sans-serif;
}
.file-viewer-pre.scene-viewer .scene-canvas-wrap{
  display:block;
  width:max-content;
  max-width:none;
  margin:0 auto;
}
.file-viewer-pre.scene-viewer .scene-canvas{
  display:block;
  max-width:none;
  image-rendering:pixelated;
  image-rendering:crisp-edges;
  box-shadow:0 0 0 1px #222;
}
.file-viewer-pre.scene-viewer .scene-grow.baud-sim{
  position:relative;
}
.file-viewer-pre.scene-viewer .scene-grow.baud-sim::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:#c0c0c0;
  opacity:.65;
  box-shadow:0 0 8px rgba(255,255,255,.45);
  animation:baudScanline .12s linear infinite;
  pointer-events:none;
}
.file-viewer-pre.scene-viewer .scene-scroll-viewport.is-rendering{
  scroll-behavior:auto;
}

/* --- My Computer classic Explorer facelift --- */
#myComputerWindow{
  width:min(980px, calc(100% - 26px));
  height:min(620px, calc(100% - 54px));
}
.mc-toolbar-classic{
  gap:8px;
  padding:4px 6px;
  border-top:1px solid var(--win-light);
  border-bottom:1px solid var(--win-dark);
}
.mc-pathbar{
  margin:0 6px 6px;
  padding:4px 6px;
  min-height:28px;
  align-items:center;
}
.mc-pathbar .label{
  min-width:54px;
  font-weight:bold;
}
.mc-shell{
  padding:0 6px 6px;
  display:flex;
  flex-direction:row;
  gap:4px;
  min-height:0;
}
.mc-pane{
  min-height:0;
  display:flex;
  flex-direction:column;
}
.mc-pane-tree{
  flex:0 0 220px;
}
.mc-pane-list{
  flex:1 1 auto;
  min-width:0;
}
.mc-pane-head{
  height:22px;
  display:flex;
  align-items:center;
  padding:0 6px;
  font-size:12px;
  background:var(--win-gray);
  border-top:2px solid var(--win-light);
  border-left:2px solid var(--win-light);
  border-right:2px solid var(--win-shadow);
  border-bottom:1px solid var(--win-dark);
}
.mc-sidebar,
.mc-grid{
  background:#fff;
  border-top:2px solid var(--win-dark);
  border-left:2px solid var(--win-dark);
  border-right:2px solid var(--win-light);
  border-bottom:2px solid var(--win-light);
}
.mc-sidebar{
  flex:1 1 auto;
  overflow:auto;
  padding:6px 4px 10px;
}
.mc-tree-btn{
  display:flex;
  align-items:center;
  gap:4px;
  width:100%;
  min-height:22px;
  padding:2px 4px;
  margin:0;
  border:none;
  background:transparent;
  text-align:left;
  font-size:12px;
  cursor:pointer;
  color:#000;
}
.mc-tree-btn:hover,
.mc-tree-btn.active{background:#000080;color:#fff;}
.mc-tree-btn img{width:16px;height:16px;image-rendering:pixelated;flex:0 0 16px;}
.mc-tree-btn .tree-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:9px;
  height:9px;
  margin-right:2px;
  border:1px solid #7f7f7f;
  background:#fff;
  color:#000;
  font-size:9px;
  line-height:1;
  flex:0 0 9px;
}
.mc-tree-btn.active .tree-toggle,
.mc-tree-btn:hover .tree-toggle{border-color:#fff;}
.mc-tree-btn.tree-level-0{font-weight:bold;}
.mc-tree-btn.tree-level-1{padding-left:14px;}
.mc-tree-btn.tree-level-2{padding-left:28px;}
.mc-tree-btn.tree-level-3{padding-left:42px;}
.mc-tree-btn.disabled{color:#666;cursor:default;}
.mc-tree-btn.disabled:hover{background:transparent;color:#666;}
.mc-grid{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:8px 12px;
  padding:8px;
  overflow:auto;
}
.mc-grid .explorer-item{
  width:88px;
  min-height:82px;
  padding:4px;
}
.mc-grid .explorer-item img{width:32px;height:32px;image-rendering:pixelated;}
.mc-grid .explorer-item .label{
  font-size:12px;
  line-height:1.15;
}
.mc-statusbar{
  justify-content:space-between;
  gap:8px;
  padding:3px 6px;
}
.mc-statusbar span{
  height:18px;
  display:flex;
  align-items:center;
  padding:0 6px;
  border-top:1px solid var(--win-dark);
  border-left:1px solid var(--win-dark);
  border-right:1px solid var(--win-light);
  border-bottom:1px solid var(--win-light);
  background:transparent;
  white-space:nowrap;
}
#mcStatusText{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;}
#mcDiskStatus{flex:0 0 auto;}
