/* The phone has its own reading rhythm. Desktop composition stays unchanged. */
.mobile-lab-toggle { display:none; }
.mobile-spectrum>summary { display:none; }
@media (max-width:760px), (max-width:1024px) and (max-height:500px) {
  :root { --header-offset:136px; --shell-gutter:14px; }
  html { scroll-padding-top:136px; -webkit-text-size-adjust:100%; }
  body { overflow-x:clip; }
  .site-header { top:10px; height:108px; padding:8px 12px 6px; grid-template-rows:44px 44px; gap:2px 8px; border-radius:18px; background:#20271e; }
  .site-header .site-nav { padding-top:0; }
  .site-header .site-nav>a { min-height:44px; padding:8px 0; font-size:12px; color:#cbd6c1; }
  .site-header .site-contact { min-height:44px; width:92px; font-size:11px; }
  .site-header .site-language { min-height:44px; min-width:44px; font-size:11px; }
  .site-header .wordmark { font-size:18px; min-height:44px; }
  .site-nav-indicator { bottom:3px; height:2px; }
  .page-atmosphere { display:none; }
  .hero.cv-intro .intro { display:none; }
  .hero.cv-intro .experience-overview { margin-top:18px; }
  .hero.cv-intro .experience-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .hero.cv-intro .experience-item { min-height:55px; align-items:flex-start; padding:10px 0; }
  .hero.cv-intro .experience-mobile-label { font-size:12px; line-height:1.5; }
  .hero.cv-intro .overview-heading h2 { font-size:12px; color:#adbf9d; }
  .work-index { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; overflow:visible; padding:0; margin-bottom:24px; }
  .work-index a { min-width:0; min-height:48px; padding:8px 6px; font-size:12px; line-height:1.4; justify-content:center; text-align:center; white-space:normal; }
  #experiencia,#rf,#termografia,#farmium,#investigacion,#laboratorios,#sensores,#imagen,#metodo,#optimizacion,#contacto { scroll-margin-top:0; }
  .work .work-layout { display:flex; flex-direction:column; gap:18px; }
  .work .work-layout>.visual { order:1!important; width:100%; }
  .work .work-layout>.copy { order:2!important; width:100%; }
  .method-header p,.method-card p { font-size:15px; line-height:1.7; color:#c0ceba; }
  .method-card .scope,.thermal-id,.thermal-label,.thermal-scale,.metric small,.score-legend,.api-caption { font-size:12px; line-height:1.6; }
  .metric strong { font-size:20px; }
  .thermal-title { font-size:21px; line-height:1.25; }
  .stack span { font-size:12px; padding:9px 11px; }
  .contact-copy { font-size:15px; line-height:1.7; }
  .print-button { min-height:44px; font-size:12px; }
  .visual[data-rf-viewer] { display:flex; flex-direction:column; }
  [data-rf-viewer]>.visual-title { order:0; }
  [data-rf-viewer]>.sample-tabs { order:1; }
  [data-rf-viewer]>.rf-result { order:2; }
  [data-rf-viewer]>.rf-plots { order:3; }
  [data-rf-viewer]>.rf-vote-title { order:4; margin-top:0; }
  [data-rf-viewer]>.rf-votes { order:5; }
  [data-rf-viewer]>.visual-note { order:6; }
  .mobile-spectrum { margin:2px 0 12px; border-top:1px solid #bdd3c52b; }
  .mobile-spectrum>summary { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 0; color:#cdddba; font-size:13px; cursor:pointer; list-style:none; }
  .mobile-spectrum>summary::-webkit-details-marker { display:none; }
  .mobile-spectrum>summary:after { content:'+'; font-size:21px; }
  .mobile-spectrum[open]>summary:after { content:'−'; }
  .cv-case-details[open]>.cv-case-detail-body { animation:mobile-detail-enter .28s ease-out; }
  .ml-proof-stage:last-child strong { font-size:21px; overflow-wrap:normal; }
  .mobile-lab-toggle { position:relative; top:auto; z-index:12; display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; margin:0 0 10px; padding:12px 14px; border:1px solid #bddb9955; border-radius:10px; background:#253121; color:#e1efcd; font:500 13px/1.5 Portfolio,Arial,sans-serif; cursor:pointer; }
  .mobile-lab-toggle[aria-pressed=true] { position:sticky; top:var(--header-offset); background:#c9e78f; color:#17210f; box-shadow:0 4px 18px #0003; }
  .mobile-lab-toggle:focus-visible { outline:2px solid #e0f7bc; outline-offset:3px; }
  .visual:has(.engine[data-mobile-interacting=true]) { overflow:visible; }
  .engine:not([data-mobile-interacting=true]),.engine:not([data-mobile-interacting=true]) :where(div,canvas,svg) { touch-action:pan-y!important; }

  /* Both destinations fit in a compact, readable pair of editorial rows. */
  body[data-page=home] .hero-sequence>.home-entry { padding-top:150px; padding-bottom:24px; }
  body[data-page=home] .entry-intro { margin-bottom:26px; }
  body[data-page=home] .home-entry .eyebrow { font-size:10px; letter-spacing:.8px; line-height:1.5; margin-bottom:14px; }
  body[data-page=home] .home-entry h1 { font-size:clamp(34px,9vw,46px); line-height:1.06; }
  body[data-page=home] .entry-intro-copy { font-size:15px; line-height:1.6; margin-top:16px; color:#bdc9b7; }
  body[data-page=home] .entry-intro-copy>span { font-size:14px; color:#e3ebd9; margin-top:10px; }
  body[data-page=home] .entry-paths { grid-template-columns:1fr; gap:0; perspective:none; }
  body[data-page=home] .entry-path { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(0,.92fr); column-gap:18px; row-gap:4px; padding:22px 0; border-top:1px solid #c5d6ae38; border-radius:0; }
  body[data-page=home] .entry-path-copy { grid-column:1; grid-row:1; border:0; padding:0; }
  body[data-page=home] .entry-path-copy>p { font-size:10px; line-height:1.45; letter-spacing:.45px; margin:0 0 10px; min-height:0; color:#bccbb1; }
  body[data-page=home] .entry-path h2 { font-size:clamp(22px,6vw,30px); min-height:0; margin:0; line-height:1.12; letter-spacing:-.045em; }
  body[data-page=home] .entry-path h2 em { white-space:normal; }
  body[data-page=home] .entry-scene { grid-column:2; grid-row:1/3; align-self:center; width:100%; margin:0; aspect-ratio:16/11; border-radius:10px; box-shadow:0 12px 26px #0003; transform:none; clip-path:none; scale:1; }
  body[data-page=home] .entry-path-footer { grid-column:1; grid-row:2; min-height:44px; padding:8px 0 0; margin:0; border:0; font-size:13px; line-height:1.4; gap:8px; align-items:center; }
  body[data-page=home] .entry-path-footer i { width:27px; height:27px; flex-shrink:0; font-size:17px; }
  body[data-page=home] .entry-rf .entry-scene-meta,body[data-page=home] .entry-rf-readout { display:none; }
  body[data-page=home] .entry-rf-field { height:100%; }
  body[data-page=home] .entry-rf-field svg { height:100%; inset:0; }
  body[data-page=home] .entry-rf-wave { stroke-width:1.2; }
  body[data-page=home] .entry-web-bar { font-size:9px; letter-spacing:0; padding:6px; justify-content:center; }
  body[data-page=home] .entry-web-bar>span:first-child { display:none; }
  body[data-page=home] .entry-end { border-top:1px solid #c5d6ae25; padding-top:15px; margin-top:0; font-size:11px; line-height:1.6; }
  body[data-page=home] .entry-end>a { min-height:44px; max-width:155px; }

  /* Clear type and comfortable controls for actual reading, not scaled desktop. */
  body[data-page=home] .eyebrow,body[data-page=webs] .eyebrow { font-size:10px; line-height:1.55; letter-spacing:.7px; }
  .feature-heading>p,.work-intro>p,.studio-heading>p:last-child,.studio-panel p,.contact-main p { font-size:15px; line-height:1.7; color:#bdc9b7; }
  .feature-heading h3 { font-size:34px; line-height:1.08; }
  .farmium-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .farmium-overview .module-card { display:flex; grid-column:auto; grid-row:auto; min-height:205px; padding:16px 14px; }
  .farmium-overview .module-copy,.farmium-overview .module-collections .module-copy { display:flex; flex:1; flex-direction:column; width:100%; max-width:none; align-items:flex-start; gap:12px; }
  .farmium-overview .module-copy strong,.farmium-overview .module-analytics .module-copy strong { font-size:22px; line-height:1.16; letter-spacing:-.6px; }
  .farmium-overview .module-action { margin-top:auto; gap:9px; font-size:12px; line-height:1.4; }
  .farmium-overview .module-kicker { min-height:30px; }
  .farmium-overview :is(.module-image,.module-flow,.calendar-art,.library-art) { display:none; }
  .feature-footer p,.feature-footer .text-link,.collection-label,.work-footnote { font-size:12px; line-height:1.65; }
  .feature-footer .text-link { min-height:44px; display:inline-flex; align-items:center; }
  .module-kicker { font-size:10px; line-height:1.5; letter-spacing:.6px; color:#c5d6cd; }
  .module-action { font-size:13px; min-height:44px; }
  .module-copy strong { line-height:1.15; }
  .project-meta { display:block; }
  .project-meta h3 { font-size:23px; }
  .project-meta p { font-size:14px; line-height:1.65; color:#bdc9b7; }
  .project-meta>span { display:block; font-size:12px; line-height:1.6; max-width:none; margin-top:9px; }
  .project-label { font-size:10px; line-height:1.5; }
  .filter { min-width:44px; min-height:44px; font-size:12px; padding:10px 14px; }
  .studio-track>button { min-height:48px; font-size:13px; }
  .studio-panel h3 { font-size:29px; }
  .studio-budget>p,.studio-budget>a { font-size:14px; line-height:1.6; }
  .studio-budget>p>span { font-size:12px; }
  .contact-form label { font-size:13px; color:#d2dfcf; }
  .contact-form input,.contact-form textarea,.contact-form select { font-size:16px; min-height:48px; }
  .form-status,.form-privacy { font-size:12px!important; line-height:1.6; }
  .contact-form button[type=submit] { min-height:48px; font-size:14px; }
  .contact-links span,.contact-links small { font-size:11px; }
  footer>p,.back-top { font-size:12px; line-height:1.6; }
  .back-top { min-height:44px; display:inline-flex; align-items:center; }
  body[data-page=webs] .hero-sequence>.hero { padding-top:150px; }
  body[data-page=webs] .hero-actions .button { font-size:14px; min-height:48px; }
  body[data-page=webs] .hero-description { font-size:16px; line-height:1.65; }
  .webs-hero-preview { transform:none; }
  .webs-hero-preview .window-top { font-size:10px; min-height:30px; }
  .webs-preview-detail { transform:none; }

  .ml-proof-heading>p { font-size:15px; line-height:1.7; color:#bbcec1; margin-top:17px; }
  .ml-proof-topline,.ml-proof-topline>span:last-child { font-size:12px; line-height:1.5; }
  .ml-proof-topline>span:last-child { max-width:125px; }
  .ml-proof-sample { font-size:12px; padding:10px 4px; }
  .ml-proof-replay { font-size:12px; }
  .ml-proof-stages { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:17px 14px; }
  .ml-proof-stage { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
  .ml-proof-stage .ml-proof-step { min-height:36px; }
  .ml-proof-stage strong { text-align:left; font-size:23px; }
  .ml-proof-stage:first-child strong { font-size:16px; line-height:1.35; }
  .ml-proof-stage small { display:none; }
  .ml-proof.is-presenting .ml-proof-stage { animation:none; filter:none; }
  .ml-proof-step,.ml-proof-stage small,.ml-proof-stage strong>span { font-size:12px; line-height:1.5; }
  .ml-proof-stage strong { font-size:25px; }
  .ml-proof-figure-heading,.ml-proof-wave-figure figcaption,.ml-proof-recording,.ml-proof-vote-note,.ml-proof-status,.ml-proof-bottom>p,.ml-proof-source,.ml-proof-frequency summary,.ml-proof-frequency-content>p { font-size:12px; line-height:1.65; color:#b9ccbd; }
  .ml-proof-readout h3 { font-size:17px; }
  .ml-proof-votes-intro { font-size:13px; }
  .ml-proof-source summary,.ml-proof-frequency summary { min-height:44px; }
  .ml-proof-bottom .button { font-size:14px; min-height:48px; }

  /* Avoid competing scroll transforms, blur and 3D layers on WebKit. */
  .entry-name,.home-entry h1 .entry-surname,.entry-path,.entry-path h2,.entry-path-copy,.entry-path-footer,.entry-scene,.entry-website img,.webs-hero-preview { animation:none!important; transform:none; translate:none; scale:1; filter:none; clip-path:none; opacity:1; }
  html.js-motion .project-card,html.js-motion .project-visual,html.js-motion .facet:not(.visible),html.js-motion .module-card:not(.visible),html.js-motion .module-card,.type-line,.type-accent,[data-reveal] { transform:none; translate:none; filter:none; opacity:1; will-change:auto; }
  .js-motion .module-card { transition:background .25s,border-color .25s; }
  .module-card:after { animation:none; }
  .entry-path:hover .entry-path-copy>p,.entry-path:hover .entry-path-footer i { translate:none; transform:none; }
  .entry-path:active,.module-card:active,.project-visual:active { background-color:#c9e78f09; }
  html.mobile-motion .mobile-reveal.mobile-arrived { animation:var(--mobile-enter,mobile-enter) var(--mobile-duration,.62s) var(--mobile-delay,0ms) cubic-bezier(.2,.75,.25,1) both!important; }
  html.mobile-motion .mobile-reveal:focus-within { animation:none!important; opacity:1!important; transform:none!important; }
  html.performance-lite { --mobile-enter:mobile-fade; --mobile-duration:.28s; }
  .mobile-reveal:not(.mobile-active) .entry-rf-scan { animation-play-state:paused; }
  @keyframes mobile-enter { from { opacity:.35; transform:translateY(18px); } to { opacity:1; transform:none; } }
  @keyframes mobile-fade { from { opacity:.6; } to { opacity:1; } }
  @keyframes mobile-detail-enter { from { opacity:.4; transform:translateY(6px); } to { opacity:1; transform:none; } }
}
@media(max-width:370px) {
  .site-header .wordmark { font-size:16px; }
  .site-header .site-nav>a { font-size:11px; }
  .site-header .site-contact { width:90px; }
  body[data-page=home] .entry-path { column-gap:12px; grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr); }
  body[data-page=home] .entry-path h2 { font-size:23px; }
  body[data-page=home] .entry-path-footer { font-size:12px; }
  .ml-proof-samples { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:761px) and (max-width:1024px) and (max-height:500px) {
  :root { --header-offset:96px; }
  html { scroll-padding-top:96px; }
  .site-header { top:8px; height:64px; grid-template-columns:1fr auto 1fr; grid-template-rows:1fr; padding:8px 14px; gap:12px; }
  .site-header .site-nav { grid-column:2; grid-row:1; grid-template-columns:60px 70px 145px; border:0; }
  .site-header .site-actions { grid-column:3; grid-row:1; }
  body[data-page=home] .hero-sequence>.home-entry,body[data-page=webs] .hero-sequence>.hero { padding-top:112px; }
  body[data-page=home] .entry-paths { grid-template-columns:1fr 1fr; gap:30px; }
}
@media(prefers-reduced-motion:reduce) {
  html.mobile-motion .mobile-reveal.mobile-arrived { animation:none!important; opacity:1!important; transform:none!important; }
  .cv-case-details[open]>.cv-case-detail-body { animation:none!important; }
}
@media print { .mobile-lab-toggle { display:none!important; } }
