/* =====================================================================
   every-device hardening layer (shared by every page)
   Keeps the site readable and usable on old phones, notched phones,
   tablets, laptops and large screens. Visual design lives in each page's
   own styles; this file only enforces minimums and safe fallbacks.
   ===================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* iOS zooms the page when a focused field is under 16px */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]),select,textarea{font-size:max(16px,1em)}

/* media never forces sideways scrolling */
img,video{max-width:100%}
img{height:auto}

/* long strings (emails, URLs) wrap instead of overflowing */
a[href^="mailto:"],a[href^="http"]{overflow-wrap:anywhere}

/* visible keyboard focus everywhere */
:focus-visible{outline:2px solid #2DD4BF;outline-offset:3px}

/* no 300ms tap delay / double-tap zoom on controls */
a,button,summary,label,[role=button],[role=tab]{touch-action:manipulation}

/* fixed headers clear the notch / status bar when viewport-fit=cover */
@supports(padding:env(safe-area-inset-top)){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
}

/* respect reduced-motion globally (pages add their own static states) */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* print: plain, readable, no effects */
@media print{
  canvas,video,.nav,#nav,.mnav,#grain,#aura,#prog,.bg-grid,.bg-glow{display:none!important}
  *{box-shadow:none!important;text-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .rv,.pf-item{opacity:1!important;transform:none!important;filter:none!important}
}

/* small phones: buttons and labels wrap instead of pushing the page sideways */
@media (max-width:480px){
  .btn{white-space:normal!important;text-align:center;max-width:100%;height:auto}
  .eyebrow,.kicker,.badge{white-space:normal;max-width:100%}
}

/* phones & tablets: page styles must not shrink form fields below 16px (iOS zoom) */
@media (max-width:1024px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]),select,textarea{font-size:16px!important}
}

/* touch screens: comfortable 44px targets for navigation, footer and control links */
@media (pointer:coarse){
  .foot-col a,.fg>div>a,.foot a,.site-foot a{display:flex;align-items:center;min-height:44px}
  .trackbar a,.sse-opts button,.region .cs,.regions button,.arch-keys button,.tabs .tab,.filterbar .chip,.cta-alt a,.form-aside .alt a,.consent button,.row .acc,.row .dec,.lines a,.link-arrow{min-height:44px}
  .lines a,.link-arrow,.cta-alt a,.form-aside .alt a{display:inline-flex;align-items:center}
  .syn-brand,.brand,a.logo,a.back,.back-cta{display:inline-flex;align-items:center;min-height:44px}
  .menu-btn,.burger,.nav-toggle{min-width:44px;min-height:44px}
  a[aria-label="Xeomics home"],.exit{display:inline-flex;align-items:center;min-height:44px}
  .nav-right .btn,.nav-r .btn{min-height:44px}
}

/* ph-dev:start — development placeholders for content that is still awaited. Removed by tools/placeholders.py --strip before production. */
.ph-dev{position:relative;border:2px dashed #F5B83D;border-radius:14px;padding:20px 20px 18px;margin:22px 0;background:repeating-linear-gradient(135deg,rgba(245,184,61,.09) 0 10px,transparent 10px 22px);text-align:left}
.ph-dev-tag{display:inline-block;font:600 12px/1 "IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:#1A1200;background:#F5B83D;border-radius:6px;padding:6px 9px;margin-bottom:12px}
.ph-dev p{margin:0;font-size:14.5px;line-height:1.55;opacity:.88}
.ph-dev p+p{margin-top:8px}
.ph-dev .ph-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:12px}
.ph-dev .ph-box{border:1px dashed rgba(245,184,61,.75);border-radius:10px;min-height:118px;display:grid;place-items:center;text-align:center;padding:14px;font-size:13px;line-height:1.4}
.ph-dev .ph-n{display:block;font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1;margin-bottom:8px}
mark.ph-dev-i{background:#F5B83D;color:#1A1200;padding:0 4px;border-radius:3px;font-weight:500}
.ph-dev.ph-card{margin:0;height:100%}
/* ph-dev:end */
