/* Responsive & touch polish (micro-level). Loaded last in core bundle. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,video,svg{max-width:100%}
img{height:auto}
table{max-width:100%}
.prose table,.post-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
.prose pre,.post-body pre{overflow-x:auto;max-width:100%}
.prose img,.post-body img{height:auto}
.prose iframe,.post-body iframe,.prose video{max-width:100%}
.person__label{font-size:.75rem}
:focus-visible{outline:2px solid var(--c-accent,#0a7ea4);outline-offset:2px}

/* Touch devices & small screens: 44px targets, 16px form text (stops iOS zoom) */
@media (pointer:coarse),(max-width:900px){
  .brand{min-height:44px}
  .link-arrow{min-height:44px}
  .card__title a{display:inline-block;padding-block:.35rem}
  .breadcrumbs a{display:inline-flex;align-items:center;min-height:40px;padding-inline:.15rem}
  .breadcrumbs ol{gap:0 .35rem}
  .eyebrow a{display:inline-flex;align-items:center;min-height:36px}
  .site-footer a{display:inline-block;padding-block:.5rem}
  .site-footer li{margin:0}
  .person__link{width:44px;height:44px}
  .sharebar__btn,.sharebar a,.sharebar button{min-width:44px;min-height:44px}
  .tag,.chip,.pill{min-height:40px;display:inline-flex;align-items:center}
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{font-size:16px}
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([name=website_url]),select{min-height:44px}
  .btn{min-height:44px}
}
@media (max-width:480px){
  .btn-row,.hero__actions,.cta-actions{flex-direction:column;align-items:stretch}
  .btn-row .btn,.hero__actions .btn,.cta-actions .btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media (max-width:600px){
  .skill{padding:var(--space-4);gap:.5rem}
  .skill__desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .card__media{aspect-ratio:16/9}
}
.post-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.75rem;margin-block:var(--space-6,2rem)}
.post-nav__item{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.15rem;border:1px solid var(--c-border);border-radius:var(--radius-lg,14px);background:var(--c-surface);text-decoration:none;color:var(--c-ink);min-width:0;transition:border-color .2s,box-shadow .2s}
.post-nav__item:hover{border-color:var(--c-primary-600);box-shadow:var(--shadow-md)}
.post-nav__item small{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-muted)}
.post-nav__item strong{font-size:.98rem;line-height:1.35;overflow-wrap:anywhere}
.post-nav__item--next{text-align:right;grid-column:2}
[data-theme="dark"] .post-nav__item{color:#f1f4fa}
@media (max-width:600px){
  .post-nav__item--next{grid-column:auto;text-align:left}
  .breadcrumbs [aria-current],.breadcrumbs li:last-child:not(:only-child){display:none}
}

/* ===== Header & mobile menu (v2) ===== */
.site-header__tools{margin-left:auto}           /* right-align tools even when the desktop nav is hidden */
.site-nav ~ .site-header__tools{margin-left:0}
@media (max-width:979px){.site-nav ~ .site-header__tools{margin-left:auto}}
.site-header__inner{gap:.75rem}
.brand{min-width:0;flex:0 1 auto}
.brand__name{max-width:100%}
@media (max-width:380px){.brand__name{font-size:1.02rem}.brand__mark{width:2rem;height:2rem}}
@media (max-width:979px){
  .site-header .icon-btn{width:2.75rem;height:2.75rem;border-color:var(--c-border);background:var(--c-surface);border-radius:999px}
  .site-header .nav-toggle{background:var(--c-ink);border-color:var(--c-ink);color:#fff}
  [data-theme="dark"] .site-header .nav-toggle{background:var(--c-accent);border-color:var(--c-accent);color:#16110a}
  .site-header__tools{gap:.5rem}
}
/* Drawer */
.mobile-menu__backdrop{position:fixed;inset:0;top:var(--header-h);background:rgba(10,23,48,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s;z-index:-1}
body.nav-open .mobile-menu__backdrop{opacity:1;visibility:visible;transition-delay:0s}
@media (min-width:980px){.mobile-menu__backdrop{display:none}}
.mobile-menu{background:var(--c-surface);border-radius:0 0 22px 22px;border-bottom:0;box-shadow:0 30px 60px -20px rgba(10,23,48,.45);overflow-y:auto}
.mobile-menu__inner{padding-block:1rem 1.5rem}
.mobile-menu nav>ul{counter-reset:mm;display:grid;gap:.35rem}
.mobile-menu nav>ul>li{counter-increment:mm;opacity:0;transform:translateY(8px)}
.mobile-menu.is-open nav>ul>li{opacity:1;transform:none;transition:opacity .35s ease,transform .35s ease}
.mobile-menu.is-open nav>ul>li:nth-child(1){transition-delay:.04s}.mobile-menu.is-open nav>ul>li:nth-child(2){transition-delay:.08s}.mobile-menu.is-open nav>ul>li:nth-child(3){transition-delay:.12s}.mobile-menu.is-open nav>ul>li:nth-child(4){transition-delay:.16s}.mobile-menu.is-open nav>ul>li:nth-child(5){transition-delay:.2s}.mobile-menu.is-open nav>ul>li:nth-child(6){transition-delay:.24s}.mobile-menu.is-open nav>ul>li:nth-child(n+7){transition-delay:.28s}
.mobile-menu a.m-link{position:relative;gap:.9rem;justify-content:flex-start;padding:.9rem 1rem;border:1px solid transparent;border-radius:14px;font:600 1.1rem/1.3 var(--font-sans);color:var(--c-ink);min-height:52px}
[data-theme="dark"] .mobile-menu a.m-link{color:#f1f4fa}
.mobile-menu nav>ul>li>a.m-link::before{content:counter(mm,decimal-leading-zero);font:600 .72rem/1 var(--font-sans);letter-spacing:.08em;color:var(--c-accent-text);min-width:1.4rem}
.mobile-menu nav>ul>li>a.m-link::after{content:"";margin-left:auto;width:.5rem;height:.5rem;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:.35;transition:transform .2s,opacity .2s}
.mobile-menu a.m-link:hover,.mobile-menu a.m-link:active{background:var(--c-surface-2);border-color:var(--c-border)}
.mobile-menu a.m-link:hover::after{transform:translateX(3px) rotate(45deg);opacity:.8}
.mobile-menu a.m-link[aria-current]{background:linear-gradient(90deg,var(--c-primary-soft),transparent);border-color:var(--c-border);color:var(--c-primary-600)}
.mobile-menu a.m-link[aria-current]::after{opacity:.9}
.mobile-menu ul ul{margin:.2rem 0 .4rem 2.4rem;padding-left:.75rem;border-left:2px solid var(--c-border);display:grid;gap:.1rem}
.mobile-menu ul ul a.m-link{padding:.6rem .75rem;min-height:44px;font:500 .95rem/1.3 var(--font-sans)}
.mobile-menu__cta{margin-top:1.1rem!important;min-height:52px;border-radius:14px;font-size:1.02rem}
.mobile-menu__foot{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:1.25rem;padding-top:1.1rem;border-top:1px dashed var(--c-border)}
.mobile-menu__mail{font-size:.95rem;color:var(--c-text-muted);text-decoration:none;word-break:break-all}
.mobile-menu__foot .social{justify-content:center}
@media (prefers-reduced-motion:reduce){.mobile-menu nav>ul>li{opacity:1;transform:none}}

/* ===== Footer on phones ===== */
.site-footer .social a,.social a{display:inline-grid;place-items:center;padding:0;width:2.75rem;height:2.75rem;line-height:1}
.social a svg{display:block;width:1.15rem;height:1.15rem}
.social--lg a{width:2.9rem;height:2.9rem;border-radius:50%}
@media (pointer:coarse),(max-width:900px){.site-footer .social a{display:inline-grid;padding:0}}
.brand--footer{flex-direction:row}
@media (max-width:699px){
  .footer-grid{gap:2rem 1.5rem;grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:1/-1}
  .footer-about{margin:.9rem 0 1.1rem}
  .footer-links{gap:0}
  .site-footer .footer-links a{padding-block:.55rem}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
.site-footer .brand{display:inline-flex;padding:0}
.site-footer .btn{display:inline-flex}
body.nav-open .bgc-fab,body.nav-open .ai-widget-btn,body.nav-open .back-to-top,body.nav-open #scroll-top{opacity:0;visibility:hidden;pointer-events:none}
.band--center{text-align:center}
.band--center h2,.band--center p{margin-inline:auto}
.band--center .eyebrow{justify-content:center}
.band .btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media (max-width:480px){.band .cluster{flex-direction:column;align-items:stretch}.band .cluster .btn{width:100%;justify-content:center}}

/* Content grids must never grow past the viewport because of wide children (images, tables, long words) */
.post-layout,.post-main,.tool-main{grid-template-columns:minmax(0,1fr)}
.project-layout{grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.project-layout{grid-template-columns:minmax(0,1fr) 320px}}
.post-main>*,.tool-main>*,.post-side>*{min-width:0;max-width:100%}
@media (min-width:1000px){.post-layout{grid-template-columns:minmax(0,1fr) 320px}}
.post-content,.prose{overflow-wrap:anywhere}
.post-content img,.post-content figure,.post-content video,.post-content iframe{max-width:100%;height:auto}
.post-content figure{margin-inline:0}
.post-content table{display:block;max-width:100%;overflow-x:auto}
.post-content pre{max-width:100%;overflow-x:auto}
.prose p[style*="text-align:justify"],.prose p[style*="text-align: justify"],.post-content p{text-align:start;hyphens:auto}

/* ===== Person / author cards ===== */
.person--side .person__bio{text-align:center;max-width:42ch}
.person--side .person__name{font-size:1.2rem}
.person--box .person__photo,.person--side .person__photo{box-shadow:0 0 0 2px color-mix(in srgb,var(--c-accent) 75%,transparent),0 0 0 7px color-mix(in srgb,var(--c-accent) 14%,transparent),var(--shadow-md)}
.person__links{align-items:center}
@media (max-width:599px){
  .person--box,.person--side{justify-items:center;text-align:center}
  .person--box .person__photo{width:120px;height:120px}
  .person--box .person__links,.person--side .person__links{justify-content:center}
}
/* Sidebar newsletter: no dead space under the field */
.side-card .newsletter__msg:empty{display:none}
.side-card .newsletter{gap:.5rem}
.side-card--accent .newsletter__note{margin-top:.15rem}
