/* Original Taltech layout, refined blue and amber palette. */
:root {
  color-scheme: light;
  --blue: #155eef; --blue-dark: #104ac2; --blue-light: #e8effd;
  --navy: #101e34; --slate: #283d59; --mid: #52637a;
  --text: #25374e; --text-muted: #63768e;
  --white: #f7f9fc; --off-white: #edf1f7; --light: #e4eaf3; --border: #d4ddea;
  --glass: rgba(247,249,252,.74); --glass-solid: rgba(247,249,252,.98);
  --accent-ink: #fff; --footer-bg: #101e34;
  --pointer-glow: rgba(21,94,239,.07);
  --amber: #f4a261; --amber-hover: #f8b57e;
  --amber-text: #8d450f; --amber-soft: #fff1e5; --amber-number: #b66b30;
  --shadow: 0 6px 24px rgba(16,30,52,.06);
  --shadow-lg: 0 16px 44px rgba(16,30,52,.1);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --blue: #80b2ff; --blue-dark: #a5c9ff; --blue-light: #203654;
  --navy: #edf4ff; --slate: #d1e0f5; --mid: #afc0d6;
  --text: #dfebfa; --text-muted: #9db2cd;
  --white: #111e30; --off-white: #0b1524; --light: #182a40; --border: #2b3f58;
  --glass: rgba(13,24,40,.74); --glass-solid: rgba(13,24,40,.98);
  --accent-ink: #091529; --pointer-glow: rgba(128,178,255,.1);
  --amber-text: #f4a261; --amber-soft: #33291f; --amber-number: #f4a261;
  --shadow: 0 6px 24px rgba(0,0,0,.18);
  --shadow-lg: 0 16px 44px rgba(0,0,0,.28);
}
/* Align visible section content, accounting for the section's own top padding. */
html { scroll-padding-top: 76px; }
section[id]:not(#home) { scroll-margin-top: -100px; }
body { transition: background-color .35s, color .35s; }
::selection { background: var(--blue); color: var(--accent-ink); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.navbar {
  background: var(--glass-solid);
  transition: background .35s, box-shadow .35s, border-color .35s;
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
}
.navbar.scrolled {
  background: var(--glass);
  backdrop-filter: blur(22px) saturate(155%);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  border-color: color-mix(in srgb, var(--border) 65%, transparent);
  box-shadow: var(--shadow);
}
.navbar-inner { height: 76px; transition: height .35s; gap: 20px; }
.navbar.scrolled .navbar-inner { height: 60px; }
.logo { transition: font-size .35s; white-space: nowrap; }
.navbar.scrolled .logo { font-size: 1.18rem; }
.nav-links { margin-left: auto; }
.nav-controls { order: 3; display: flex; align-items: center; gap: 10px; }
.theme-toggle {
  width: 42px; height: 42px; border: 1px solid var(--border);
  border-radius: 50%; color: var(--navy); background: var(--white);
  display: grid; place-items: center;
  transition: color .25s, background .25s, transform .3s, box-shadow .3s;
}
.theme-toggle:hover { transform: rotate(12deg); color: var(--blue); box-shadow: var(--shadow); }
.theme-toggle svg { width: 20px; height: 20px; grid-area: 1 / 1; }
.theme-sun { display: none; }
[data-theme="dark"] .theme-sun { display: block; }
[data-theme="dark"] .theme-moon { display: none; }
.btn-primary, .hero-badge, .project-tag, .process-icon, .team-avatar { color: var(--accent-ink); }
.btn-submit { color: var(--accent-ink); }
.nav-cta { color: var(--accent-ink) !important; }
.nav-cta:hover { color: var(--accent-ink) !important; }
.footer { background: var(--footer-bg); }
.footer-logo { color: #fff; }
.footer-logo .blink-dot { background: #fff; }
.footer-social a:hover { color: var(--accent-ink); }
/* Keep white-backed CAD renders on a neutral presentation surface in either theme. */
[data-theme="dark"] .hero-img-wrap,
[data-theme="dark"] .service-img-wrap { background: linear-gradient(135deg, #dce5f0, #f4f7fb); }
.contact-photo { aspect-ratio: auto; height: auto; background: transparent; }
.contact-profile-info { border-top: 0; }
.form-group input::placeholder, .form-group textarea::placeholder { color: var(--text-muted); }
.contact-profile { flex-shrink: 0; }
.reveal {
  opacity: .18; filter: blur(5px); transform: translateY(22px);
  transition: opacity .75s ease, filter .85s ease, transform .75s cubic-bezier(.2,.65,.25,1);
  transition-delay: var(--reveal-delay, 0ms);
}
.reveal.visible { opacity: 1; filter: blur(0); transform: translateY(0); }
.reveal:focus-within { opacity: 1; filter: none; transform: none; }
.hero-left > * { animation: hero-enter .85s both; }
.hero-left > :nth-child(2) { animation-delay: .08s; }
.hero-left > :nth-child(3) { animation-delay: .16s; }
.hero-left > :nth-child(4) { animation-delay: .24s; }
.hero-left > :nth-child(5) { animation-delay: .32s; }
@keyframes hero-enter { from { opacity: 0; transform: translateY(16px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
.pointer-card { position: relative; isolation: isolate; }
.pointer-card::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: radial-gradient(320px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), var(--pointer-glow), transparent 75%);
  pointer-events: none; opacity: 0; transition: opacity .35s; z-index: -1;
}
.pointer-card.pointer-inside::before { opacity: 1; }
.hero-img { transition: transform .5s cubic-bezier(.2,.65,.25,1); }
.hero-img-wrap.pointer-inside .hero-img { transform: perspective(800px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) scale(1.025); }
.viewport-blur {
  position: fixed; bottom: 0; left: 0; right: 0; height: clamp(80px, 14vh, 150px);
  pointer-events: none; z-index: 30;
}
.viewport-blur.is-at-bottom { display: none; }

.viewport-blur i { position: absolute; inset: 0; }
.viewport-blur i:nth-child(1) { backdrop-filter: blur(1px); -webkit-backdrop-filter: blur(1px); mask-image: linear-gradient(transparent, #000 35%); -webkit-mask-image: linear-gradient(transparent, #000 35%); }
.viewport-blur i:nth-child(2) { backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); mask-image: linear-gradient(transparent 20%, #000 55%); -webkit-mask-image: linear-gradient(transparent 20%, #000 55%); }
.viewport-blur i:nth-child(3) { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); mask-image: linear-gradient(transparent 45%, #000 80%); -webkit-mask-image: linear-gradient(transparent 45%, #000 80%); }
.viewport-blur i:nth-child(4) { backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); mask-image: linear-gradient(transparent 65%, #000); -webkit-mask-image: linear-gradient(transparent 65%, #000); }
.scroll-top {
  position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom));
  z-index: 1100; width: 56px; height: 56px; border-radius: 50%;
  color: var(--blue); background: var(--glass-solid); box-shadow: var(--shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(16px); pointer-events: none;
  transition: opacity .3s, transform .3s, visibility .3s, background .3s;
}
.scroll-top.is-visible { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.scroll-top:hover { transform: translateY(-4px); background: var(--white); }
.scroll-progress { position: absolute; inset: 0; width: 56px; height: 56px; transform: rotate(-90deg); fill: none; stroke-width: 2; }
.progress-track { stroke: var(--border); }
.progress-value { stroke: var(--blue); stroke-dasharray: 150.797; stroke-dashoffset: calc(150.797 * (1 - var(--scroll-progress, 0))); stroke-linecap: round; }
.scroll-arrow { position: absolute; width: 22px; height: 22px; top: 17px; left: 17px; }
@media (hover: hover) and (pointer: fine) {
  .pointer-card.visible:hover { transform: translateY(-5px); transition-delay: 0ms; }
  .btn-primary:not(.btn-submit):hover svg { transform: translateY(2px); }
  .btn-primary:not(.btn-submit) svg { transition: transform .25s; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 72px; }
  section[id]:not(#home) { scroll-margin-top: -70px; }
  .navbar-inner { height: 68px; padding: 0 18px; gap: 10px; }
  .navbar.scrolled .navbar-inner { height: 56px; }
  .nav-controls { margin-left: auto; }
  .logo { font-size: 1.15rem; }
  .navbar.scrolled .logo { font-size: 1.08rem; }
  .theme-toggle { width: 40px; height: 40px; }
  .hamburger { min-width: 40px; min-height: 40px; align-items: center; justify-content: center; }
  .nav-links { top: 100%; background: var(--glass-solid); }
  .scroll-top { right: 18px; bottom: max(18px, env(safe-area-inset-bottom)); }
  .viewport-blur { height: 85px; }
  .footer { padding-bottom: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; filter: none; transform: none; }
  .viewport-blur { display: none; }
  .hero-img-wrap.pointer-inside .hero-img, .pointer-card.visible:hover { transform: none; }
}


/* Amber has a defined role: small introductory details and the main form CTA.
   Navigation, icons, links, and card interactions consistently remain blue. */
.hero-tag { color: var(--amber-text); }
.hero-tag::before { background: var(--amber); }
.section-tag { color: var(--amber-text); background: var(--amber-soft); font-weight: 700; letter-spacing: .12em; padding: 5px 14px; }
.service-num { color: var(--amber-number); font-size: 3.25rem; opacity: .85; }
.section-title { letter-spacing: .015em; }
.service-title, .project-title { letter-spacing: .01em; }
.btn-submit { background: var(--amber); color: #101e34; box-shadow: 0 4px 16px rgba(244,162,97,.16); }
.btn-submit:hover { background: var(--amber-hover); color: #101e34; box-shadow: 0 8px 24px rgba(244,162,97,.24); }
.progress-value { stroke: var(--amber); }
.service-card, .project-card, .about-card, .team-card, .why-card, .contact-form { border-width: 1px; }
.hero-img-wrap { border-width: 1px; box-shadow: var(--shadow); }
.hero-badge { box-shadow: none; }
.project-tag { font-size: .7rem; letter-spacing: .04em; }
.service-img-wrap { padding: 36px; }
.project-body { padding: 26px; }
.project-desc { line-height: 1.75; }
.btn-primary { box-shadow: 0 4px 16px rgba(21,94,239,.15); }
.btn-submit { box-shadow: 0 4px 16px rgba(244,162,97,.16); }
.reveal.visible:hover { transition-delay: 0ms; }
/* v5: amber outlines on rectangular cards and bordered social links. */
.industry-card:hover,
.service-card:hover,
.project-card:hover,
.about-card:hover,
.team-card:hover,
.why-card:hover,
.social-link:hover { border-color: var(--amber); }
.why-card:hover::after { background: var(--amber); }
.process-icon {
  border: 2px solid transparent;
  padding: 14px;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.process-step:hover .process-icon { border-color: var(--amber); }
/* Both supplied images share one square frame: no layout jump on hover. */
.hero-comparison { display: grid; width: 100%; border-radius: var(--radius); }
.hero-comparison .hero-img { grid-area: 1 / 1; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; transition: opacity .7s ease, transform .5s cubic-bezier(.2,.65,.25,1); }
.hero-sketch { opacity: 1; }
.hero-render { opacity: 0; }
.hero-comparison.is-rendered .hero-render { opacity: 1; }
.hero-comparison.is-rendered .hero-sketch { opacity: 0; }
.hero-comparison-hint { position: absolute; top: 12px; left: 14px; padding: 5px 10px; border-radius: 100px; background: var(--glass-solid); color: var(--mid); font-size: .68rem; pointer-events: none; }
.hero-badge { pointer-events: none; }
.tap-hint { display: none; }
@media (hover: none), (pointer: coarse) {
  .hover-hint { display: none; }
  .tap-hint { display: inline; }
}
@media (max-width:1024px) {
  .hero-right { display: block; }
  .hero-img-wrap { max-width: 480px; margin-inline: auto; }
}
@media (max-width:768px) {
  .service-img-wrap { padding: 24px; }
  .project-body { padding: 24px; }
  .service-num { font-size: 2.6rem; }
}
