/* Focused improvements to the approved composition. */
body { -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { font: inherit; }
:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
.site-header { z-index: 40; }
.site-header nav { gap: clamp(16px, 2.4vw, 36px); }
.site-header nav a { min-height: 44px; display: inline-flex; align-items: center; }
.nav-cv { color: var(--lime); gap: 9px; }
.menu-toggle { display: none; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; margin-top: 30px; }
.hero-actions a { display: inline-flex; align-items: center; min-height: 48px; gap: 18px; text-decoration: none; font-size: .9rem; font-weight: 800; }
.hero-actions .cv-action { padding: 14px 18px; background: var(--lime); color: var(--ink); }
.cv-action > span:first-child { font-size: .72rem; font-weight: 500; }
.work-action { border-bottom: 1px solid #ffffff70; }
.hero-actions a:hover { filter: brightness(1.08); }
.hero-intro { margin-top: clamp(32px, 5vh, 64px); }
.hero-copy { padding-bottom: 44px; }
.cv-resources { display: grid; grid-template-columns: 1fr 1.15fr; gap: 40px 7vw; margin-top: 64px; padding-top: 38px; border-top: 1px solid currentColor; scroll-margin-top: 90px; }
.cv-resources .eyebrow { margin-bottom: 18px; font-size: .8rem; }
.cv-resources h3 { font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.1; letter-spacing: -.045em; margin: 0; max-width: 16ch; }
.cv-downloads { display: flex; flex-direction: column; }
.cv-downloads > a { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 16px 0; text-decoration: none; border-bottom: 1px solid currentColor; }
.cv-downloads > a:first-child { padding-top: 0; }
.cv-downloads > a > span { font-size: .85rem; }
.cv-downloads > a:hover strong { text-decoration: underline; text-underline-offset: 5px; }
.contact { padding-bottom: max(120px, calc(90px + env(safe-area-inset-bottom))); }
.smart-menu-pages { scrollbar-width: thin; }
.work-carousel { touch-action: pan-y pinch-zoom; }
.carousel-pages button[aria-pressed="true"] { color: #fff; background: #c72720; border-color: #c72720; }
@media (max-width: 700px) {
  .site-header { flex-wrap: wrap; padding-inline: 18px; }
  .wordmark { min-height: 64px; align-items: center; }
  .menu-ready .menu-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 44px; padding: 10px 0 10px 16px; border: 0; background: none; color: white; cursor: pointer; }
  .menu-toggle span { font-size: 1.4rem; transition: transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span { transform: rotate(45deg); }
  .site-header nav { flex-basis: 100%; flex-wrap: wrap; padding-bottom: 14px; gap: 0 20px; }
  .site-header nav a:nth-child(2) { display: inline-flex; }
  .menu-ready .site-header nav { display: none; position: absolute; top: 64px; left: 0; right: 0; padding: 12px 22px 22px; max-height: calc(100svh - 64px); overflow-y: auto; background: #101010; box-shadow: 0 16px 28px #0003; }
  .menu-ready .site-header nav.is-open { display: flex; flex-direction: column; }
  .menu-ready .site-header nav a { padding: 14px 0; border-bottom: 1px solid #fff3; }
  .hero-copy { min-height: 0; padding-top: 42px; padding-bottom: 42px; }
  .hero-name { max-width: 34ch; line-height: 1.5; }
  .hero-intro { font-size: 1.2rem; line-height: 1.4; margin-top: 28px; }
  .hero-actions { gap: 14px 24px; margin-top: 26px; }
  .hero-actions a { font-size: .86rem; gap: 12px; }
  .hero-actions .cv-action { padding: 13px 15px; }
  .hero-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .hero-card { min-height: 190px; padding: 16px; }
  .hero-card span { font-size: clamp(1.5rem, 6.5vw, 2.5rem); line-height: 1.04; }
  .hero-card small { font-size: .72rem; line-height: 1.35; }
  .hero-card strong { left: 16px; }
  .hero-index { padding: 28px 18px 32px; min-height: 0; }
  .hero-index .eyebrow { font-size: .84rem; margin-bottom: 22px; }
  .cv-resources { grid-template-columns: 1fr; gap: 30px; margin-top: 44px; padding-top: 30px; }
  .cv-downloads > a { font-size: 1rem; }
  .carousel-controls { gap: 12px; flex-wrap: wrap; }
  .carousel-controls button { padding: 10px 14px; }
  .carousel-slide figcaption { font-size: 1rem; padding: 16px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

.carousel-slide img {height:auto;aspect-ratio:16/9;}
@media(max-width:700px){.menu-ready .menu-toggle{width:44px;padding:10px;justify-content:center;}}
.digital-portfolio{padding:clamp(44px,7vw,96px) 3vw;background:#e8e6df;border-top:1px solid var(--line);}
.digital-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:28px 6vw;align-items:end;margin-bottom:48px;}.digital-heading .eyebrow{grid-column:1/-1;margin:0;}.digital-heading h2{font-size:clamp(3rem,6vw,6rem);line-height:1;}.digital-heading>p:last-child{line-height:1.6;max-width:48ch;margin:0;}
.digital-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}.digital-card{padding:clamp(24px,3.5vw,48px);min-width:0;display:flex;flex-direction:column;align-items:start;}.digital-card .eyebrow{font-size:.75rem;line-height:1.5;margin:0 0 35px;}.digital-card h3{font-size:clamp(2rem,3.4vw,4rem);line-height:1.05;letter-spacing:-.055em;margin:0 0 24px;overflow-wrap:anywhere;}.digital-card>p{line-height:1.55;margin:0 0 22px;max-width:53ch;}.digital-card .product-role{font-size:.95rem;opacity:.85;}.digital-card>a{min-height:44px;display:inline-flex;align-items:center;margin-top:auto;font-weight:700;text-underline-offset:6px;}.digital-sales{background:#101d30;color:white;}.digital-shop{background:#b00053;color:white;}.digital-social{background:#211729;color:#f5e5bf;}.digital-yard{background:#d3d7cb;color:#18251f;}.product-status{font-size:.78rem;}
@media(max-width:700px){.digital-portfolio{padding:44px 18px;}.digital-heading{grid-template-columns:1fr;gap:22px;margin-bottom:30px;}.digital-grid{grid-template-columns:1fr;}.digital-card{padding:28px 24px;}.digital-card h3{font-size:2.3rem;}.digital-card .eyebrow{margin-bottom:26px;}.digital-card>a{margin-top:6px;}}

.yard-inline{width:100%;margin-top:18px;border-top:1px solid #18251f55;padding-top:18px}.yard-inline summary{cursor:pointer;font-weight:700;min-height:44px}.yard-inline iframe{display:block;width:100%;height:900px;border:1px solid #18251f55;background:#edf2f4}.yard-inline p{font-size:.85rem}.yard-inline[open]{grid-column:1/-1}

/* Clear primary / supporting information hierarchy. */
.hero-card-apps{grid-column:1/-1;min-height:130px;background:#cad3b7;color:#101010;}.hero-card-apps span{font-size:clamp(1.6rem,2.3vw,2.5rem);}.hero-card-apps br{display:none;}.hero-card-apps span br::after{content:' ';}
.hero-card-apps{flex-direction:row;align-items:end;justify-content:space-between;gap:20px;}.hero-card-apps small{max-width:12ch;text-align:right;}
.case-support{margin:28px 0;border-block:1px solid currentColor;}.case-support>summary{cursor:pointer;padding:22px 0;font-size:1rem;font-weight:700;}.case-support .smart-story,.case-support .campaign-links{border:0;margin:0;padding-block:18px;}.case-support .unigis-capabilities{margin:0 0 24px;}
.product-presentation{width:100%;margin-top:auto;border-top:1px solid currentColor;}.product-presentation>summary{padding:18px 0;cursor:pointer;font-weight:700;min-height:48px;}.presentation-body{font-size:1rem;line-height:1.6;padding-bottom:12px;}.presentation-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;}.presentation-body img{width:100%;height:auto;display:block;}.presentation-body h4{font-size:1.2rem;margin-bottom:12px;}.presentation-body ol{padding-left:22px;}.presentation-body>p:last-child{font-size:.85rem;opacity:.8;}
.phone-story{background:linear-gradient(150deg,#32233d,#121016);border:7px solid #08080b;border-radius:32px;padding:32px 23px;max-width:320px;width:100%;margin:24px auto;color:#f5e5bf;box-shadow:0 12px 30px #0003;}.phone-brand{font-size:1.5rem;letter-spacing:.03em;font-weight:800;}.phone-brand small{color:#c4a2f0;font-size:1rem;}.phone-message{font-size:1.6rem;line-height:1.15;letter-spacing:-.04em;}.phone-story ol{list-style:none;padding:0;}.phone-story li{padding:16px 0;border-top:1px solid #fff3;}.phone-story li span{display:block;font-size:.85rem;line-height:1.4;margin-top:8px;}.phone-caption{font-size:.7rem;margin-bottom:0;opacity:.7;}
.timeline{align-items:start;}.timeline>li{padding:0;min-height:0;}.timeline>li:hover{transform:none;}.career-detail{width:100%;}.career-detail>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:14px;padding:28px;min-height:270px;}.career-detail>summary::-webkit-details-marker{display:none;}.career-more{margin-top:auto;display:flex;justify-content:space-between;font-size:.8rem!important;font-weight:700;}.career-more>span{font-size:1.3rem!important;}.career-detail[open] .career-more>span{transform:rotate(45deg);}.career-expanded{padding:0 28px 28px;border-top:1px solid #9995;}.career-expanded h3{font-size:1.2rem;line-height:1.3;margin-top:22px;}.career-expanded p{font-size:.95rem;line-height:1.6;}.career-expanded a{display:inline-flex;align-items:center;min-height:44px;font-size:.85rem;font-weight:700;}.timeline .career-detail .career-tag{align-self:flex-start;}.timeline>li:first-child .career-more{color:white;}
.digital-heading>p:last-child,.project-heading>p:last-child{font-weight:400;}.project-number{font-size:1.15rem;}.eyebrow{font-size:.8rem;}.unigis-capabilities span{font-size:1.25rem;}.digital-card .product-role{border-top:1px solid currentColor;padding-top:18px;}
@media(max-width:700px){.hero-card-apps{min-height:130px;}.hero-card-apps span{font-size:1.6rem;}.career-detail>summary{padding:24px;min-height:230px;}.career-expanded{padding:0 24px 24px;}.project-heading>p:last-child{font-size:1rem;line-height:1.5;}}

.digital-grid{align-items:start;}

/* One consistent action language across the portfolio. */
.action-button,.digital-card>a,.campaign-links>a,.resource-links>a{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 22px;border:1px solid currentColor;border-radius:9px;font-weight:750;font-size:.95rem;line-height:1.35;text-decoration:none;background:var(--ink);color:white;gap:12px;transition:background .18s,box-shadow .18s;}
.action-button:hover,.digital-card>a:hover,.campaign-links>a:hover{box-shadow:0 5px 16px #0002;filter:brightness(1.15);}.action-button:focus-visible{outline:3px solid #ff8c54;outline-offset:4px;}
.hero-actions{gap:16px;margin-top:28px;}.hero-actions a{min-height:52px;justify-content:center;font-size:.95rem;border-radius:9px;padding:14px 20px;}.hero-actions .cv-action{background:transparent;color:white;border:1px solid #fff8;}.hero-actions .cv-action>span:last-child{display:none;}.hero-actions .work-action{background:var(--lime);color:#101010;border:1px solid var(--lime);font-size:1rem;}.hero-actions .work-action:hover{background:white;color:#101010;}
.digital-card>a{background:white;color:#172638;border:0;margin-top:12px;}.digital-social>a{background:#e8d6ab;color:#211729;}.digital-shop>a{background:white;color:#9b004b;}.digital-yard>a{background:#18251f;color:white;}.digital-feature .action-button{background:#e00871;color:white;border:0;}.campaign-links>a{background:transparent;color:#101010;border:1px solid #10101066;font-size:.9rem;}
.app-capture figcaption{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;}.app-capture figcaption>strong{font-size:1.3rem;}.app-capture figcaption>span{font-size:.9rem;opacity:.8;}.capture-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}.secondary-action{background:transparent;color:inherit;border-color:currentColor;}.project-unigis .capture-actions>.action-button:first-child{background:white;color:#101d30;border-color:white;}.project-unigis .secondary-action{background:transparent;color:white;}.capture-actions .action-button{font-size:.9rem;}
.contribution{margin:34px 0 42px;padding-top:26px;border-top:1px solid #8885;}.contribution>h3{font-size:clamp(1.5rem,2.5vw,2.25rem);letter-spacing:-.04em;margin:0 0 24px;}.contribution .smart-story{margin-top:0;}.contribution .story-lead{font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.5;}.contribution .unigis-capabilities{margin:0;}.case-support>summary,.yard-inline>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;border-radius:9px;padding:16px 20px;min-height:52px;font-weight:750;background:#ffffff15;border:1px solid currentColor;}.case-support>summary::after,.yard-inline>summary::after{content:'+';font-size:1.4rem;font-weight:400;}.case-support[open]>summary::after,.yard-inline[open]>summary::after{content:'−';}.case-support{border:0;}.case-support>summary{background:transparent;}.career-more{font-size:.9rem!important;color:var(--blue);}.timeline>li:first-child .career-more{color:#e5fbab;}
@media(max-width:700px){.hero-actions a{flex:1 1 180px;}.capture-actions .action-button{flex:1 1 140px;}.digital-card>a{width:100%;}.contribution .unigis-capabilities article{padding:24px 18px;}.hero-actions{margin-top:26px;}}

.cv-downloads>a{padding:18px 20px!important;border:1px solid currentColor;border-radius:9px;margin-bottom:12px;background:#ffffff12;min-height:60px;}.cv-downloads>a:hover{background:#ffffff25;}

/* Personal signature and a visual app directory. */
.hero .personal-name{font-size:clamp(3.8rem,7.7vw,8.7rem);line-height:.94;letter-spacing:-.065em;margin:36px 0 26px;font-weight:800;max-width:12ch;}.personal-name>span{display:block;}.hero .personal-name .name-first{color:white;font-size:.7em;font-weight:500;letter-spacing:-.045em;}.hero .personal-name .name-emphasis{color:var(--lime);white-space:nowrap;}.hero .personal-name .name-last{color:white;}.hero-specialty{font-size:clamp(1rem,1.6vw,1.45rem);font-weight:600;line-height:1.5;letter-spacing:-.025em;margin:0 0 12px;}.hero-specialty>span{color:var(--lime);}.hero-location{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#c7c8cd;margin:0;}.hero-intro{margin-top:26px;font-weight:400;}
@media(max-width:700px){.hero .personal-name{font-size:clamp(3.3rem,14vw,5.5rem);margin:30px 0 22px;}.hero-specialty{font-size:1rem;max-width:28ch;}.hero-intro{font-size:1.05rem;}}
