:root { color-scheme: light; --desktop: #008080; --silver: #c0c0c0; --navy: #000080; --bar-height: 42px; font-family: "MS Sans Serif", Tahoma, Arial, sans-serif; font-size: 12px; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--desktop); color: #111; overflow: hidden; }
button, textarea { font: inherit; }
button { color: inherit; cursor: default; border-radius: 0; }
button:focus-visible { outline: 1px dotted currentColor; outline-offset: -5px; }
button:disabled { color: #777; text-shadow: 1px 1px white; }
[hidden] { display: none !important; }
svg { width: 32px; height: 32px; flex-shrink: 0; shape-rendering: crispEdges; }
.svg-definitions { position: absolute; width: 0; height: 0; overflow: hidden; }
.raised { background: var(--silver); border: 2px solid; border-color: #fff #222 #222 #fff; box-shadow: inset -1px -1px #808080, inset 1px 1px #dfdfdf; }
.inset { border: 2px solid; border-color: #808080 #fff #fff #808080; box-shadow: inset 1px 1px #444; }
button.raised:active, button.raised.pressed { border-color: #222 #fff #fff #222; box-shadow: inset 1px 1px #808080; }
#desktop { position: relative; width: 100%; height: calc(100vh - var(--bar-height)); height: calc(100dvh - var(--bar-height)); overflow: hidden; }
.desktop-icons { position: absolute; top: 24px; left: 16px; display: flex; flex-direction: column; gap: 18px; z-index: 1; }
.desktop-icon { width: 94px; min-height: 78px; border: 1px solid transparent; background: transparent; display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 7px 2px; color: white; line-height: 1.35; }
.desktop-icon svg { width: 36px; height: 36px; filter: drop-shadow(1px 2px 0 #005454); }
.desktop-icon span { padding: 1px 3px; text-shadow: 1px 1px #003d3d; }
.desktop-icon:focus { outline: none; }
.desktop-icon:focus span { background: var(--navy); outline: 1px dotted white; }
.desktop-brand { position: absolute; right: 7%; top: 14%; color: #64b6b2; user-select: none; pointer-events: none; }
.brand-overline { font-size: 10px; letter-spacing: 4px; margin-bottom: 8px; }
.brand-name { font-family: Arial, sans-serif; font-size: clamp(46px, 6.7vw, 100px); line-height: 1; letter-spacing: -5px; font-weight: 800; }
.brand-name span { font-weight: 400; }
.brand-name b { font-size: .55em; vertical-align: top; letter-spacing: -3px; margin-left: 9px; }
.brand-tagline { margin-top: 13px; text-align: right; font-size: 13px; letter-spacing: 2px; }
.desktop-caption { position: absolute; bottom: 50px; right: 36px; color: #72bdb8; font-size: 9px; letter-spacing: 2px; pointer-events: none; }
.desktop-caption span { padding: 0 12px; }
.desktop-hint { position: absolute; bottom: 16px; left: 22px; color: #a5d3cf; font-size: 11px; pointer-events: none; }
#windows { position: absolute; inset: 0; pointer-events: none; }
.window { position: absolute; width: 520px; max-width: 100%; max-height: 100%; padding: 3px; display: flex; flex-direction: column; pointer-events: auto; box-shadow: inset -1px -1px #808080, inset 1px 1px #dfdfdf, 3px 3px 0 #00494980; }
.window:focus { outline: none; }
.titlebar { display: flex; justify-content: space-between; align-items: center; min-height: 27px; background: #808080; color: white; padding: 3px 3px 3px 5px; user-select: none; touch-action: none; flex-shrink: 0; }
.window.active .titlebar { background: linear-gradient(90deg, #000080, #0757aa); }
.window-title { display: flex; align-items: center; gap: 5px; min-width: 0; font-weight: bold; }
.window-title span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.window-title svg { width: 17px; height: 17px; }
.window-controls { display: flex; gap: 3px; margin-left: 8px; }
.window-controls button { padding: 0; width: 21px; height: 20px; line-height: 14px; font-family: Arial, sans-serif; font-size: 19px; font-weight: bold; color: black; }
.window-controls .minimize-button { font-size: 16px; line-height: 8px; }
.window-content { overflow: auto; min-height: 0; }
.menu-row { display: flex; min-height: 29px; align-items: center; padding: 2px 7px; gap: 18px; border-bottom: 1px solid #888; }
.menu-row span { padding: 3px 0; }
.statusbar { display: flex; gap: 3px; padding: 4px 0 0; color: #333; font-size: 11px; }
.statusbar > span { padding: 4px 7px; border: 1px solid; border-color: #808080 #fff #fff #808080; flex: 1; }
.statusbar > span:last-child:not(:first-child) { flex: 0 0 auto; }
.about-hero { position: relative; overflow: hidden; background: #05057c; color: white; padding: 25px 26px; display: flex; align-items: center; gap: 20px; margin-top: 3px; border: 1px solid #01014c; }
.about-hero::after { content: "98"; position: absolute; right: -5px; bottom: -23px; color: #ffffff10; font: bold 148px/1 Arial, sans-serif; letter-spacing: -10px; }
.about-hero svg { width: 61px; height: 61px; }
.eyebrow { font-size: 9px; letter-spacing: 2px; margin: 0 0 7px; }
.about-hero h1 { margin: 0; font-size: 32px; font-weight: normal; letter-spacing: -1.4px; }
.about-hero h1 strong { font-weight: bold; }
.about-hero .edition { font-size: 11px; color: #c9d6ff; margin: 5px 0 0; }
.about-body { padding: 21px 25px 15px; }
.welcome-label { color: #666; margin: 0 0 7px; font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px; }
.about-body h2 { font-size: 19px; margin: 0 0 10px; }
.about-body p { line-height: 1.6; }
.about-body .intro { max-width: 365px; margin: 0; }
.system-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 17px 0; padding: 12px 0; border-top: 1px solid #888; border-bottom: 1px solid #fff; box-shadow: 0 -1px #fff, inset 0 -1px #888; }
.system-specs span { color: #555; font-size: 10px; display: block; margin-bottom: 4px; }
.system-specs strong { font-size: 11px; font-weight: normal; }
.about-body .quote { font-size: 12px; font-style: italic; margin: 0 0 5px; }
.copyright { color: #555; font-size: 10px; }
.about-bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 18px; }
.standard-button { min-width: 88px; min-height: 28px; padding: 4px 14px; }
.address-row { display: flex; align-items: center; gap: 9px; padding: 7px; }
.address-value { background: white; padding: 5px 8px; flex: 1; min-width: 0; }
.explorer-body { background: white; min-height: 224px; padding: 20px 13px; display: flex; align-items: flex-start; gap: 12px; }
.drive-item { border: 1px solid transparent; background: transparent; padding: 10px 4px; width: 126px; display: flex; align-items: center; flex-direction: column; gap: 9px; }
.drive-item:focus { border: 1px dotted #777; background: #000080; color: white; outline: none; }
.explorer-info { padding: 12px; margin: 0; border-top: 1px solid #ccc; background: #ffffe1; line-height: 1.5; min-height: 57px; }
.notepad-toolbar { display: flex; align-items: center; gap: 10px; padding: 6px; }
.notepad-toolbar span { color: #555; font-size: 11px; }
.notepad-editor { width: 100%; height: 260px; display: block; padding: 10px; background: #fff; color: #111; font: 14px/1.5 "Courier New", monospace; resize: none; border-radius: 0; }
.notepad-editor:focus { outline: none; }
.save-status { padding: 7px; font-size: 11px; line-height: 1.4; }
.trash-body { background: white; text-align: center; padding: 42px 20px; margin-top: 4px; }
.trash-body svg { width: 48px; height: 48px; }
.trash-body h2 { font-size: 16px; font-weight: normal; margin: 20px 0 8px; }
.trash-body p { color: #666; line-height: 1.5; }
#taskbar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 10001; height: var(--bar-height); background: var(--silver); border-top: 2px solid white; box-shadow: inset 0 1px #dfdfdf; display: flex; align-items: center; gap: 7px; padding: 4px 5px; }
#start-button { height: 31px; display: flex; align-items: center; gap: 5px; padding: 2px 8px 2px 4px; font-size: 14px; }
#start-button svg { width: 24px; height: 24px; }
.taskbar-divider { height: 27px; width: 3px; border-left: 1px solid #888; border-right: 1px solid white; }
#task-buttons { flex: 1; min-width: 0; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: thin; }
.task-button { flex: 0 1 170px; min-width: 50px; height: 29px; display: flex; align-items: center; gap: 6px; padding: 3px 7px; text-align: left; }
.task-button svg { width: 17px; height: 17px; }
.task-button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-button.pressed { background: #dedede; font-weight: bold; }
.system-tray { display: flex; align-items: center; gap: 12px; padding: 5px 11px; height: 29px; flex-shrink: 0; }
.online-light { width: 7px; height: 7px; background: #008000; border: 1px solid #005000; box-shadow: 1px 1px white; }
#clock { font-variant-numeric: tabular-nums; white-space: nowrap; }
#start-menu { position: fixed; z-index: 10000; left: 3px; bottom: var(--bar-height); width: 300px; max-width: calc(100vw - 6px); max-height: calc(100dvh - var(--bar-height)); overflow: auto; display: flex; padding: 3px; box-shadow: 3px 3px #0005; }
.start-sidebar { writing-mode: vertical-rl; transform: rotate(180deg); background: linear-gradient(#000080, #1e3d97); color: #c0c0c0; padding: 12px 7px; font-size: 22px; white-space: nowrap; }
.start-sidebar strong { color: white; }
.start-items { flex: 1; min-width: 0; padding: 5px 0; }
.start-heading { font-size: 9px; letter-spacing: 1px; color: #555; padding: 10px 12px; }
.start-items button { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 12px; background: transparent; border: 0; }
.start-items button:hover, .start-items button:focus-visible { background: var(--navy); color: white; outline-color: white; }
.start-items small { display: block; margin-top: 4px; font-size: 10px; }
.menu-separator { border-top: 1px solid #888; border-bottom: 1px solid white; margin: 4px; }
.start-footer { font-size: 10px; color: #555; padding: 8px 12px 2px; }
.no-script { position: fixed; top: 35%; left: 15%; width: 70%; z-index: 10002; padding: 25px; }
@media (max-width: 600px) {
  .desktop-icons { top: 12px; left: 6px; gap: 8px; }
  .desktop-brand { top: 17%; right: 6%; }
  .brand-overline { letter-spacing: 1px; font-size: 8px; }
  .brand-name { font-size: 43px; letter-spacing: -2px; }
  .brand-tagline { font-size: 10px; letter-spacing: 1px; }
  .desktop-caption { right: 15px; bottom: 48px; font-size: 8px; letter-spacing: .5px; }
  .desktop-hint { left: 12px; right: 12px; font-size: 10px; }
  .window { max-width: calc(100% - 8px); }
  .about-hero { padding: 20px 15px; gap: 12px; }
  .about-hero h1 { font-size: 27px; }
  .about-hero svg { width: 48px; height: 48px; }
  .about-body { padding: 16px; }
  .explorer-body { gap: 0; padding: 12px 2px; }
  .drive-item { flex: 1; min-width: 0; font-size: 11px; }
  .system-tray { gap: 6px; padding: 5px 6px; }
  .notepad-toolbar span { font-size: 10px; }
}
@media (max-height: 500px) { .desktop-icons { top: 8px; gap: 2px; } .desktop-icon { min-height: 65px; padding: 2px; } .desktop-icon svg { height: 28px; } .desktop-hint { display: none; } }

/* Edición portfolio: un mismo contenido, escritorio y lectura lineal. */
a { color: #000080; text-underline-offset: 3px; }
a:focus-visible, summary:focus-visible { outline: 2px dotted #000080; outline-offset: 3px; }
.standard-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: #111; gap: 5px; }
.desktop-icons { display: grid; grid-auto-flow: column; grid-template-rows: repeat(5, 85px); gap: 18px 3px; }
.desktop-brand { top: auto; bottom: 19%; right: 5%; opacity: .72; }
.brand-name { font-size: clamp(48px, 7vw, 96px); }
.view-switch { position: absolute; top: 15px; right: 17px; padding: 8px 12px; z-index: 1; font-size: 11px; }
#taskbar .view-switch { position: static; flex-shrink: 0; height: 29px; padding: 4px 8px; }
.start-items button { padding: 7px 12px; }
.start-items button svg { width: 25px; height: 25px; }
.window { max-height: calc(100% - 8px); }
.window-content { overscroll-behavior: contain; }
.portfolio-section { background: #f8f7f1; padding: 28px; line-height: 1.65; color: #202125; }
.window .portfolio-section { font-size: 13px; }
.portfolio-section p { margin: 0 0 14px; }
.portfolio-section h2 { margin: 0; font: bold 28px/1.15 Arial, sans-serif; letter-spacing: -1px; }
.section-kicker { color: #626264; font-size: 9px; font-weight: bold; letter-spacing: 1.6px; line-height: 1.5; }
.portfolio-section .section-kicker { margin: 0 0 8px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.section-intro { max-width: 590px; color: #555; }
.file-count { font: 11px "Courier New", monospace; border: 1px solid #bbb; padding: 5px 9px; white-space: nowrap; }
.portfolio-section .section-note { font-size: 11px; color: #626264; margin: 18px 0 0; }
.profile-section { padding: 0; }
.profile-ribbon { background: #f8f7f1; color: #4a4a4a; padding: 8px 24px; display: flex; justify-content: space-between; font: 10px "Courier New", monospace; border-bottom: 1px solid #ccc; }
.profile-hero { padding: 26px 28px 23px; display: grid; grid-template-columns: 1fr 200px; gap: 20px; background: #101e58; color: #fff; }
.profile-hero .section-kicker { color: #b5c4fa; }
.profile-hero h1 { margin: 0; font: 60px/.94 Arial, sans-serif; letter-spacing: -3px; }
.profile-hero h1 strong { font-weight: 800; }
.profile-hero .profile-role { margin: 17px 0 0; font-size: 16px; line-height: 1.4; color: #e1e7ff; }
.portrait-panel { align-self: center; background: #c0c0c0; padding: 4px; border: 2px solid; border-color: white #111 #111 white; transform: rotate(2deg); box-shadow: 5px 5px #050d2f; color: #202125; }
.portrait-caption { padding: 8px 3px 4px; font-size: 8px; display: flex; gap: 5px; align-items: center; white-space: nowrap; }
.portrait-caption .online-light { flex-shrink: 0; width: 5px; height: 5px; }
.profile-intro { padding: 21px 28px 0; }
.profile-intro > p:first-child { font-size: 18px; line-height: 1.45; max-width: 610px; font-weight: bold; letter-spacing: -.25px; }
.profile-intro .secondary-copy { color: #555; font-size: 12px; line-height: 1.65; }
.profile-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 28px 22px; }
.primary-action { font-weight: bold; }
.profile-actions .primary-action, .contact-links .primary-action { background: #f2cb7e; }
.portfolio-link svg { width: 17px; height: 17px; }
.identity-strip { display: grid; grid-template-columns: auto 75px 70px auto 155px; gap: 17px; align-items: center; justify-content: center; padding: 18px 18px; background: white; border-top: 1px solid #d7d6cd; }
.identity-label { color: #777; font: bold 8px/1.5 Arial, sans-serif; letter-spacing: 1px; }
.identity-label small { font-size: 7px; letter-spacing: .4px; font-weight: normal; }
.education-label { border-left: 1px solid #ddd; padding-left: 17px; }
.identity-strip img { width: 100%; height: 38px; object-fit: contain; }
.identity-strip .metro-logo { height: 52px; }
.identity-strip .udesa-logo { height: 40px; }
.profile-footnote { color: #626264; padding: 7px 15px; border-top: 1px solid #ddd; font: 10px "Courier New", monospace; background: #eee; }
.project-filters { display: flex; gap: 5px; margin: 19px 0 14px; flex-wrap: wrap; }
.project-filters button { padding: 6px 10px; font-size: 11px; }
.project-filters .pressed { background: #e0e0e0; }
.case-list { display: grid; gap: 10px; }
.case-card { border: 1px solid #c9c8c0; background: #fff; }
.case-card summary { list-style: none; display: grid; grid-template-columns: 18px 86px 1fr 14px; align-items: center; gap: 13px; padding: 17px 14px; cursor: pointer; }
.case-card summary::-webkit-details-marker { display: none; }
.case-card summary:hover { background: #f0f2fa; }
.case-card[open] > summary { background: #eceefa; border-bottom: 1px solid #c9c8c0; }
.case-number { align-self: start; padding-top: 5px; color: #777; font: 10px "Courier New", monospace; }
.case-brand { display: flex; align-items: center; justify-content: center; background: white; padding: 8px; min-height: 65px; }
.case-brand img { max-width: 100%; width: 85px; height: 45px; object-fit: contain; }
.case-brand .metro-logo { height: 60px; }
.type-brand { display: flex; flex-direction: column; gap: 4px; font: bold 21px/1 Arial, sans-serif; letter-spacing: -.8px; }
.type-brand span { font: 10px Arial, sans-serif; letter-spacing: 1px; color: #666; }
.admed-brand { color: #007b76; }
.case-summary { display: flex; flex-direction: column; gap: 4px; }
.case-category { font: 8px/1.5 Arial, sans-serif; letter-spacing: .8px; color: #626264; }
.case-summary strong { font-size: 14px; line-height: 1.35; }
.case-summary > span:last-child { color: #626264; font-size: 11px; line-height: 1.5; }
.case-arrow { color: #000080; font-size: 18px; }
.case-card[open] .case-arrow { transform: rotate(90deg); }
.case-content { padding: 22px; }
.case-lead { font-size: 16px; font-weight: bold; line-height: 1.5; }
.case-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px 24px; }
.case-content h3 { margin: 9px 0 5px; font-size: 12px; color: #000080; }
.case-content p { font-size: 12px; color: #4a4a4a; }
.case-content .case-lead { font-size: 15px; color: #222; }
.case-takeaway { border-left: 3px solid #c9a15c; padding: 8px 12px; background: #f9f5e8; }
.group-label { margin: 25px 0 15px; font: bold 9px Arial, sans-serif; letter-spacing: 2px; color: #555; }
.timeline { display: grid; gap: 0; }
.timeline article { display: grid; grid-template-columns: 140px 1fr; gap: 21px; padding-bottom: 24px; }
.timeline article > div { border-left: 1px solid #c8c8c0; padding-left: 20px; position: relative; }
.timeline article > div::before { content: ""; width: 7px; height: 7px; background: #000080; position: absolute; top: 6px; left: -4px; }
.timeline-date { color: #626264; font: 9px/1.5 "Courier New", monospace; padding-top: 5px; }
.timeline-logo { width: 125px; height: 38px; object-fit: contain; object-position: left center; background: white; padding: 3px 6px; }
.timeline-logo.eco { width: 85px; height: 45px; }
.timeline-logo.metro { width: 80px; height: 75px; }
.timeline-wordmark { font-size: 17px; font-weight: bold; }
.timeline h3 { margin: 8px 0 5px; font-size: 14px; }
.timeline p, .timeline a { font-size: 12px; }
.education-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.education-grid article { padding: 14px; background: #fff; border: 1px solid #d5d4cc; }
.education-grid h3 { font-size: 12px; line-height: 1.5; margin: 12px 0 5px; }
.education-grid p { color: #666; font-size: 11px; }
.education-brand { height: 64px; display: flex; align-items: center; }
.education-brand img { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.gallery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.gallery-grid figure { margin: 0; padding: 6px; background: white; border: 1px solid #ccc; }
.gallery-grid img { display: block; width: 100%; height: auto; }
.gallery-grid figcaption { padding: 10px 7px; font-size: 11px; color: #555; }
.gallery-grid figcaption strong { display: block; color: #111; margin-bottom: 4px; }
.gallery-grid + .section-note { margin-bottom: 18px; }
.lab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lab-grid article { border: 1px solid #ccc; background: white; padding: 20px; }
.lab-grid h3 { font-size: 22px; margin: 16px 0 10px; }
.lab-grid p { font-size: 12px; color: #555; }
.lab-status { background: #e5ebea; padding: 5px 6px; font: 8px "Courier New", monospace; letter-spacing: .5px; }
.tool-tag { font: 10px "Courier New", monospace; }
.contact-section { padding: 38px 32px; }
.contact-section h2 { font-size: 34px; margin: 15px 0 20px; }
.contact-section > p:not(.section-kicker) { max-width: 550px; }
.contact-links { display: flex; gap: 8px; flex-wrap: wrap; margin: 23px 0 13px; }
.contact-email { font-family: "Courier New", monospace; font-size: 12px; overflow-wrap: anywhere; }
.cv-toolbar { padding: 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cv-toolbar > span { width: 100%; }
.cv-preview { width: 100%; height: 440px; background: white; border: 2px inset #ccc; display: block; }
.simple-mode { overflow: auto; }
.simple-view { max-width: 1040px; margin: 24px auto; padding: 0 20px; }
.simple-header { padding: 10px 13px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.simple-wordmark { color: #111; text-decoration: none; font-size: 20px; letter-spacing: -1px; }
.simple-wordmark span { color: #000080; font-weight: bold; }
.simple-header nav { display: flex; gap: 16px; }
.simple-header nav a { color: #111; font-size: 12px; }
.simple-view > .portfolio-section { margin: 0 0 22px; border: 2px solid; border-color: white #222 #222 white; box-shadow: 4px 4px #004949; scroll-margin-top: 20px; font-size: 14px; }
.simple-view .profile-hero { padding: 40px; grid-template-columns: 1fr 240px; }
.simple-view .profile-hero h1 { font-size: 76px; }
.simple-view .portrait-photo { height: 250px; }
.simple-view .portrait-caption { font-size: 10px; }
.simple-view .profile-intro { padding: 26px 40px 0; }
.simple-view .profile-actions { padding-left: 40px; }
.simple-view .identity-strip { justify-content: start; padding-left: 40px; }
.simple-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 10px 0 20px; color: #e1f2ef; font-size: 10px; }
.text-button { border: 0; background: none; color: inherit; padding: 0; text-decoration: underline; }
.noscript-note { padding: 15px; color: white; text-align: center; }
@media (max-width: 1050px) { .desktop-icons { grid-template-rows: repeat(5, 78px); gap: 12px 0; } .desktop-icon { width: 80px; font-size: 11px; } }
@media (max-width: 700px) {
  .simple-view { margin: 12px auto; padding: 0 10px; }
  .simple-header { flex-wrap: wrap; gap: 10px; }
  .simple-header nav { order: 3; width: 100%; justify-content: space-between; padding: 7px 0 0; border-top: 1px solid #999; }
  .simple-header .standard-button { font-size: 10px; padding: 5px 9px; min-width: auto; }
  .profile-hero, .simple-view .profile-hero { grid-template-columns: 1fr 130px; gap: 15px; padding: 24px 18px; }
  .profile-hero h1, .simple-view .profile-hero h1 { font-size: 45px; letter-spacing: -2px; }
  .profile-hero .profile-role { font-size: 12px; }
  .portrait-photo, .simple-view .portrait-photo { height: 150px; }
  .portrait-caption, .simple-view .portrait-caption { font-size: 6px; padding: 6px 0 2px; gap: 3px; }
  .profile-ribbon { padding: 8px 14px; font-size: 8px; }
  .profile-intro, .simple-view .profile-intro { padding: 20px 18px 0; }
  .profile-intro > p:first-child { font-size: 16px; }
  .profile-actions, .simple-view .profile-actions { padding: 0 18px 20px; gap: 6px; }
  .profile-actions a { font-size: 11px; padding: 6px 9px; }
  .identity-strip, .simple-view .identity-strip { padding: 14px; grid-template-columns: 56px 64px 64px; justify-content: center; gap: 10px 18px; }
  .education-label { border: 0; padding: 0; }
  .identity-strip .udesa-logo { grid-column: span 2; height: 32px; }
  .portfolio-section { padding: 22px 17px; }
  .profile-section { padding: 0; }
  .portfolio-section h2 { font-size: 24px; }
  .case-card summary { grid-template-columns: 52px 1fr 10px; gap: 10px; padding: 12px 9px; }
  .case-number { display: none; }
  .case-brand { padding: 4px; min-height: 48px; }
  .case-brand img { height: 30px; }
  .case-brand .metro-logo { height: 45px; }
  .type-brand { font-size: 15px; }
  .type-brand span { font-size: 8px; }
  .case-summary strong { font-size: 12px; }
  .case-summary > span:last-child { font-size: 10px; }
  .case-category { font-size: 7px; letter-spacing: .3px; }
  .case-content { padding: 16px; }
  .case-grid, .lab-grid { grid-template-columns: 1fr; }
  .timeline article { grid-template-columns: 1fr; gap: 8px; }
  .timeline-date { padding-left: 20px; }
  .education-grid { grid-template-columns: 1fr; }
  .education-brand img { max-width: 230px; }
  .gallery-grid { gap: 8px; }
  .gallery-grid figcaption { font-size: 10px; padding: 8px 3px; }
  .contact-section h2 { font-size: 29px; }
  .desktop-icons { grid-template-rows: repeat(5, 72px); gap: 8px 0; }
  .view-switch { top: 9px; right: 9px; padding: 6px 8px; }
  .brand-overline { max-width: 190px; text-align: right; }
  .cv-preview { height: 350px; }
}
@media (max-width: 350px) { .profile-hero, .simple-view .profile-hero { grid-template-columns: 1fr; } .portrait-panel { display: block; width: 150px; justify-self: center; } .gallery-grid { grid-template-columns: 1fr; } }
@media print { body { background: white; overflow: visible; } #desktop, #taskbar, #start-menu, .simple-header, .simple-footer, .js-only { display: none !important; } #simple-view { display: block !important; max-width: none; margin: 0; padding: 0; } .simple-view > .portfolio-section { box-shadow: none; border: none; } .case-card { break-inside: avoid; } }

.cv-document { overflow: auto; background: #ecece8; font: 12px/1.5 Arial, sans-serif; }
.cv-sheet { background: white; max-width: 820px; margin: 16px auto; padding: 34px 40px; color: #222; }
.cv-heading { border-bottom: 2px solid #112058; padding-bottom: 13px; }
.cv-heading h1 { font-size: 31px; letter-spacing: -.8px; margin: 0 0 4px; color: #112058; }
.cv-heading p { margin: 5px 0 0; font-size: 11px; }
.cv-heading .cv-subtitle { font-size: 17px; font-weight: bold; }
.cv-sheet section h2 { font-size: 12px; text-transform: uppercase; letter-spacing: 1.3px; color: #112058; margin: 19px 0 8px; border-bottom: 1px solid #ddd; padding-bottom: 4px; }
.cv-sheet section p { margin: 6px 0; }
.cv-job { margin-bottom: 13px; break-inside: avoid; }
.cv-job-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.cv-job h3 { font-size: 12px; margin: 0; }
.cv-job-heading span { font-size: 10px; color: #666; text-align: right; flex-shrink: 0; }
.cv-job ul, .cv-education { padding-left: 16px; margin: 5px 0; }
.cv-job li, .cv-education li { margin: 3px 0; }
.cv-screen-actions { max-width: 820px; margin: 15px auto; display: flex; justify-content: space-between; padding: 0 16px; }
@media (max-width: 600px) { .cv-sheet { padding: 24px 18px; margin: 0; } .cv-job-heading { display: block; } .cv-job-heading span { text-align: left; } }
@page { size: A4; margin: 13mm 15mm; }
@media print { .cv-document { background: white; font-size: 10.5px; line-height: 1.4; } .cv-screen-actions { display: none; } .cv-sheet { padding: 0; margin: 0; max-width: none; } .cv-sheet section h2 { margin-top: 13px; break-after: avoid; } .cv-job { margin-bottom: 9px; } .cv-job li { margin: 2px 0; } .cv-sheet a { color: #222; text-decoration: none; } }

/* Foto local: el encuadre conserva a Marcos; el enlace abre la imagen completa. */
.portrait-link { display: block; }
.portrait-photo { display: block; width: 100%; height: 210px; object-fit: cover; object-position: center 75%; border: 1px solid #111; }
/* Mezclador retro: junto al reloj o flotante en la vista simple. */
.sound-dock { position: relative; display: flex; align-items: center; gap: 3px; flex-shrink: 0; }
.sound-button { height: 24px; min-width: 25px; padding: 1px 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.sound-button svg { width: 19px; height: 19px; }
.sound-mute { min-width: 58px; font-size: 10px; }
.sound-panel { position: absolute; bottom: calc(100% + 10px); right: 0; width: 256px; max-width: calc(100vw - 16px); max-height: calc(100dvh - 65px); overflow-y: auto; background: #c0c0c0; padding: 3px; color: #111; text-align: left; box-shadow: 3px 3px #0005; }
.sound-title { display: flex; justify-content: space-between; align-items: center; background: #000080; color: white; padding: 3px 4px; font-size: 12px; }
.sound-title button { width: 20px; height: 20px; padding: 0; color: #111; }
.sound-panel-body { padding: 10px; }
.sound-track { font-weight: bold; margin: 0 0 8px; }
#sound-status { font-size: 11px; min-height: 28px; line-height: 1.4; margin: 6px 0 14px; }
.sound-panel label { display: flex; justify-content: space-between; font-weight: bold; }
#sound-range { display: block; width: 100%; margin: 14px 0 18px; accent-color: #000080; cursor: pointer; }
.sound-panel .standard-button { width: 100%; font-size: 11px; padding: 6px 3px; }
.sound-note { font-size: 10px; line-height: 1.4; margin: 10px 0 0; color: #444; }
#sound-simple-host { position: fixed; bottom: 12px; right: 12px; z-index: 10002; }
#sound-simple-host .sound-dock { background: #c0c0c0; padding: 5px; border: 2px solid; border-color: white #111 #111 white; box-shadow: 3px 3px #0005; }
.simple-mode { padding-bottom: 60px; }
.system-tray { gap: 7px; padding: 2px 6px; }
@media (max-width: 700px) {
  .portrait-photo, .simple-view .portrait-photo { height: 150px; }
  #sound-simple-host .sound-button { min-height: 36px; min-width: 36px; }
  #sound-simple-host .sound-mute { min-width: 67px; font-size: 11px; }
  #taskbar { gap: 3px; }
  #taskbar .view-switch { font-size: 10px; padding: 3px; }
  #taskbar .system-tray > .online-light { display: none; }
}
@media print { #sound-simple-host, #sound-dock { display: none !important; } }

/* Buscaminas: una sola partida por ventana, sin recursos externos. */
.games-invite { margin: 20px 0; padding: 16px; display: flex; align-items: center; gap: 15px; }
.games-invite div { flex: 1; }
.games-invite p { margin: 5px 0 0; font-size: 12px; }
.mines-game { padding: 10px; background: #c0c0c0; }
.mines-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.mines-toolbar label { display: flex; flex-direction: column; gap: 4px; font-size: 11px; }
.mines-level { font: inherit; color: #111; background: white; border: 1px solid #777; padding: 4px; border-radius: 0; }
.mines-flag-mode { min-height: 34px; padding: 4px 10px; }
.mines-score { display: flex; align-items: center; justify-content: space-between; padding: 8px; margin-bottom: 10px; }
.mines-score output { background: #140000; color: #ff342f; font: bold 30px/1 "Courier New", monospace; letter-spacing: 2px; padding: 3px 5px 2px 7px; border: 1px inset #888; }
.mines-reset { width: 42px; height: 39px; padding: 0; font: 30px/1 Arial, sans-serif; color: #111; }
.mines-scroll { max-width: 100%; overflow: auto; padding-bottom: 3px; }
.mines-board { display: grid; grid-template-columns: repeat(var(--mine-columns), 32px); width: max-content; margin: auto; background: #c0c0c0; padding: 3px; }
.mine-cell { width: 32px; height: 32px; padding: 0; font: bold 21px/1 "Courier New", monospace; text-align: center; touch-action: manipulation; }
.mine-cell.is-open { background: #c0c0c0; border: 1px solid #8c8c8c; box-shadow: none; }
.mine-cell.is-hit { background: #ff3b30; border: 1px solid #555; }
.mine-cell.is-wrong { color: #a00000; }
.mine-cell[data-number="1"] { color: #0000bd; }
.mine-cell[data-number="2"] { color: #006000; }
.mine-cell[data-number="3"] { color: #ba0000; }
.mine-cell[data-number="4"] { color: #000064; }
.mine-cell[data-number="5"] { color: #710000; }
.mine-cell[data-number="6"] { color: #005d5d; }
.mine-cell[data-number="7"] { color: #111; }
.mine-cell[data-number="8"] { color: #555; }
.mine-cell:focus-visible { outline: 2px dotted #111; outline-offset: -5px; }
.mines-status { min-height: 32px; margin: 10px 0 8px; font-size: 12px; line-height: 1.4; }
.mines-bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; }
.mines-bottom button { padding: 5px 8px; }
.mines-help { margin-top: 10px; padding: 10px; background: #ffffdf; border: 1px solid #999; font-size: 12px; line-height: 1.5; }
.mines-help p { margin: 0 0 8px; }
.mines-help p:last-child { margin: 0; }
@media (max-width: 400px) {
  .mines-game { padding: 6px; }
  .mines-board { grid-template-columns: repeat(var(--mine-columns), 29px); }
  .mine-cell { width: 29px; height: 29px; font-size: 19px; }
  .games-invite { flex-wrap: wrap; }
}

/* Doom vive en su propio documento y se destruye al cerrar la ventana. */
.doom-frame { width: 100%; height: 650px; border: 0; display: block; background: #191919; }
.doom-local-note { padding: 24px; line-height: 1.6; }
@media (max-height: 760px) { .doom-frame { height: calc(100dvh - 85px); min-height: 240px; } }
.games-invite { flex-wrap: wrap; }
.desktop-icons { grid-template-rows: repeat(6, 75px); gap: 10px 3px; }
@media (max-width: 1050px) { .desktop-icons { grid-template-rows: repeat(6, 72px); gap: 8px 3px; } }
@media (max-height: 620px) { .desktop-icons { grid-template-rows: repeat(4, 72px); } }
@media (max-height: 400px) { .desktop-icons { grid-template-rows: repeat(3, 65px); } }

/* Photoshop 5.5: captura local y fallo ficticio dentro de esta página. */
.photoshop-splash { background: #808080; }
.photoshop-splash img { display: block; width: 100%; height: auto; }
.photoshop-loading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; background: #c0c0c0; font-size: 11px; }
.photoshop-progress { width: 100px; height: 12px; flex-shrink: 0; border: 1px inset white; background: repeating-linear-gradient(90deg, #000080 0 7px, #c0c0c0 7px 9px); }
#blue-screen { position: fixed; inset: 0; z-index: 20000; overflow: auto; background: #0000aa; color: #fff; padding: clamp(28px, 9vh, 100px) clamp(20px, 9vw, 150px); cursor: pointer; font: clamp(14px, 1.5vw, 20px)/1.5 'Courier New', monospace; }
#blue-screen:focus { outline: none; }
.blue-copy { max-width: 950px; margin: auto; }
#blue-title { text-align: center; font: inherit; margin: 0 0 42px; }
#blue-title span { color: #0000aa; background: #c0c0c0; padding: 2px 12px; }
#blue-message p { margin: 0 0 28px; }
.blue-prompt { margin-top: 44px; text-align: center; }
@media (max-width: 480px) { #blue-screen { padding: 30px 18px; font-size: 14px; } .photoshop-loading { font-size: 10px; } .photoshop-progress { width: 60px; } }

/* MSN Messenger: conversación inspirada en la interfaz 6/7 de la referencia. */
.msn-window { border-radius: 7px 7px 0 0; border-color: #c4dcff #18458c #18458c #c4dcff; background: #dce5f5; }
.msn-window .titlebar, .msn-window.active .titlebar { background: linear-gradient(#7caeff 0%, #2364c5 15%, #144ca4 85%, #3b7de0); color: white; border-radius: 4px 4px 0 0; min-height: 25px; text-shadow: 1px 1px #17437e; }
.msn-window .window-controls button { background: linear-gradient(#92bafa, #366dcc); border: 1px solid white; color: white; border-radius: 3px; box-shadow: inset 1px 1px #b6d3ff; text-shadow: 1px 1px #24467f; }
.msn-window .window-controls .close-button { background: linear-gradient(#f9b19b, #cd4a32); }
.msn-app { background: linear-gradient(125deg, #eff3fc, #e3e8f8 60%, #d0dcf2); color: #1e2b44; font: 12px/1.4 Tahoma, Arial, sans-serif; }
.msn-menu { padding: 3px 9px; background: #f7f7f5; border-bottom: 1px solid #adb8cc; color: #222; font-size: 11px; }
.msn-actions { display: flex; align-items: center; gap: 8px; padding: 6px 10px 7px; border-bottom: 1px solid #b2c3df; background: linear-gradient(#fcfdff, #d7e3f7 85%, #f5f8ff); }
.msn-action { display: flex; flex-direction: column; align-items: center; min-width: 51px; padding: 2px 5px; border: 1px solid transparent; background: transparent; color: #233e60; font: 10px Tahoma, Arial, sans-serif; text-decoration: none; cursor: pointer; }
.msn-action:hover, .msn-action:focus-visible { background: #f3f8ff; border-color: #8ba6c8; border-radius: 3px; }
.msn-action > span { font-size: 24px; line-height: 28px; color: #357ab4; text-shadow: 1px 1px white; }
.msn-action[data-smile] > span { color: #bb8300; }
.msn-wordmark { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; justify-content: end; width: 100px; margin-left: auto; color: #18478e; }
.msn-wordmark svg { width: 25px; height: 25px; }
.msn-wordmark strong { font: italic bold 25px Arial, sans-serif; }
.msn-wordmark small { width: 100%; text-align: right; font-size: 9px; margin-top: -6px; }
.msn-help { padding: 8px 12px; margin: 0; background: #ffffe3; border-bottom: 1px solid #c3caaf; font-size: 11px; }
.msn-chat-layout { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 9px; padding: 10px 10px 0; align-items: start; }
.msn-chat-main { min-width: 0; overflow: hidden; border: 1px solid #819bc2; border-radius: 6px; box-shadow: 0 0 0 1px white; background: white; }
.msn-recipient { display: flex; gap: 5px; flex-wrap: wrap; padding: 4px 7px; background: linear-gradient(white, #e6edf9); border-bottom: 1px solid #a3b9d9; font-size: 11px; }
.msn-recipient span { color: #667185; }
.msn-away { display: flex; align-items: start; gap: 6px; margin: 0; padding: 4px 7px; background: #ffffdf; border-bottom: 1px solid #d2d3b0; color: #313b52; font-size: 11px; }
.msn-away > span { display: inline-block; flex-shrink: 0; width: 12px; height: 12px; margin-top: 1px; border-radius: 50%; text-align: center; color: white; background: #174da4; font: bold 10px/12px Georgia, serif; }
.msn-conversation { padding: 10px 9px; height: 235px; overflow: auto; background: white; overflow-wrap: anywhere; }
.msn-system { margin: 0; color: #77849c; font-size: 11px; }
.msn-history p { margin: 12px 0 0; }
.msn-history strong, .msn-history span { display: block; }
.msn-history strong { color: #4e6388; font-size: 11px; font-weight: normal; }
.msn-history span { white-space: pre-wrap; color: #222; padding-left: 7px; }
.msn-avatar { border: 1px solid #829ac0; border-radius: 8px; padding: 5px; background: linear-gradient(135deg, white, #e0e8f8); box-shadow: inset 0 0 0 1px white; text-align: right; color: #4c658b; font-size: 10px; }
.msn-avatar-picture { border: 1px solid #6f85a5; border-radius: 5px; overflow: hidden; background: #f5f8ff; }
.msn-avatar img, .msn-avatar svg { display: block; width: 100%; height: 108px; object-fit: cover; }
.msn-avatar img { object-position: 30% 70%; }
.msn-avatar > span { display: block; padding: 3px 2px 0; }
.msn-presence { display: inline-block; width: 7px; height: 7px; background: #d1a03b; border: 1px solid #9e792b; border-radius: 50%; }
.msn-form { min-width: 0; border: 1px solid #819bc2; border-radius: 5px; box-shadow: 0 0 0 1px white; overflow: hidden; background: white; }
.msn-formatbar { display: flex; align-items: center; gap: 7px; padding: 2px 5px; background: linear-gradient(white, #d8e3f6); border-bottom: 1px solid #a2b7d8; font-size: 10px; }
.msn-font { font: bold 17px Georgia, serif; text-decoration: underline; color: #174aa0; }
.msn-formatbar button { font: 11px Tahoma, Arial, sans-serif; border: 1px solid transparent; padding: 2px 4px; background: transparent; color: #25476b; cursor: pointer; }
.msn-formatbar button:hover { border-color: #8ca8d0; background: #f6faff; }
.msn-format-divider { height: 14px; border-left: 1px solid #a8bad8; }
.msn-counter { margin-left: auto; color: #5c7092; font-size: 10px; white-space: nowrap; }
.msn-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 5px 7px; border-bottom: 1px solid #d5deeb; background: #f6f9ff; }
.msn-form label { display: block; min-width: 0; font-size: 10px; color: #516581; }
.msn-form input { display: block; width: 100%; min-width: 0; border: 1px solid #b0bfd7; padding: 4px 5px; margin-top: 2px; background: white; color: #222; font: 12px Tahoma, Arial, sans-serif; border-radius: 0; }
.msn-compose { display: grid; grid-template-columns: minmax(0, 1fr) 66px; gap: 7px; padding: 5px 6px; background: white; }
.msn-form textarea { display: block; width: 100%; border: 0; padding: 3px; margin: 0; resize: vertical; min-height: 76px; max-height: 210px; background: white; color: #111; font: 13px/1.4 Tahoma, Arial, sans-serif; }
.msn-send { align-self: center; min-height: 49px; border: 1px solid #849dc3; border-radius: 3px; background: linear-gradient(white 50%, #e3ebfa); box-shadow: inset 0 0 0 2px #f3f7ff; color: #294e88; font: 11px Tahoma, Arial, sans-serif; overflow-wrap: anywhere; cursor: pointer; }
.msn-send:active:not(:disabled) { background: #d0ddf3; }
.msn-send:disabled { color: #8293aa; cursor: default; }
.msn-input-footer { display: flex; justify-content: space-between; align-items: center; padding-left: 6px; background: #e7edfb; color: #7385a0; border-top: 1px solid #bac9e1; font-size: 9px; }
.msn-input-footer strong { color: #37517b; font-weight: normal; padding: 2px 8px; background: #fff; border-left: 1px solid #b5c8e6; border-bottom: 2px solid #e1bd36; }
.msn-form .msn-trap, .msn-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.msn-status { margin: 8px 11px; min-height: 30px; color: #526787; font-size: 11px; }
.msn-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 7px; padding: 5px 10px; border-top: 1px solid #b8c7e0; background: #eaf0fb; color: #5f7393; font-size: 10px; }
.msn-mail { color: #285da3; }
.msn-nudge { animation: msn-nudge .32s linear; }
@keyframes msn-nudge { 25%, 75% { transform: translateX(-3px); } 50% { transform: translateX(3px); } }
@media (prefers-reduced-motion: reduce) { .msn-nudge { animation: none; } }
@media (max-width: 480px) {
  .msn-chat-layout { grid-template-columns: minmax(0, 1fr) 66px; gap: 7px; padding: 8px 7px 0; }
  .msn-avatar { padding: 3px; border-radius: 5px; }
  .msn-avatar img, .msn-avatar svg { height: 66px; }
  .msn-actions { gap: 0; padding: 4px; }
  .msn-action { min-width: 46px; padding: 2px 3px; }
  .msn-wordmark { width: 65px; gap: 1px; }
  .msn-wordmark strong { font-size: 20px; }
  .msn-wordmark svg { width: 20px; height: 20px; }
  .msn-conversation { height: 195px; }
  .msn-form { grid-column: 1 / -1; }
  .msn-avatar-visitor { display: none; }
  .msn-formatbar { gap: 5px; }
  .msn-fields { gap: 6px; }
  .msn-menu { font-size: 10px; }
}
