| :root { |
| --amber: #f59e0b; |
| --amber-dark: #92400e; |
| --terminal-bg: rgba(2, 6, 23, 0.95); |
| --scan-line: rgba(245, 158, 11, 0.1); |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| body { |
| font-family: 'JetBrains Mono', monospace; |
| background: #000; |
| } |
|
|
| .font-mono { |
| font-family: 'JetBrains Mono', monospace; |
| } |
|
|
| |
| .scanlines { |
| background: linear-gradient( |
| to bottom, |
| rgba(255,255,255,0), |
| rgba(255,255,255,0) 50%, |
| rgba(0,0,0,0.2) 50%, |
| rgba(0,0,0,0.2) |
| ); |
| background-size: 100% 4px; |
| animation: scanline 10s linear infinite; |
| } |
|
|
| @keyframes scanline { |
| 0% { background-position: 0 0; } |
| 100% { background-position: 0 100%; } |
| } |
|
|
| |
| .stars { |
| background-image: |
| radial-gradient(2px 2px at 20px 30px, #eee, rgba(0,0,0,0)), |
| radial-gradient(2px 2px at 40px 70px, #fff, rgba(0,0,0,0)), |
| radial-gradient(2px 2px at 50px 160px, #ddd, rgba(0,0,0,0)), |
| radial-gradient(2px 2px at 90px 40px, #fff, rgba(0,0,0,0)), |
| radial-gradient(2px 2px at 130px 80px, #fff, rgba(0,0,0,0)), |
| radial-gradient(2px 2px at 160px 120px, #ddd, rgba(0,0,0,0)); |
| background-repeat: repeat; |
| background-size: 200px 200px; |
| animation: twinkle 5s ease-in-out infinite alternate; |
| } |
|
|
| @keyframes twinkle { |
| from { opacity: 0.3; } |
| to { opacity: 0.6; } |
| } |
|
|
| |
| .glass { |
| backdrop-filter: blur(10px); |
| -webkit-backdrop-filter: blur(10px); |
| } |
|
|
| |
| .window { |
| min-width: 300px; |
| min-height: 200px; |
| resize: both; |
| overflow: auto; |
| transition: transform 0.1s ease; |
| animation: windowOpen 0.3s ease-out; |
| } |
|
|
| .window.dragging { |
| opacity: 0.9; |
| transform: scale(1.02); |
| box-shadow: 0 20px 50px rgba(245, 158, 11, 0.2); |
| } |
|
|
| .window.minimized { |
| display: none !important; |
| } |
|
|
| .window.active { |
| z-index: 9999 !important; |
| border-color: rgba(245, 158, 11, 0.8); |
| box-shadow: 0 0 30px rgba(245, 158, 11, 0.15); |
| } |
|
|
| @keyframes windowOpen { |
| from { |
| opacity: 0; |
| transform: scale(0.95); |
| } |
| to { |
| opacity: 1; |
| transform: scale(1); |
| } |
| } |
|
|
| |
| .custom-scrollbar::-webkit-scrollbar { |
| width: 8px; |
| height: 8px; |
| } |
|
|
| .custom-scrollbar::-webkit-scrollbar-track { |
| background: rgba(0, 0, 0, 0.3); |
| border-radius: 4px; |
| } |
|
|
| .custom-scrollbar::-webkit-scrollbar-thumb { |
| background: linear-gradient(to bottom, var(--amber-dark), var(--amber)); |
| border-radius: 4px; |
| border: 1px solid rgba(0, 0, 0, 0.5); |
| } |
|
|
| .custom-scrollbar::-webkit-scrollbar-thumb:hover { |
| background: var(--amber); |
| } |
|
|
| |
| .window-header:hover { |
| background: linear-gradient(to right, rgba(245, 158, 11, 0.1), rgba(0, 0, 0, 0.3)); |
| } |
|
|
| |
| .window-content p { |
| text-shadow: 0 0 1px rgba(245, 158, 11, 0.1); |
| } |
|
|
| |
| @media (max-width: 768px) { |
| .window { |
| position: fixed !important; |
| top: 60px !important; |
| left: 10px !important; |
| right: 10px !important; |
| width: auto !important; |
| bottom: 60px !important; |
| height: auto !important; |
| } |
| |
| .window-header { |
| cursor: default; |
| } |
| } |
|
|
| |
| .blink { |
| animation: blink 1s step-end infinite; |
| } |
|
|
| @keyframes blink { |
| 50% { opacity: 0; } |
| } |
|
|
| |
| ::selection { |
| background: rgba(245, 158, 11, 0.3); |
| color: #fff; |
| } |
|
|
| |
| .taskbar-btn.active { |
| background: rgba(245, 158, 11, 0.3); |
| border-color: var(--amber); |
| } |
|
|
| |
| .window-content img { |
| transition: all 0.3s ease; |
| } |
|
|
| .window-content img:hover { |
| transform: scale(1.02); |
| box-shadow: 0 0 20px rgba(245, 158, 11, 0.3); |
| } |
|
|
| |
| .typewriter { |
| overflow: hidden; |
| border-right: 2px solid var(--amber); |
| white-space: nowrap; |
| animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite; |
| } |
|
|
| @keyframes typing { |
| from { width: 0 } |
| to { width: 100% } |
| } |
|
|
| @keyframes blink-caret { |
| from, to { border-color: transparent } |
| 50% { border-color: var(--amber) } |
| } |