:root{--dos-black:#000000;--dos-blue:#0000AA;--dos-green:#00AA00;--dos-cyan:#00AAAA;--dos-red:#AA0000;--dos-magenta:#AA00AA;--dos-brown:#AA5500;--dos-light-gray:#AAAAAA;--dos-dark-gray:#555555;--dos-light-blue:#5555FF;--dos-light-green:#55FF55;--dos-light-cyan:#55FFFF;--dos-light-red:#FF5555;--dos-light-magenta:#FF55FF;--dos-yellow:#FFFF55;--dos-white:#FFFFFF;--window-bg:#C0C0C0;--window-border:#FFFFFF;--window-shadow:#808080;--title-bar-active:#000080;--title-bar-inactive:#808080;--text-primary:#000000;--text-inverse:#FFFFFF;--input-bg:#FFFFFF;--button-face:#C0C0C0;--selection:#000080;--font-dos:"Pretendard",-apple-system,BlinkMacSystemFont,system-ui,Roboto,"Helvetica Neue","Segoe UI","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;--font-size-base:14px;--line-height:1.4;--char-width:8px;--char-height:16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-dos);font-size:var(--font-size-base);line-height:var(--line-height);background:#008080;background-image:repeating-linear-gradient(90deg,transparent,transparent 10px,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 20px);color:var(--text-primary);min-height:100vh;display:flex;align-items:center;justify-content:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:20px 0}.dos-window{background:var(--window-bg);border:2px solid;border-color:var(--window-border) var(--window-shadow) var(--window-shadow) var(--window-border);box-shadow:1px 1px 0 #000000;min-width:1024px;max-width:1400px;width:90vw;position:relative;margin:20px 0 60px}.dos-title-bar{background:var(--title-bar-active);color:var(--text-inverse);padding:4px 6px;font-weight:600;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dos-title-bar-buttons{display:flex;gap:2px}.dos-title-bar-button{background:var(--button-face);border:1px solid;border-color:var(--window-border) var(--window-shadow) var(--window-shadow) var(--window-border);padding:2px 6px;font-family:var(--font-dos);font-size:12px;font-weight:600;cursor:pointer;color:var(--text-primary)}.dos-title-bar-button:active{border-color:var(--window-shadow) var(--window-border) var(--window-border) var(--window-shadow)}.dos-menu-bar{background:var(--window-bg);border-bottom:2px solid;border-color:var(--window-shadow) var(--window-border);padding:2px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dos-menu-item{padding:4px 8px;display:inline-block;cursor:pointer}.dos-menu-item:hover:not(.disabled){background:var(--selection);color:var(--text-inverse)}.dos-menu-item.disabled{opacity:.5;cursor:not-allowed;color:var(--dos-dark-gray)}.dos-menu-item.disabled:hover{background:transparent;color:var(--dos-dark-gray)}.dos-window-content{padding:8px;min-height:400px}.dos-button{background:var(--button-face);border:2px solid;border-color:var(--window-border) var(--window-shadow) var(--window-shadow) var(--window-border);padding:6px 16px;font-family:var(--font-dos);font-size:var(--font-size-base);font-weight:500;cursor:pointer;color:var(--text-primary);min-width:80px}.dos-button:active{border-color:var(--window-shadow) var(--window-border) var(--window-border) var(--window-shadow)}.dos-button:focus{outline:1px dotted #000000;outline-offset:-4px}.dos-button:disabled{color:var(--window-shadow);cursor:not-allowed}.dos-input,.dos-textarea{background:var(--input-bg);border:2px solid;border-color:var(--window-shadow) var(--window-border) var(--window-border) var(--window-shadow);padding:4px;font-family:var(--font-dos);font-size:var(--font-size-base);color:var(--text-primary);width:100%}.dos-textarea{resize:none;min-height:120px}.dos-input:focus,.dos-textarea:focus{outline:none}.dos-tab-container{border:2px solid;border-color:var(--window-border) var(--window-shadow) var(--window-shadow) var(--window-border);background:var(--window-bg)}.dos-tab-header{display:flex;border-bottom:2px solid var(--window-border)}.dos-tab,.dos-tab-header{background:var(--window-bg)}.dos-tab{padding:4px 16px;border:2px solid;border-bottom:none;margin-right:2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dos-tab.active{background:var(--input-bg);border-bottom:2px solid var(--input-bg);position:relative;top:2px;z-index:1}.dos-tab-content{padding:24px;background:var(--input-bg);min-height:400px}.dos-status-bar{background:var(--window-bg);border-top:2px solid;border-color:var(--window-border) var(--window-shadow);padding:4px 8px;font-size:12px;font-weight:500;display:flex;gap:16px}.dos-status-section{padding:0 4px;border:1px solid;border-color:var(--window-shadow) var(--window-border) var(--window-border) var(--window-shadow)}@keyframes dos-blink{0%,49%{opacity:1}50%,to{opacity:0}}.dos-cursor{display:inline-block;width:8px;height:16px;background:var(--text-primary);animation:dos-blink 1s infinite;vertical-align:text-bottom}.dos-progress-bar{display:flex;align-items:center;gap:8px;padding:8px}.dos-progress-track{flex:1 1;height:20px;border:2px solid;border-color:var(--window-shadow) var(--window-border) var(--window-border) var(--window-shadow);background:var(--input-bg);position:relative;overflow:hidden}.dos-progress-fill{height:100%;background:var(--selection);transition:width .3s ease}.dos-progress-text{min-width:50px;text-align:right}.dos-alert{border:3px double #000000;background:var(--window-bg);padding:16px;text-align:center;margin:16px 0}.dos-alert-error{color:var(--dos-red)}.dos-alert-success{color:var(--dos-green)}.dos-alert-warning{color:var(--dos-brown)}@keyframes dos-typing{0%{width:0}to{width:100%}}.dos-typing{overflow:hidden;white-space:nowrap;animation:dos-typing 2s steps(40)}@keyframes dos-scanlines{0%{background-position:0 0}to{background-position:0 10px}}.dos-scanlines:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(transparent 50%,rgba(0,0,0,.03) 0);background-size:100% 4px;animation:dos-scanlines 8s linear infinite;pointer-events:none;z-index:1}@media (max-width:1100px){.dos-window{min-width:unset;width:95vw;max-width:100%}.translator-main{flex-direction:column!important}}@media (max-width:768px){body{padding:20px 8px}.dos-window{min-width:unset;width:100%}.dos-tab{padding:4px 8px;font-size:12px}.dos-tab-content{padding:16px}}@media (max-width:1024px) and (min-width:769px){body{padding:20px 8px}}@media (prefers-contrast:high){:root{--window-bg:#FFFFFF;--text-primary:#000000;--selection:#000000}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}.dos-sejong-message{color:var(--dos-blue);font-weight:700;font-style:italic}.dos-mascot{animation:float 3s ease-in-out infinite}.pixelated{-ms-interpolation-mode:nearest-neighbor}.pixelated,.pixelated svg{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.pixelated svg{shape-rendering:crispEdges}.sejong-mascot-image{filter:contrast(1.2) saturate(1.1);transition:transform .2s ease}.sejong-mascot-image:hover{transform:scale(1.05)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.hangul-day-banner{position:fixed;top:0;left:0;right:0;background:linear-gradient(90deg,var(--dos-blue),var(--dos-cyan));color:var(--text-inverse);text-align:center;padding:4px;font-size:12px;z-index:9999;animation:rainbow 5s linear infinite}@keyframes rainbow{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(1turn)}}.scholar-badge{display:inline-block;background:var(--dos-yellow);color:var(--dos-black);padding:2px 8px;border:1px solid var(--dos-black);font-size:10px;font-weight:700;margin-left:8px}.sejong-quote-enter{animation:slideInFromBottom .5s ease-out}@keyframes slideInFromBottom{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInBounce{0%{opacity:0;transform:translateY(20px) scale(.8)}50%{transform:translateY(-5px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}.speech-bubble{animation:fadeInBounce .5s ease-out}@keyframes bubbleFloat{0%,to{transform:translateY(0) rotate(-1deg)}25%{transform:translateY(-2px) rotate(1deg)}75%{transform:translateY(2px) rotate(-1deg)}}.speech-bubble:hover{animation:bubbleFloat 2s ease-in-out infinite}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}