* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; overflow: hidden;
  font-family: "MS Sans Serif", "Microsoft Sans Serif", Tahoma, Geneva, sans-serif;
  font-size: 12px; color: #000; user-select: none;
  background: #008080;
}

#portal { position: fixed; inset: 0; width: 100vw; height: 100vh; display: block; z-index: 0; }

/* --- splash / boot --- */
#splash { position: fixed; inset: 0 0 32px 0; z-index: 30;
  display: flex; align-items: center; justify-content: center; }
.boot-win .content { font-family: "Courier New", monospace; font-size: 12px;
  line-height: 1.8; min-height: 120px; }
#boot-log span.t { color: #808080; }
#boot-continue { padding: 8px; text-align: center; }

/* --- main stage --- */
#stage { position: fixed; inset: 0 0 32px 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  padding-top: 30px; overflow-y: auto;
}
.blog-nav { width: 820px; max-width: 92vw; margin: 0 auto 10px; display: flex; }
.blog-window { width: 820px; max-width: 92vw; min-height: 160px; }

/* --- window chrome --- */
.win { background: #c0c0c0; padding: 2px;
  border: 2px solid; border-color: #dfdfdf #000 #000 #dfdfdf;
  box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #808080,
              2px 2px 0 #000;
  display: flex; flex-direction: column;
}
.title { display: flex; align-items: center; gap: 4px; height: 20px; padding: 2px 2px 2px 4px;
  background: linear-gradient(90deg,#000080,#1084d0); color: #fff; font-weight: bold;
  cursor: default; }
.win.inactive .title { background: linear-gradient(90deg,#808080,#c0c0c0); color: #dfdfdf; }
.title .ticon { width: 14px; height: 14px; flex: 0 0 14px;
  background-size: 14px 14px; background-repeat: no-repeat; }
.title .ttext { flex: 1 1 auto; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.title .tctl { display: flex; gap: 2px; }
.tctl button { width: 16px; height: 14px; padding: 0; font: bold 10px "Marlett","MS Sans Serif",sans-serif;
  background: #c0c0c0; border: 2px solid; border-color: #fff #000 #000 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080;
  line-height: 8px; cursor: pointer; color: #000;
}
.tctl button:active { border-color: #000 #fff #fff #000;
  box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf; }

.statusbar { display: flex; gap: 2px; padding: 2px; background: #c0c0c0; }
.statusbar .cell { flex: 1; padding: 2px 8px;
  border: 2px solid; border-color: #808080 #fff #fff #808080;
  background: #c0c0c0; font-size: 11px;
}
.statusbar .cell + .cell { flex: 0 0 auto; min-width: 140px; text-align: right; }

.content { background: #fff; margin: 2px;
  border: 2px solid; border-color: #808080 #fff #fff #808080;
  padding: 10px 14px; overflow: auto; color: #000; user-select: text;
  max-height: 62vh; min-height: 160px;
}
.content h1, .content h2, .content h3 { font-family: "Times New Roman", Georgia, serif; margin: 0 0 .4em; }
.content h1 { font-size: 24px; }
.content h2 { font-size: 18px; }
.content p { margin: 0 0 .8em; font-size: 14px; line-height: 1.5; }
.content a { color: #0000ee; }
.content code, .content pre { font-family: "Courier New", monospace; background: #e6e6e6; }
.content pre { padding: 8px; border: 1px dashed #808080; overflow: auto; }
.content ul { margin: 0 0 .8em 1.2em; padding: 0; }

/* --- blog list --- */
.blog-list { padding: 6px 2px; }
.blog-item { padding: 12px; border-bottom: 1px solid #c0c0c0;
  margin-bottom: 4px; cursor: pointer; transition: background 50ms; }
.blog-item:hover { background: #e8e8e8; }
.blog-item a { text-decoration: none; color: inherit; display: block; }
.blog-item-title { font-size: 16px; font-weight: 700; }
.blog-item-title .ext { font-size: 11px; color: #808080; font-weight: normal; margin-left: 4px; }
.blog-item-desc { font-size: 13px; margin-top: 8px; line-height: 1.45; }
.blog-item-date { font-size: 12px; color: gray; margin-top: 4px; }

/* --- buttons --- */
button.win95 { font: 12px "MS Sans Serif",Tahoma,sans-serif; padding: 4px 14px;
  background: #c0c0c0; border: 2px solid; border-color: #fff #000 #000 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080;
  cursor: pointer; min-width: 80px; color: #000; }
button.win95:active { border-color: #000 #fff #fff #000;
  box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf; }
button.win95:focus { outline: 1px dotted #000; outline-offset: -4px; }

/* --- bevels --- */
.bevel-out { border: 2px solid; border-color: #fff #000 #000 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080; background: #c0c0c0; }
.bevel-in { border: 2px solid; border-color: #808080 #fff #fff #808080;
  box-shadow: inset 1px 1px 0 #000, inset -1px -1px 0 #dfdfdf; background: #c0c0c0; }

/* --- icons (css-drawn) --- */
.ico-computer { background:
    linear-gradient(#c0c0c0,#c0c0c0) 1px 9px/12px 3px no-repeat,
    linear-gradient(#000,#000) 1px 1px/12px 8px no-repeat,
    linear-gradient(#1084d0,#6ac4ff) 2px 2px/10px 6px no-repeat; }
.ico-folder { background:
    linear-gradient(#ffcc66,#d9a441) 1px 4px/12px 9px no-repeat,
    linear-gradient(#ffcc66,#d9a441) 1px 2px/6px 3px no-repeat; }
.ico-mail { background: linear-gradient(#fff,#fff) 1px 3px/12px 8px no-repeat; outline: 1px solid #000; }
.ico-note { background: linear-gradient(#fff,#fff) 2px 1px/10px 12px no-repeat; outline: 1px solid #000; }
.ico-power { background: radial-gradient(circle, #f66 0 40%, #000 42% 48%, transparent 50%) center/12px 12px no-repeat; }

/* --- taskbar --- */
#taskbar { position: fixed; left: 0; right: 0; bottom: 0; height: 32px; z-index: 40;
  display: flex; align-items: center; gap: 4px; padding: 2px 3px; background: #c0c0c0; }
#start-btn { display: flex; align-items: center; gap: 4px; height: 24px; padding: 0 6px;
  font: bold 12px "MS Sans Serif",Tahoma,sans-serif; cursor: pointer; color: #000; }
#start-btn svg { display: block; }
#start-btn.active { border-color: #000 #fff #fff #000;
  box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf; }
#task-sep { width: 2px; height: 22px; margin: 0 2px; padding: 0; }
#task-windows { flex: 1; display: flex; gap: 3px; overflow: hidden; }
.task-btn { height: 22px; min-width: 140px; max-width: 180px; padding: 0 6px;
  display: flex; align-items: center; gap: 6px;
  background: #c0c0c0; border: 2px solid; border-color: #fff #000 #000 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080;
  font: 11px "MS Sans Serif",Tahoma,sans-serif; cursor: pointer; color: #000;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.task-btn.active { border-color: #000 #fff #fff #000;
  box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf;
  background: repeating-linear-gradient(45deg,#c0c0c0 0 2px,#a0a0a0 2px 4px); }
#tray { height: 22px; display: flex; align-items: center; padding: 0 8px; gap: 6px; }
#clock { font: 11px "MS Sans Serif",Tahoma,sans-serif; }
.tray-divider { width: 2px; height: 16px; background: #808080; border-right: 1px solid #fff; }
.music-controls { display: flex; gap: 2px; }
.tray-icon { width: 20px; height: 18px; padding: 0; background: #c0c0c0;
  border: 2px solid; border-color: #fff #000 #000 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080;
  font: bold 10px Arial,sans-serif; cursor: pointer; color: #000; line-height: 10px; }
.tray-icon:active { border-color: #000 #fff #fff #000;
  box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf; }

/* --- start menu --- */
#start-menu { position: fixed; left: 2px; bottom: 34px; z-index: 41;
  display: flex; width: 210px; padding: 3px; }
#start-menu[hidden] { display: none; }
#bsod[hidden] { display: none; }
#boot-continue[hidden] { display: none; }
#back-home[hidden] { display: none; }
#start-side { width: 22px; background: linear-gradient(#808080,#000080);
  color: #c0c0c0; writing-mode: vertical-rl; transform: rotate(180deg);
  padding: 8px 2px; font: bold 14px "MS Sans Serif",Tahoma,sans-serif;
  letter-spacing: 1px; }
#start-side b { color: #fff; }
#start-menu ul { list-style: none; margin: 0; padding: 2px 0; flex: 1; }
#start-menu li { display: flex; align-items: center; gap: 8px; padding: 5px 8px;
  cursor: pointer; font-size: 13px; color: #000; }
#start-menu li i { width: 18px; height: 18px; display: inline-block; }
#start-menu li:hover { background: #000080; color: #fff; }
#start-menu li.sep { height: 1px; padding: 0; margin: 3px 4px;
  background: #808080; border-bottom: 1px solid #fff; pointer-events: none; }

/* --- bsod / shutdown --- */
#bsod { position: fixed; inset: 0; z-index: 100; background: #000080; color: #fff;
  font-family: "Courier New", monospace; padding: 20vh 10vw; }
#bsod pre { white-space: pre-wrap; font-size: 16px; line-height: 1.6; }
#bsod a { color: yellow; }

/* --- scrollbar --- */
::-webkit-scrollbar { width: 16px; height: 16px; }
::-webkit-scrollbar-track { background: repeating-linear-gradient(45deg,#dfdfdf 0 2px,#c0c0c0 2px 4px); }
::-webkit-scrollbar-thumb { background: #c0c0c0;
  border: 2px solid; border-color: #fff #000 #000 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080; }
::-webkit-scrollbar-corner { background: #c0c0c0; }

/* guestbook form */
.gb-form { display: grid; grid-template-columns: 90px 1fr; gap: 6px 8px; align-items: center; }
.gb-form input, .gb-form textarea {
  font: 13px "MS Sans Serif","Microsoft Sans Serif",Tahoma,sans-serif;
  background: #fff; border: 2px solid; border-color: #808080 #fff #fff #808080;
  padding: 4px; width: 100%;
}
.gb-form textarea { min-height: 70px; resize: vertical; }
.gb-actions { grid-column: 2; display: flex; gap: 6px; }
.gb-entry { border-top: 1px dashed #808080; margin-top: 10px; padding-top: 6px; }

@media (max-width: 700px) {
  .blog-window, .blog-nav { width: 96vw; }
  .content { max-height: 70vh; }
  .music-controls { display: none; }
}
