/* Un estudio de los 90: marfil, aluminio y cobalto, también dentro del ordenador. */
:root{--font-ui:"Lato",Arial,sans-serif;--font-body:var(--font-ui);--font-display:var(--font-ui);--chrome:#e7eaed;--control-border:#8f99a5;--control-shadow:inset 1px 1px #fff,inset -1px -1px #b4bcc5;--crt-strength:.08}
body,button,input,select,textarea,summary,output{font-family:var(--font-ui)}
button,input,textarea,summary{letter-spacing:0}button,summary{font-weight:700}button:disabled{cursor:default}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.texture:before{background:repeating-linear-gradient(0deg,#19283d 0 1px,transparent 1px 4px);opacity:calc(var(--crt-strength)*.3);mix-blend-mode:multiply}
.texture:after{background:none}.ambient{opacity:calc(var(--crt-strength)*.06)!important}
.screen{border-color:#607082;box-shadow:inset 0 0 0 1px #fff7;border-radius:5px}
.desktop{background-image:radial-gradient(#29425a18 .65px,transparent .65px)}
.system-bar{background:linear-gradient(#f7f7f3,#e8eaeb);border-bottom:1px solid #8f99a5;box-shadow:0 1px #fff7}
.system-launcher,.arrange-menu summary{padding:7px 9px;border-radius:2px}.system-launcher:hover,.arrange-menu summary:hover,.arrange-menu[open] summary{background:#d9e1ec}
.active-app{font-size:12px}.system-status{font-weight:700}.clock{letter-spacing:.4px}
.system-launcher strong{font-weight:800}.desktop-signature{font-style:normal;font-weight:700;opacity:.55}.desktop-signature span{font-size:11px;letter-spacing:1.8px}
.window{border:1px solid #66768a;border-radius:3px;box-shadow:4px 5px 0 #26385326,0 8px 24px #20334d15}
.window.is-front{box-shadow:6px 7px 0 #26385329,0 14px 38px #20334d25}
.window-bar{background:linear-gradient(#e9eced,#d5dbe0);border-bottom:1px solid #8896a7;padding-left:11px}
.window.is-front .window-bar{background:linear-gradient(90deg,#254b95,#466bac);border-color:#244884;color:#fff}
.window-title{font-size:14px;font-weight:700}.window-controls button{background:var(--chrome);border-color:#758293;box-shadow:var(--control-shadow);border-radius:1px}
.window-controls button:active{box-shadow:inset 1px 1px #657486}.window-controls button:hover{background:#fff}.window-controls .close-window:hover{background:#bd5140;border-color:#a04435}
.window-scroll,.project-files,.image-scroll,.terminal-output,.system-popover{scrollbar-width:thin;scrollbar-color:#919faf #e1e5e9}
::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#e1e5e9}::-webkit-scrollbar-thumb{background:#a0acba;border:2px solid #e1e5e9;border-radius:1px}
.taskbar{border:1px solid #7f8c9b;box-shadow:var(--control-shadow),2px 3px #26385326;border-radius:2px;background:var(--chrome)}
.window-task[aria-pressed=true]{background:#d0dced;color:#233e69;border-color:#7e94b4;box-shadow:inset 1px 1px #8296b4}.window-task[aria-pressed=true] img{filter:grayscale(1)}
.app-launcher{border:1px solid #7f8c9b;border-radius:2px;box-shadow:var(--control-shadow),5px 6px #26385340;background:var(--chrome)}
.launcher-heading{background:#f4f4f1;margin:0 0 6px}.launcher-heading strong{font-size:19px}.app-launcher>button{font-size:14px}.app-launcher>button:hover,.app-launcher>button:focus-visible{background:var(--accent);color:#fff}.app-launcher>button:hover img,.app-launcher>button:focus-visible img{filter:none}
.readme-content h2{font-size:39px;font-weight:800;letter-spacing:-1.3px;line-height:1.12}.readme-content .readme-signature{font-style:normal;font-weight:700;font-size:20px}
.project-description-pane h2{font-size:31px;font-weight:800;letter-spacing:-.8px;line-height:1.12}.contact-content h2,.settings-content h2{font-weight:800;letter-spacing:-.6px}.about-content h2{font-weight:800}
.readme-content>p{font-size:16px;line-height:1.65}.file-kicker{letter-spacing:1.5px!important}.readme-note p,.field-note{color:#5d6774}
.file-info strong{font-weight:700}.project-file:hover{box-shadow:2px 3px #29477140;transform:translateY(-1px)}.tech-tags span{color:#465a75}
.empty-state button,.readme-actions button,.settings-content button,.contact-content button,.paint-toolbar button,.button-link,.cv-viewer button,.view-switch button,.zoom-controls button,.window-task,.system-select,.palette-custom button{
  background:var(--chrome);border:1px solid var(--control-border);border-radius:2px;box-shadow:var(--control-shadow);color:var(--ink);font:700 14px/1.3 var(--font-ui);min-height:34px;
}
.empty-state button:hover,.readme-actions button:hover,.settings-content button:hover,.contact-content button:hover,.paint-toolbar button:hover:not(:disabled),.button-link:hover,.cv-viewer button:hover,.system-select:hover,.palette-custom button:hover{background:#f6f8fb;border-color:#667f9e}
.empty-state button:active,.readme-actions button:active,.paint-toolbar button:active:not(:disabled),.button-link:active,.system-select[aria-expanded=true]{box-shadow:inset 1px 1px #9ba9b9;background:#dbe3ed}
.primary-action{background:var(--accent)!important;border:1px solid #20458b!important;box-shadow:inset 1px 1px #ffffff36!important;color:#fff!important;border-radius:2px!important;font-weight:700!important}.primary-action:hover{background:#3765b8!important}
.view-switch button[aria-pressed=true],.paint-toolbar button[aria-pressed=true]{background:#d1ddef;color:#234474;border-color:#7f95b4;box-shadow:inset 1px 1px #8199b9}
.view-switch button,.zoom-controls button{font-size:17px}.paint-toolbar button{font-size:13px;padding:6px 9px}.paint-toolbar .primary-action{min-height:34px}
.window-status button{box-shadow:none;background:none;border:0;min-height:0}.window-status{background:#e9eced}.cv-button{border:1px solid var(--control-border);border-radius:2px;box-shadow:var(--control-shadow);background:var(--chrome)}.cv-button:hover{transform:none;box-shadow:inset 1px 1px #fff;background:#f8f9fa}
input[type=search],input[type=text],input:not([type]),textarea{background:#fffefa;border:1px solid #8996a6;border-radius:2px;box-shadow:inset 1px 1px #c9cfd5;font:400 15px/1.4 var(--font-ui);padding:8px 10px}
.search-field input{padding-left:33px;min-height:36px}.search-field>span{color:#657b97}.contact-content label{font-weight:700;font-size:14px}
.technology-filter{gap:9px;font-size:13px;flex:none}.system-select{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 10px;min-width:150px;text-align:left;white-space:nowrap}
.system-select>span:first-child{overflow:hidden;text-overflow:ellipsis}.control-chevron{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;flex:none}
.system-popover{position:fixed;z-index:90;margin:0;padding:5px;background:#f4f4f0;color:var(--ink);border:1px solid #728398;border-radius:2px;box-shadow:var(--control-shadow),4px 5px #20334d40;overflow:auto;font:400 14px/1.35 var(--font-ui);letter-spacing:0}
.system-option{position:relative;padding:9px 31px 9px 11px;min-height:36px;border-radius:1px;cursor:pointer}.system-option[aria-selected=true]{font-weight:800}.system-option[aria-selected=true]:after{content:"✓";position:absolute;right:11px;font-size:15px;font-weight:900}
.system-option:hover,.system-option.is-highlighted{color:#fff;background:var(--accent)}
.menu-popover.system-popover button{font:700 14px/1.35 var(--font-ui);padding:10px 9px;border-radius:1px}.menu-popover.system-popover button:hover:not(:disabled),.menu-popover.system-popover button:focus-visible{background:var(--accent);color:#fff}.menu-popover.system-popover kbd{font:400 12px var(--font-ui)}
.paint-color-control{display:flex;align-items:center;gap:7px}.paint-toolbar .system-select{min-width:54px;padding:6px 8px;gap:8px}.color-chip{display:block;width:19px;height:19px;border:1px solid #718094;box-shadow:inset 0 0 0 1px #ffffff50;flex:none}
.color-palette{padding:14px}.color-palette>strong{display:block;font-size:14px;margin:0 0 13px}.palette-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.palette-grid button{position:relative;min-height:30px;aspect-ratio:1;border:1px solid #768496;border-radius:1px;background:var(--swatch);box-shadow:inset 1px 1px #ffffff45}
.palette-grid button[aria-pressed=true]:after{content:"";position:absolute;inset:4px;border:2px solid white;box-shadow:0 0 0 1px #233043}
.palette-custom{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid #c2c9d2}.palette-custom label,.palette-custom .field-note{grid-column:1/-1}.palette-custom label{font-size:13px;font-weight:700}.palette-custom input{width:100%;min-width:0;font-variant-numeric:tabular-nums}.palette-custom button{padding:6px 10px}.palette-custom .field-note{font-size:12px;margin:0}
input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid #8996a6;background:#fffefa;box-shadow:inset 1px 1px #c9cfd5;border-radius:1px;vertical-align:middle;flex:none;cursor:pointer;position:relative}
input[type=checkbox]:checked{background:#2854ad;border-color:#214789;box-shadow:inset 1px 1px #ffffff30}
input[type=checkbox]:checked:after{content:"";position:absolute;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);left:3px;top:4px}
input[type=radio]{border-radius:50%}input[type=radio]:checked{background:radial-gradient(circle,#2854ad 0 4px,#fffefa 4.5px)}
.check-setting{gap:10px;align-items:flex-start}.check-setting input{margin:1px 0 0}.wallpaper-options input{z-index:1;margin:0;right:8px;top:8px}.wallpaper-swatch{height:50px;border:1px solid #9aa8b9;border-radius:2px;box-shadow:inset 1px 1px #ffffff50}.wallpaper-swatch.paper{background:#c8cec9}.wallpaper-options input:checked+.wallpaper-swatch{border:2px solid var(--accent)}
input[type=range]{appearance:none;-webkit-appearance:none;height:22px;background:transparent;cursor:pointer;accent-color:var(--accent);padding:0}
input[type=range]::-webkit-slider-runnable-track{height:6px;border:1px solid #98a5b5;background:linear-gradient(to right,#547aaf 0 var(--range-fill,50%),#d5dce5 var(--range-fill,50%) 100%);border-radius:1px}
input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;margin-top:-6px;width:14px;height:17px;background:#eef1f4;border:1px solid #738299;border-radius:1px;box-shadow:var(--control-shadow)}
input[type=range]::-moz-range-track{height:4px;border:1px solid #98a5b5;background:#d5dce5;border-radius:1px}input[type=range]::-moz-range-progress{height:4px;background:#547aaf}input[type=range]::-moz-range-thumb{width:12px;height:15px;background:#eef1f4;border:1px solid #738299;border-radius:1px;box-shadow:var(--control-shadow)}
.terminal-content{background:#1c293c;color:#d1dfef;font-family:Consolas,monospace}.terminal-content input{font-family:Consolas,monospace;background:none;box-shadow:none;color:#e3edfa}.terminal-content label{font-family:Consolas,monospace}.terminal-echo{color:#90aace}.terminal-content form{border-color:#49617e}.terminal-content button{color:#e3edfa;border-color:#7890ad}
/* La interfaz de entrada tiene el mismo acabado que los controles del sistema. */
.boot-scene{background:#d9ddd8;color:#233043}.boot-scene:after{background:radial-gradient(ellipse at 48% 45%,transparent 48%,#27374f22 100%)}
.boot-header{align-items:center}.boot-brand{font:800 23px/1 var(--font-ui);letter-spacing:-.8px;background:#f4f2e9e8;padding:11px 14px;border:1px solid #ffffff90;border-radius:2px;box-shadow:0 3px 15px #26385310}.boot-brand>span{font-style:normal;color:#2854ad}
.boot-skip{font-weight:700;color:#25364f;background:#f4f2e9ed;padding:9px 13px;border:1px solid #abb3bc;border-radius:2px;box-shadow:var(--control-shadow)}.boot-skip:hover{color:#2854ad;background:#fff}
.boot-power{background:var(--chrome);color:#233043;border:1px solid #7789a0;border-radius:3px;box-shadow:var(--control-shadow),0 8px 28px #1e304137;backdrop-filter:none;font-weight:800;min-height:49px;padding:12px 22px}
.boot-power svg{stroke:#2854ad;stroke-width:2}.boot-power:hover:not(:disabled){background:#f6f8fb;border-color:#446797;transform:translateY(-1px)}.boot-hint{color:#24334a;background:#f4f2e9e6;padding:6px 10px;border-radius:2px;font-size:12px}
.scene-sound{color:#233043;background:#f4f2e9f0;border:1px solid #a3adba;border-radius:2px;box-shadow:var(--control-shadow);font-weight:700;backdrop-filter:none}.scene-sound img{filter:none}
.desk-access{color:#233043}.desk-access summary{padding:9px 12px;background:#f4f2e9ed;border:1px solid #a3adba;border-radius:2px;box-shadow:var(--control-shadow);text-decoration:none;font-weight:700}.desk-access[open]{background:#f4f2e9f5;border:1px solid #8e9cac;border-radius:2px;box-shadow:3px 4px #26385333;padding:10px}.desk-access[open] summary{background:none;border:0;box-shadow:none;padding:3px 2px 7px}
.desk-shortcuts button{background:var(--chrome);color:#233043;border:1px solid #9ca9b9;border-radius:2px;box-shadow:var(--control-shadow);font-weight:700;backdrop-filter:none}.desk-shortcuts button:hover{background:#2854ad;color:#fff;border-color:#2854ad}.desk-tooltip{background:#f5f1df;color:#233043;border:1px solid #a9ac9a;border-radius:1px;box-shadow:2px 3px #26385333;font-size:13px}
.boot-skip:focus-visible,.boot-power:focus-visible,.scene-sound:focus-visible,.desk-shortcuts button:focus-visible{outline:2px solid #2854ad;outline-offset:4px}
@container(max-width:700px){.technology-filter{flex:1}.technology-filter .system-select{flex:1;min-width:110px;max-width:220px}.paint-toolbar{gap:8px}.project-description-pane h2{font-size:28px}}
@media(max-width:767px){.system-launcher{padding:6px 3px}.boot-brand{font-size:20px;padding:9px 11px}.boot-skip{font-size:12px;padding:8px 10px}.boot-header{left:18px;right:18px;gap:10px}.boot-skip span{margin-left:3px}.scene-sound{right:18px;top:78px}.boot-scene:after{background:radial-gradient(ellipse at 50% 43%,transparent 45%,#27374f22 100%)}.readme-content h2{font-size:34px}.contact-content input,.contact-content textarea,input[type=search],.palette-custom input{font-size:16px}.paint-toolbar .system-select{min-height:34px}.system-option{min-height:40px;padding-top:11px;padding-bottom:11px}.window-title{font-size:13px}.desk-access{left:18px;bottom:166px}.desk-access[open]{bottom:159px}.boot-footer{bottom:max(30px,env(safe-area-inset-bottom))}.boot-hint{font-size:12px}}
@media(prefers-reduced-motion:reduce){.boot-power:hover{transform:none}}
.motion-off .boot-power:hover{transform:none}
