.terminal-page{margin:0;padding:0;height:100vh;background:#d8d8d8;font-family:Menlo,SF Mono,Monaco,Courier New,monospace;font-size:13px;color:#000;display:flex;overflow:hidden}.terminal-page ::selection{color:#fff;background-color:#3b82f6}.terminal-page ::-moz-selection{color:#fff;background-color:#3b82f6}.terminal-page .window{width:100vw;height:100vh;background:#fff;overflow:hidden;display:flex;flex-direction:column}.terminal-page .titlebar{height:38px;background:linear-gradient(180deg,#e8e6e8,#d6d4d6);border-bottom:1px solid #b5b3b5;display:flex;align-items:center;padding:0 12px;position:relative;flex-shrink:0;-moz-user-select:none;user-select:none;-webkit-user-select:none}.terminal-page .titlebar-buttons{display:flex;gap:8px}.terminal-page .btn{width:12px;height:12px;border-radius:50%;border:.5px solid rgba(0,0,0,.12)}.terminal-page .btn-close{background:#ff5f57}.terminal-page .btn-minimize{background:#febc2e}.terminal-page .btn-maximize{background:#28c840}.terminal-page .titlebar-title{position:absolute;left:50%;transform:translateX(-50%);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:13px;font-weight:500;color:#4d4d4d;white-space:nowrap}.terminal-page .terminal-body{flex:1 1;padding:8px 12px;overflow-y:auto;background:#fff;min-height:0}.terminal-page textarea{left:-1000px;position:absolute}.terminal-page b{font-weight:700;text-decoration:none}.terminal-page .terminal{width:100%;position:relative}.terminal-page .ascii-art{width:100%;text-align:left;overflow-x:auto}.terminal-page .ascii-art span{display:block;font-family:Menlo,SF Mono,Monaco,monospace;white-space:pre-wrap;word-wrap:break-word;font-size:1em;color:#000}@media (max-width:768px){.terminal-page .ascii-art span{font-size:.7em}}@media (max-width:550px){.terminal-page .ascii-art span{font-size:.5em}}.terminal-page .cursor{font-size:12px;color:#000;background-color:#000;position:relative;opacity:1;height:1.5em;width:8px;max-width:8px;transform:translateY(3px);overflow:hidden;text-indent:-5px;display:inline-block;animation:blinker 1s step-end infinite}@keyframes blinker{50%{opacity:0}}.terminal-page .command{cursor:text;min-height:22px;color:#000;position:relative}.terminal-page .liner{line-height:1.5em;animation:show .5s ease forwards;animation-delay:1.2s;opacity:0}.terminal-page .liner:before{color:#000;content:"(base) visitor@wenhaohe ~ %";font-weight:700}@keyframes show{0%{opacity:0}to{opacity:1}}.terminal-page .output-line{display:block;line-height:1.5em;margin:0;overflow:hidden;white-space:pre;animation:typing .5s steps(30);text-align:left;color:#000}.terminal-page .output-line:has(.welcome){text-align:center}@media (max-width:768px){.terminal-page .output-line{white-space:pre-wrap;word-break:break-word}}.terminal-page .no-animation{animation:typing steps(30) 0}.terminal-page .margin{margin-left:20px}@keyframes typing{0%{width:0}to{width:100%}}.terminal-page .welcome{color:#555;font-weight:400;display:inline}.terminal-page .name{color:#000;font-weight:700}.terminal-page .color2{color:#555}.terminal-page .command-text{color:#0432ff;font-weight:700}.terminal-page .error{color:#c41a16}.terminal-page .inherit{color:#555}.terminal-page .crt-transition{position:fixed;inset:0;z-index:9999;background:#0a0908;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;visibility:hidden}.terminal-page .crt-transition.active{pointer-events:all;visibility:visible;animation:crt-takeover 1.1s ease-out forwards}.terminal-page .crt-scanline{position:absolute;top:0;left:0;width:100%;height:3px;background:#40E0A5;box-shadow:0 0 12px 4px rgba(64,224,165,.6),0 0 40px 8px rgba(64,224,165,.25);opacity:0}.terminal-page .crt-transition.active .crt-scanline{animation:scanline-sweep .6s ease-in-out .35s forwards}.terminal-page .crt-text{font-family:Menlo,SF Mono,monospace;font-size:16px;color:#40E0A5;opacity:0;text-shadow:0 0 8px rgba(64,224,165,.6)}.terminal-page .crt-transition.active .crt-text{animation:crt-text-in .3s ease .5s forwards}.terminal-page .crt-dots{animation:dots-blink .6s step-end infinite}@keyframes crt-takeover{0%{opacity:0}8%{opacity:1}14%{opacity:.3}20%{opacity:1}25%{opacity:.5}32%{opacity:1}to{opacity:1}}@keyframes scanline-sweep{0%{top:0;opacity:1}to{top:100%;opacity:.3}}@keyframes crt-text-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dots-blink{50%{opacity:0}}@media (max-width:768px){.terminal-page .titlebar-title{font-size:12px}.terminal-page .liner:before,.terminal-page .output-line{font-size:13px}}@media (max-width:550px){.terminal-page{font-size:11px}.terminal-page .cursor{font-size:8px;height:1em;width:6px}.terminal-page .liner:before,.terminal-page .output-line{font-size:11px}}