
/* Web design system — phase 2 */
:root {
  --ink: #061713; --ink-soft: var(--ink); --white: #fff;
  --paper: #fff; --mint: #00ba9b; --mint-display: #009b82; --mint-text: #007d6c; --teal: #007d6c;
  --muted: #65736e; --line: rgba(6,23,19,.14); --line-light: rgba(255,255,255,.2);
  --mint-wash: var(--paper); --header-glass: rgba(255,255,255,.96);
  --card-radius: 18px; --card-shadow: none;
  --content: min(88vw,1320px); --hero-content: min(88vw,1600px); --header-height: 88px;
  --type-display: clamp(80px,6vw,96px); --type-section: clamp(36px,3.3vw,48px);
  --type-subsection: 28px; --type-body: 17px; --type-label: 12px;
  --section-space: 112px; --tracking-display: -.055em; --tracking-body: -.025em;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 24px); }
body { margin:0; color:var(--ink); background:var(--white); font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:var(--type-body); font-weight:400; line-height:1.5; letter-spacing:var(--tracking-body); word-break:keep-all; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3,p,figure { margin:0; }
h2 { font-size:var(--type-section); font-weight:650; line-height:1.25; letter-spacing:-.045em; }
h3 { font-size:var(--type-subsection); font-weight:650; line-height:1.35; letter-spacing:-.035em; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--mint-text); outline-offset:5px; }
[hidden] { display:none !important; }
.skip-link { position:fixed; z-index:200; top:8px; left:12px; padding:10px 18px; background:var(--white); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.container { width:var(--content); margin-inline:auto; }
.section { width:100%; padding:var(--section-space) 0; }
.section-paper { background:var(--paper); }
.section-dark { color:var(--white); background:var(--ink); }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:48px; }
.section-head > p:not(.eyebrow) { max-width:440px; color:var(--muted); }
.section-head.centered { display:block; text-align:center; }
.section-head.centered .eyebrow { margin-bottom:10px; }
.eyebrow { margin:0 0 10px; color:var(--mint-text); font-size:12px; font-weight:750; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.section-dark .eyebrow { color:var(--white); opacity:.8; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:32px; min-height:56px; padding:15px 28px; border:0; border-radius:50px; font-size:15px; font-weight:650; line-height:1.5; transition:background .2s,transform .2s; }
.button:hover { transform:translateY(-2px); }
.button-dark { color:var(--white); background:var(--ink); }
.button-white { color:var(--ink); background:var(--white); }
.text-link { display:inline-flex; align-items:center; gap:24px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:15px; font-weight:650; line-height:1.5; }
.card { overflow:hidden; background:var(--white); border:0; border-radius:var(--card-radius); box-shadow:none; }
.site-header { position:fixed; top:0; left:0; z-index:100; display:flex; align-items:center; justify-content:space-between; width:100%; height:var(--header-height); padding:0 4vw; border-bottom:1px solid var(--line); background:transparent; box-shadow:none; color:var(--ink); }
.site-header.is-scrolled { height:72px; background:var(--header-glass); box-shadow:none; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.brand { flex:0 0 160px; display:flex; position:relative; z-index:102; width:160px; height:auto; padding:0; border-radius:0; background:none; overflow:visible; }
.brand img { width:160px; height:auto; }
.main-nav { display:flex; align-items:center; gap:32px; }
.main-nav > a { padding:26px 0; font-size:15px; font-weight:650; }
.header-actions { display:flex; align-items:center; justify-content:flex-end; gap:20px; min-width:170px; }
.language-switch { display:flex; flex-shrink:0; align-items:center; gap:5px; white-space:nowrap; }
.language-switch > span { color:var(--muted); font-size:11px; }
.language-option { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:44px; color:var(--muted); font-size:12px; font-weight:600; line-height:1; letter-spacing:.02em; }
.language-option:hover,.language-option[aria-current="page"] { color:var(--teal); }
.language-option[aria-current="page"] { font-weight:800; }
html[lang="en"] body { word-break:normal; letter-spacing:-.012em; }
html[lang="en"] .header-cta { white-space:nowrap; }
.header-cta { padding:10px 22px; border:0; border-radius:40px; background:var(--white); font-size:13px; font-weight:650; }
.menu-toggle { display:none; }
.hero-slider { position:relative; height:100svh; min-height:640px; overflow:hidden; background:var(--paper); }
.hero-slide { position:absolute; inset:0; display:flex; align-items:center; opacity:0; visibility:hidden; transition:opacity .8s ease,visibility .8s; background:var(--paper); }
.hero-slide.is-active { opacity:1; visibility:visible; z-index:1; }
.hero-copy { position:absolute; z-index:2; inset:auto 0 90px; width:var(--hero-content); margin-inline:auto; padding:0; pointer-events:auto; }
.hero-copy-inner { width:100%; max-width:1100px; }
.hero-copy h1 { display:flex; flex-direction:column; gap:0; font-size:var(--type-display); font-weight:550; line-height:1; letter-spacing:var(--tracking-display); }
.hero-copy h1 span { display:block; }
.hero-copy h1 .accent { color:var(--mint-display); }
.hero-copy .hero-description { max-width:440px; margin-top:28px; font-size:19px; line-height:1.5; }
.hero-copy .button { margin-top:32px; }
.hero-brand { background:var(--paper); }
.hero-brand .eyebrow { color:var(--teal); }
.hero-brand .hero-copy { inset:auto; top:calc(var(--header-height) + 10svh); left:6vw; width:35vw; margin:0; }
.brand-visual { position:absolute; inset:auto 0 0 auto; width:64%; height:auto; aspect-ratio:1266 / 821; max-height:calc(100% - var(--header-height)); }
.brand-photo { width:100%; height:100%; object-fit:contain; object-position:right bottom; }
.hero-product { position:absolute; right:7vw; top:calc(var(--header-height) + 32px); bottom:110px; width:45%; display:flex; align-items:center; justify-content:center; }
.hero-product img { width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.hero-invera .hero-product img { max-width:396px; }
.hero-invera { background:var(--paper); }
.hero-product-logo { width:min(360px,100%); height:auto; margin-bottom:30px; }
.hero-title-small { font-size:44px; max-width:440px; line-height:1.25; font-weight:650; letter-spacing:-.045em; }
.hero-controls { position:absolute; z-index:5; bottom:32px; right:6vw; display:flex; align-items:center; gap:18px; padding:0; color:var(--ink); background:none; border:0; border-radius:0; }
.hero-count { font-size:12px; font-weight:650; white-space:nowrap; }
.hero-dots { display:flex; gap:7px; }
.hero-dot { position:relative; width:38px; height:24px; padding:0; border:0; background:none; }
.hero-dot::before { content:""; position:absolute; inset:11px 0 10px; border-radius:3px; background:var(--line); }
.hero-dot[aria-current="true"]::before { background:var(--mint-text); }
.hero-arrow,.hero-pause { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:0; background:none; color:inherit; font-size:19px; }
.hero-pause { font-size:13px; }
.product-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.product-card { padding:36px; background:var(--paper); }
.product-card-top { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.product-card-logo { width:180px; height:auto; }
.category-label { color:var(--mint-text); font-size:12px; font-weight:700; letter-spacing:.06em; }
.product-stage { display:flex; align-items:flex-end; justify-content:center; height:370px; margin:25px 0; }
.product-stage img { width:100%; height:350px; object-fit:contain; object-position:center bottom; transition:transform .5s ease; }
.product-card:hover .product-stage img { transform:scale(1.03); }
.product-card p { min-height:60px; max-width:510px; color:var(--muted); font-size:17px; }
.product-card .text-link { margin-top:24px; }
.needle-circles { display:flex; justify-content:center; margin:52px auto 40px; }
.needle-circle { display:flex; flex:0 0 280px; flex-direction:column; justify-content:center; align-items:center; width:280px; height:280px; border:1px solid var(--line); border-radius:50%; background:var(--white); text-align:center; }
.needle-circle + .needle-circle { margin-left:-16px; }
.needle-circle > span { color:var(--mint-text); font-size:12px; margin-bottom:10px; }
.needle-circle h3 { font-size:28px; line-height:1.15; }
.needle-circle p { margin-top:18px; color:var(--muted); font-size:17px; line-height:1.5; }
.needle-summary { text-align:center; max-width:650px; margin:auto; }
.tech-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tech-card { display:flex; flex-direction:column; color:var(--ink); padding:20px; }
.tech-card > img { width:100%; aspect-ratio:1.6; object-fit:cover; border-radius:10px; margin-bottom:28px; }
.tech-card .eyebrow { color:var(--mint-text); margin-bottom:10px; font-size:var(--type-label); opacity:1; }
.tech-card h3 { font-size:28px; margin-bottom:18px; }
.tech-card p:not(.eyebrow) { flex:none; color:var(--muted); font-size:17px; min-height:0; }
.result-badge { display:inline-flex; margin:12px 0 0; padding:6px 12px; border-radius:30px; color:var(--teal); background:var(--mint-wash); font-size:12px; font-weight:650; }
.tech-card .text-link { display:flex; width:max-content; font-size:13px; }
.tech-card .result-badge { align-self:flex-start; }
.trust-section { padding:60px 0; border-bottom:1px solid var(--line); }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.trust-grid > div { border-right:1px solid var(--line); padding-right:20px; }
.trust-grid > div:last-child { border-right:0; }
.trust-grid strong { display:block; font-size:22px; font-weight:650; line-height:1.4; }
.trust-grid p { margin-top:12px; color:var(--muted); font-size:13px; }
.release-note { display:flex; justify-content:flex-end; margin-top:26px; }
.release-note span { border:1px solid var(--line); border-radius:30px; padding:6px 14px; font-size:12px; color:var(--muted); }
.contact-band { --contact-ink:#173840; --contact-muted:#4e6d77; padding:90px 0; color:var(--contact-ink); background:#e1f7ff; }
.contact-grid { display:grid; grid-template-columns:1.35fr 1fr; align-items:end; gap:60px; }
.contact-band .eyebrow { color:#244e63; }
.contact-band .button { margin-top:32px; }
.contact-list { display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
.contact-list a,.contact-list p { display:flex; gap:26px; font-size:17px; line-height:1.5; }
.contact-list span { min-width:50px; font-size:12px; font-weight:650; padding-top:5px; }
.site-footer { width:100%; position:relative; display:grid; grid-template-columns:190px 1fr auto; align-items:start; gap:48px; padding:54px 6vw; color:var(--white); background:var(--ink); }
.footer-brand { display:inline-flex; align-items:center; width:170px; height:auto; padding:12px; background:var(--white); border-radius:8px; filter:none; }
.footer-brand img { width:146px; height:auto; }
 .footer-info { color:var(--white); opacity:.78; font-size:13px; line-height:1.5; }
.footer-info p + p { margin-top:4px; }
.footer-info a { display:inline-block; margin-top:12px; text-decoration:underline; text-underline-offset:5px; }
.footer-info .copyright { font-size:12px; margin-top:20px; }
.back-to-top { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:0; border-radius:50%; background:var(--paper); color:var(--ink); font-size:22px; }
.js .reveal { opacity:0; transform:translateY(20px); }
.reveal { transition:opacity .6s,transform .6s; }
.reveal.is-visible { opacity:1; transform:none; }
@media(max-width:1180px) {
  :root { --type-display:64px; }
  .main-nav { gap:20px; }
  .hero-brand .hero-copy { position:absolute; inset:auto; top:calc(var(--header-height) + 26px); left:6vw; width:88vw; padding-top:0; margin:0; }
  .hero-brand .hero-copy-inner { width:42%; max-width:420px; }
  .hero-brand .hero-copy h1 { flex-direction:column; gap:0; }
  .hero-brand .hero-description { margin-top:22px; }
  .hero-brand .button { margin-top:24px; }
  .brand-visual { inset:auto 0 0 auto; width:60%; height:auto; max-height:65svh; }
  .brand-photo { object-fit:contain; object-position:right bottom; }
  .hero-title-small { font-size:38px; }
  .tech-cards { gap:16px; }
  .tech-card h3 { font-size:22px; }
  .trust-grid strong { font-size:19px; }
}
@media(max-width:900px) {
  :root { --header-height:72px; --content:calc(100% - 40px); --hero-content:calc(100% - 40px); --section-space:76px; }
  .site-header,.site-header.is-scrolled { height:72px; padding:0 20px; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .brand,.brand img { width:134px; flex-basis:134px; }
  .header-actions { min-width:auto; gap:18px; }
  .header-cta { padding:8px 15px; font-size:12px; }
  .brand-photo { object-position:center bottom; }
  .menu-toggle { display:flex; position:relative; z-index:102; flex-direction:column; justify-content:center; gap:7px; width:32px; height:40px; border:0; background:none; }
  .menu-toggle span { display:block; width:24px; height:1px; background:var(--ink); transition:transform .25s; }
  .menu-open .menu-toggle span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-open .menu-toggle span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .js .main-nav { position:fixed; inset:0; width:100%; height:100dvh; display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:0; padding:100px 32px 48px; background:var(--paper); opacity:0; visibility:hidden; transform:none; overflow:auto; }
  .menu-open .main-nav { opacity:1; visibility:visible; }
  .main-nav > a { display:block; width:100%; padding:15px 0; font-size:30px; line-height:1.35; }
  .hero-brand .hero-copy { left:20px; width:calc(100% - 40px); top:calc(var(--header-height) + 30px); }
  .hero-brand .hero-copy-inner { width:100%; }
  .hero-copy .hero-description { font-size:17px; }
  .hero-controls { right:20px; bottom:20px; gap:12px; padding:0; }
  .brand-visual { inset:auto 0 96px auto; width:78%; height:auto; max-height:none; }
  .hero-product { right:3vw; width:47%; }
  .hero-slide:not(.hero-brand) .hero-copy-inner { width:45%; }
  .hero-title-small { font-size:32px; }
  .hero-product-logo { margin-bottom:24px; }
  .section-head { align-items:flex-start; flex-direction:column; gap:20px; margin-bottom:36px; }
  .tech-cards { grid-template-columns:1fr; }
  .tech-card { display:grid; grid-template-columns:1fr 1fr; gap:8px 28px; padding:24px; }
  .tech-card > img { grid-column:1; grid-row:1 / 7; height:100%; margin:0; align-self:center; aspect-ratio:auto; object-fit:contain; background:var(--white); }
  .tech-card > :not(img) { grid-column:2; }
  .tech-card p { min-height:0; }
  .tech-card h3 { margin-bottom:10px; }
  .tech-card .eyebrow { margin:0; }
  .result-badge { width:max-content; max-width:100%; margin:8px 0 0; }
  .trust-grid { grid-template-columns:1fr 1fr; gap:32px; }
  .trust-grid > div:nth-child(2) { border-right:0; }
  .needle-circle { width:225px; height:225px; flex-basis:225px; }
  .needle-circle h3 { font-size:25px; }
  .needle-circle p { font-size:13px; }
  .contact-grid { grid-template-columns:1fr; gap:48px; }
  .site-footer { grid-template-columns:1fr auto; gap:30px; padding:40px 20px; }
  .footer-info { grid-column:1 / -1; grid-row:2; }
  .back-to-top { grid-column:2; grid-row:1; }
}
@media(max-width:600px) {
  :root { --type-display:64px; --type-section:32px; --section-space:64px; }
  .brand,.brand img { width:122px; flex-basis:122px; }
  .header-actions { min-width:auto; gap:8px; }
  .language-switch { gap:2px; }
  .hero-brand .hero-copy { top:calc(var(--header-height) + 32px); }
  .hero-copy .eyebrow { font-size:12px; margin-bottom:10px; }

  .hero-copy .hero-description { max-width:300px; margin-top:22px; }
  .hero-copy .button { margin-top:24px; min-height:48px; padding:12px 24px; font-size:14px; }
  .hero-slide:not(.hero-brand) .hero-copy { position:absolute; inset:auto; top:calc(var(--header-height) + 30px); left:20px; width:calc(100% - 40px); padding:0; }
  .hero-slide:not(.hero-brand) .hero-copy-inner { width:100%; }
  .hero-product-logo { width:220px; margin-bottom:16px; }
  .hero-title-small { font-size:28px; max-width:340px; }
  .brand-visual { width:100%; max-height:calc(100% - var(--header-height) - 532px); }
  .brand-photo { object-position:center bottom; }
  .hero-product { top:auto; bottom:96px; right:12%; width:76%; height:38%; }
  .hero-slide:not(.hero-brand) .hero-description { display:none; }
  .hero-dots { gap:5px; }
  .hero-dot { width:25px; }
  .hero-controls { gap:9px; }
  .product-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:16px; gap:16px; }
  .product-card { flex:0 0 calc(100% - 22px); scroll-snap-align:start; padding:26px; }
  .product-card-logo { width:150px; }
  .product-card-top { gap:16px; }
  .product-stage { height:300px; margin:20px 0; }
  .product-stage img { height:280px; }
  .product-card p { min-height:0; }
  .needle-circles { flex-direction:column; align-items:center; margin:36px 0; }
  .needle-circle { width:250px; height:250px; flex-basis:250px; }
  .needle-circle + .needle-circle { margin-left:0; margin-top:-20px; }
  .needle-circle h3 { font-size:28px; }
  .tech-card { display:block; padding:22px; }
  .tech-card > img { aspect-ratio:1.6; height:auto; object-fit:cover; margin-bottom:24px; }
  .tech-card h3 { font-size:24px; margin-top:10px; }
  .tech-card p { margin-top:15px; }
  .tech-card .text-link { margin-top:10px; }
  .trust-grid { gap:28px 16px; }
  .trust-grid strong { font-size:18px; }
  .trust-grid > div { padding-right:10px; }
  .contact-band { padding:64px 0; }
  .contact-list a,.contact-list p { font-size:16px; gap:18px; }
}
@media(max-width:360px),(max-height:720px) and (max-width:600px) {
  :root { --type-display:48px; }
  .hero-slider { min-height:740px; }
  .hero-brand .hero-copy { top:calc(var(--header-height) + 24px); }
  .hero-copy .eyebrow { margin-bottom:10px; }
  .hero-copy .hero-description { margin-top:18px; }
  .hero-product { height:30%; bottom:96px; }
  .hero-title-small { font-size:25px; }
  .brand-visual { max-height:calc(100% - var(--header-height) - 468px); }
  .hero-product-logo { width:190px; }
  .hero-controls { gap:8px; }
}
@media(min-width:601px) and (max-width:900px) {
  .hero-brand .hero-copy { width:42%; }
  .brand-visual { width:54%; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal,.js .reveal { opacity:1; transform:none; }
}

/* Page navigation and shared page layouts */
.nav-group { position:static; }
.nav-parent { display:flex; align-items:center; }
.nav-parent > a { padding:26px 0; font-size:15px; font-weight:650; }
.main-nav > a[aria-current="page"],.nav-parent > a[aria-current="page"],.nav-group.is-current .nav-parent > a { color:var(--mint-text); }
.submenu-toggle { display:none; }
.nav-submenu { position:absolute; top:100%; left:0; width:100%; display:flex; justify-content:center; align-items:center; gap:65px; padding:30px 5vw; border-bottom:1px solid var(--line); background:var(--white); box-shadow:none; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .2s,transform .2s,visibility .2s; }
.nav-group:hover .nav-submenu,.nav-group:focus-within .nav-submenu { opacity:1; visibility:visible; transform:none; }
.nav-item { display:flex; align-items:center; gap:14px; padding:10px 0; font-size:17px; }
.nav-item span { color:var(--muted); font-size:12px; letter-spacing:.04em; }
.nav-item strong { font-weight:650; }
a.nav-item:hover,a.nav-item[aria-current="page"] { color:var(--mint-text); }
.nav-item.is-disabled { opacity:.48; cursor:default; pointer-events:none; font-size:17px; }
.page-intro { background:var(--paper); padding:calc(var(--header-height) + 76px) 0 76px; }
.page-intro h1 { max-width:1100px; font-size:var(--type-display); font-weight:600; line-height:1.15; letter-spacing:-.05em; }
.page-intro-copy { margin-top:26px; max-width:650px; color:var(--muted); font-size:18px; }
.page-tabs { position:sticky; z-index:30; top:72px; border-bottom:1px solid var(--line); background:var(--header-glass); backdrop-filter:blur(12px); }
.page-tabs > div { display:flex; gap:40px; overflow:auto; scrollbar-width:thin; }
.page-tabs a { flex-shrink:0; display:block; padding:19px 0; font-size:14px; font-weight:650; }
.page-tabs a:hover { color:var(--mint-text); }
.page-tabs ~ section[id] { scroll-margin-top:64px; }
.reading-copy { max-width:820px; }
.reading-copy p + p { margin-top:22px; }
#about .reading-copy { margin-top:36px; }
.split-copy { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; }
.technical-row { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:72px; padding:48px 0; }
.technical-row + .technical-row { border-top:1px solid var(--line); }
.technical-visual { padding:24px; background:var(--white); border:0; border-radius:var(--card-radius); box-shadow:none; }
.technical-visual img { width:100%; max-height:390px; object-fit:contain; }
.technical-copy h3 { margin-bottom:24px; }
.technical-copy > p:not(.eyebrow) { color:var(--muted); }
.technical-copy .text-link { display:flex; width:max-content; margin-top:12px; }
.technical-row:nth-child(even) .technical-visual { grid-column:2; grid-row:1; }
.technical-row:nth-child(even) .technical-copy { grid-column:1; grid-row:1; }
.step-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.step-card { padding:20px; }
.step-card img { width:100%; margin:12px 0 24px; border-radius:9px; }
.step-card h3 { font-size:24px; margin-bottom:16px; }
.step-card p { color:var(--muted); font-size:17px; }
@media(max-width:1180px) {
  .main-nav { gap:20px; }
  .nav-parent > a,.main-nav > a { font-size:14px; }
  .header-actions { min-width:140px; }
  .technical-row { gap:42px; }
}
@media(max-width:900px) {
  .header-actions { min-width:0; flex-shrink:0; }
  .js .main-nav { padding:112px 28px 48px; justify-content:flex-start; }
  .nav-parent { justify-content:space-between; gap:20px; }
  .nav-parent > a,.main-nav > a { font-size:28px; line-height:1.4; padding:18px 0; }
  .submenu-toggle { display:block; flex:0 0 44px; width:44px; height:44px; border:0; border-radius:50%; background:var(--white); font-size:21px; line-height:1; }
  .submenu-toggle[aria-expanded="true"] { transform:rotate(180deg); }
  .nav-submenu,.nav-group:hover .nav-submenu,.nav-group:focus-within .nav-submenu { position:static; display:none; width:100%; padding:0 0 14px 8px; border:0; background:none; box-shadow:none; opacity:1; visibility:visible; transform:none; }
  .nav-group.is-expanded .nav-submenu { display:block; }
  .nav-item { gap:20px; padding:13px 0; font-size:18px; }
  .nav-item span { width:82px; font-size:12px; }
  .nav-item.is-disabled { font-size:18px; padding:15px 0; }
  .page-intro { padding:calc(var(--header-height) + 54px) 0 54px; }
  .page-intro h1 { font-size:52px; }
  .page-tabs > div { gap:26px; }
  .split-copy { grid-template-columns:1fr; gap:30px; }
  .technical-row { gap:30px; }
  .technical-visual { padding:15px; }
  .step-grid { grid-template-columns:1fr 1fr; }
  html:not(.js) .site-header { position:relative; flex-wrap:wrap; height:auto; padding:20px; gap:20px; background:var(--white); }
  html:not(.js) .main-nav { display:block; width:100%; order:3; }
  html:not(.js) .nav-submenu { display:block; }
  html:not(.js) .submenu-toggle,html:not(.js) .menu-toggle { display:none; }
}
@media(max-width:360px) {
  .header-cta { display:none; }
}
@media(max-width:600px) {
  .page-intro { padding:calc(var(--header-height) + 40px) 0 46px; }
  .page-intro h1 { font-size:40px; }
  .page-intro-copy { font-size:17px; margin-top:22px; }
  .page-tabs a { font-size:13px; }
  .technical-row { grid-template-columns:1fr; gap:28px; padding:36px 0; }
  .technical-row:nth-child(even) .technical-visual,.technical-row:nth-child(even) .technical-copy { grid-column:auto; grid-row:auto; }
  .technical-copy h3 { font-size:26px; }
  .step-grid { grid-template-columns:1fr; }
  .step-card { padding:24px; }
  .step-card h3 { font-size:25px; }
}

/* Company evidence and policy */
.block-title { margin:64px 0 28px; }
.company-info { margin:32px 0 0; border-top:1px solid var(--line); }
.company-info > div { display:grid; grid-template-columns:180px 1fr; gap:32px; padding:19px 0; border-bottom:1px solid var(--line); }
.company-info dt { color:var(--muted); }
.company-info dd { margin:0; font-weight:500; }
.timeline-year { display:grid; grid-template-columns:200px 1fr; gap:40px; padding:40px 0; }
.timeline-year:first-child { padding-top:0; }
.timeline-year + .timeline-year { border-top:1px solid var(--line); }
.timeline-year > h3 { color:var(--mint-text); font-size:44px; line-height:1.15; }
.timeline-year ol { margin:0; padding:0 0 0 28px; border-left:1px solid var(--line); list-style:none; }
.timeline-year li { display:grid; position:relative; grid-template-columns:44px 1fr; gap:24px; padding:0 0 24px; }
.timeline-year li:last-child { padding-bottom:0; }
.timeline-year li::before { content:""; position:absolute; top:12px; left:-32px; width:7px; height:7px; border-radius:50%; background:var(--mint-text); }
.timeline-year time { color:var(--muted); font-size:14px; font-weight:650; padding-top:3px; }
.timeline-year small { display:block; color:var(--muted); font-size:12px; margin-top:5px; }
.iso-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; gap:24px; }
.document-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:1fr; gap:20px; }
.document-card { display:flex; flex-direction:column; padding:22px; text-align:left; color:var(--ink); font:inherit; width:100%; cursor:pointer; transition:transform .25s; }
button.document-card:hover { transform:translateY(-3px); }
.document-thumb { display:flex; justify-content:center; align-items:center; height:260px; margin-bottom:22px; width:100%; }
.document-thumb img { width:100%; height:100%; object-fit:contain; }
.document-caption { display:flex; flex-direction:column; flex:1; }
.document-caption h3 { font-size:17px; line-height:1.5; letter-spacing:-.025em; }
.document-caption p { color:var(--muted); font-size:12px; margin-top:8px; overflow-wrap:anywhere; }
.document-open { margin-top:auto; padding-top:18px; color:var(--mint-text); font-size:14px; font-weight:650; }
.placeholder-card { cursor:default; }
.document-summary { cursor:default; min-height:150px; }
.document-summary .document-caption { justify-content:flex-start; }
.document-badge { display:flex; align-items:center; justify-content:center; height:260px; margin-bottom:22px; text-align:center; }
.certification-seal { position:relative; display:flex; align-items:center; justify-content:center; width:min(100%,220px); aspect-ratio:1; border:1px solid var(--mint-display); border-radius:50%; background:radial-gradient(circle,var(--white) 58%,var(--mint-wash)); color:var(--teal); }
.certification-seal::before { content:""; position:absolute; inset:8px; border:1px solid rgba(0,155,130,.24); border-radius:50%; }
.certification-seal span { max-width:78%; font-size:24px; font-weight:650; line-height:1.4; letter-spacing:-.025em; }
.iso-grid .certification-seal span { font-size:28px; }
.iso-grid .document-card { padding:28px; }
.iso-grid .document-caption h3 { font-size:23px; }
.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.location-card { padding:30px; }
.location-card > p:not(.eyebrow) { margin-top:24px; color:var(--muted); }
.map-links { display:flex; flex-direction:column; align-items:flex-start; gap:12px; margin-top:28px; }
.map-links a { padding-bottom:5px; border-bottom:1px solid var(--line); font-size:13px; font-weight:600; }
.footer-info p a { display:inline; margin:0; text-decoration:none; }
.policy-copy { width:min(var(--content),900px); }
.policy-copy > p { margin-bottom:48px; }
.policy-copy section { margin-bottom:42px; }
.policy-copy h2 { font-size:28px; margin-bottom:20px; }
.policy-copy h3 { font-size:20px; margin:22px 0 14px; }
.policy-copy p { color:var(--muted); }
.policy-copy ul { margin:16px 0 0; padding-left:23px; color:var(--muted); }
.policy-copy li { margin-bottom:8px; }
.policy-copy a { text-decoration:underline; overflow-wrap:anywhere; }
.lightbox { width:min(1000px,calc(100% - 40px)); height:calc(100dvh - 40px); max-height:none; padding:28px; border:0; border-radius:var(--card-radius); background:var(--white); color:var(--ink); }
.lightbox::backdrop { background:rgba(6,23,19,.8); }
.lightbox-close { position:absolute; top:12px; right:16px; width:44px; height:44px; border:0; border-radius:50%; background:var(--white); color:var(--ink); font-size:27px; }
.lightbox > p { padding-right:56px; font-size:17px; font-weight:600; margin-bottom:20px; }
[data-lightbox-content] { height:calc(100% - 55px); display:flex; align-items:center; justify-content:center; overflow:hidden; }
/* 스크롤 없이 화면 안에 다 보이게: 가로·세로 중 먼저 닿는 쪽에 맞춘다 */
[data-lightbox-content] img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
body.lightbox-open { overflow:hidden; }
@media(max-width:1024px) { .document-grid { grid-template-columns:repeat(3,1fr); } .location-card { padding:24px; } }
@media(max-width:900px) {
  .timeline-year { grid-template-columns:120px 1fr; gap:24px; }
  .document-grid { grid-template-columns:repeat(2,1fr); }
  .iso-grid { gap:16px; }
  .iso-grid .document-card { padding:20px; }
  .iso-grid .document-thumb,.iso-grid .document-badge { height:210px; }
  .iso-grid .certification-seal span { font-size:24px; }
  .iso-grid .document-caption h3 { font-size:20px; }
  .location-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .company-info > div { grid-template-columns:1fr; gap:6px; padding:17px 0; }
  .company-info dt { font-size:13px; }
  .timeline-year { grid-template-columns:1fr; gap:28px; padding:36px 0; }
  .timeline-year > h3 { font-size:36px; }
  .timeline-year ol { padding-left:24px; }
  .timeline-year li { grid-template-columns:32px 1fr; gap:16px; }
  .timeline-year li::before { left:-28px; }
  .document-grid { gap:14px; }
  .document-card { padding:16px; }
  .document-thumb,.document-badge { height:170px; margin-bottom:16px; }
  .document-caption h3 { font-size:16px; }
  .certification-seal span { font-size:17px; }
  .iso-grid { grid-template-columns:1fr; }
  .iso-grid .document-card { padding:24px; }
  .iso-grid .document-thumb,.iso-grid .document-badge { height:270px; }
  .iso-grid .certification-seal span { font-size:28px; }
  .block-title { margin-top:48px; font-size:25px; }
  .lightbox { width:calc(100% - 24px); height:calc(100dvh - 24px); padding:20px; }
  .policy-copy h2 { font-size:25px; }
}

/* Product pages and contact */
.product-banner { padding:calc(var(--header-height) + 50px) 0 70px; background:var(--paper); }
.banner-grid { display:grid; grid-template-columns:1fr 1.1fr; align-items:center; gap:70px; }
.banner-copy { max-width:560px; }
.banner-logo { width:330px; height:auto; margin:22px 0 28px; }
.banner-statement { font-size:38px; font-weight:600; line-height:1.35; letter-spacing:-.045em; }
.banner-description { margin-top:25px; color:var(--muted); }
.banner-copy .text-link { margin-top:32px; }
.banner-visual { position:relative; height:560px; display:flex; align-items:center; justify-content:center; }
.banner-visual > img { width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.invera-page .product-banner { background:var(--white); }
.banner-visual-invera > .banner-model { position:absolute; z-index:0; right:0; top:0; width:63%; height:auto; max-height:90%; object-fit:contain; object-position:right top; -webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent); mask-image:linear-gradient(to bottom,#000 70%,transparent); }
.banner-visual-invera > .banner-device { position:absolute; z-index:2; left:0; bottom:0; width:72%; height:68%; object-fit:contain; object-position:left bottom; }
.product-introduction { max-width:930px; color:var(--muted); margin-bottom:42px; }
.overview-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.overview-card { padding:28px; }
.overview-card h3 { font-size:28px; margin-bottom:20px; }
.overview-card p { color:var(--muted); font-size:17px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.gallery-item { padding:24px; }
.gallery-stage { display:flex; align-items:flex-end; justify-content:center; height:340px; padding:16px 12px 12px; background:var(--paper); border-radius:10px; }
.gallery-stage img { width:100%; max-width:var(--native-width,100%); height:100%; object-fit:contain; object-position:center bottom; }
/* Transparent product cutouts: no additional floor or cast shadows. */
.product-shadow { isolation:isolate; }
.product-stage,.gallery-stage { position:relative; }
.product-shadow::after { content:none; }
.product-shadow > img { position:relative; z-index:2; }
.gallery-item figcaption { margin-top:20px; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:14px; font-weight:600; }
.component-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.component-item { padding:30px; }
.component-item img { width:100%; height:300px; object-fit:contain; margin-bottom:26px; }
.component-item h3 { font-size:28px; margin-bottom:14px; }
.component-item p { font-size:17px; color:var(--muted); }
.specification-table { margin:0; border-top:1px solid var(--line); }
.specification-table > div { display:grid; grid-template-columns:260px 1fr; gap:40px; padding:21px 24px; border-bottom:1px solid var(--line); }
.specification-table dt { color:var(--muted); }
.specification-table dd { margin:0; font-weight:500; }
.inquiry-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.inquiry-card { padding:32px; }
.inquiry-card h3 { font-size:25px; margin-bottom:24px; }
.inquiry-card > a,.inquiry-card > p:not(.eyebrow) { font-size:19px; font-weight:500; overflow-wrap:anywhere; }
.inquiry-action { margin-top:40px; }
.inquiry-form { padding:44px; }
.inquiry-purposes { margin:0; padding:0; border:0; min-width:0; }
.inquiry-purposes legend,.form-heading { display:flex; align-items:center; gap:12px; padding:0; font-size:24px; font-weight:650; line-height:1.4; }
.form-step { display:inline-flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; height:32px; border-radius:50%; background:var(--mint-wash); color:var(--mint-text); font-size:12px; letter-spacing:0; }
.required-label,.optional-label { margin-left:10px; color:var(--mint-text); font-size:11px; font-weight:500; white-space:nowrap; }
.optional-label { color:var(--muted); }
.field-help { margin-top:12px; color:var(--muted); font-size:13px; line-height:1.5; }
.purpose-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:24px; }
.purpose-option { display:flex; align-items:flex-start; gap:12px; padding:24px 20px; border:0; border-radius:12px; background:var(--paper); cursor:pointer; transition:border-color .2s,background .2s; }
.purpose-option:hover { background:var(--paper); }
.purpose-option:has(input:checked) { background:var(--ink); color:var(--white); }
.purpose-option:has(input:checked) small { color:rgba(255,255,255,.7); }
.purpose-option:focus-within { outline:2px solid var(--mint-text); outline-offset:3px; }
.purpose-option input { flex:0 0 20px; width:20px; height:20px; margin:3px 0 0; accent-color:var(--mint-text); cursor:pointer; }
.purpose-option strong { display:block; font-size:17px; font-weight:600; line-height:1.5; }
.purpose-option small { display:block; margin-top:8px; color:var(--muted); font-size:12px; line-height:1.5; }
.field-error { margin-top:14px; color:#a23625; font-size:13px; }
.inquiry-details { margin-top:40px; padding-top:36px; border-top:1px solid var(--line); }
.inquiry-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:28px; }
.form-field { display:flex; flex-direction:column; gap:10px; min-width:0; font-size:14px; font-weight:500; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-width:0; min-height:52px; padding:14px 16px; border:1px solid #c9cecb; border-radius:8px; background:#fff; color:var(--ink); font:inherit; font-size:16px; font-weight:400; line-height:1.5; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { outline:2px solid var(--mint); outline-offset:2px; }
.form-field textarea { resize:vertical; min-height:180px; }
.field-full { grid-column:1 / -1; }
.inquiry-submit { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:28px; }
.inquiry-submit > div { max-width:620px; }
.inquiry-submit .button { flex-shrink:0; }
.inquiry-delivery-note { font-size:14px; font-weight:500; }
.inquiry-submit .field-help { margin-top:6px; }
.inquiry-form button:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.inquiry-direct { margin-top:40px; }
.inquiry-draft { margin-top:32px; padding:28px; border:0; border-radius:12px; background:var(--paper); }
.draft-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.draft-heading h3 { font-size:20px; }
.draft-heading button { border:0; border-radius:0; background:none; color:var(--mint-text); font-size:13px; }
.inquiry-draft pre { margin:24px 0; white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:14px; }
.inquiry-draft > a { margin-top:16px; font-size:13px; }
.inquiry-nojs { margin-top:20px; font-size:14px; }
.inquiry-nojs a { text-decoration:underline; }
@media(max-width:1180px) { .purpose-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .inquiry-form { padding:32px; } .inquiry-submit { flex-direction:column; align-items:flex-start; } }
@media(max-width:600px) {
  .inquiry-form { padding:24px; }
  .inquiry-purposes legend,.form-heading { font-size:22px; gap:10px; }
  .purpose-options { grid-template-columns:1fr; gap:12px; }
  .purpose-option { padding:20px; }
  .purpose-option small { margin-top:4px; }
  .inquiry-fields { grid-template-columns:1fr; gap:22px; }
  .inquiry-details { margin-top:32px; padding-top:28px; }
  .inquiry-submit .button { width:100%; }
  .inquiry-draft { padding:20px; }
  .draft-heading { align-items:flex-start; }
}
@media(max-width:1180px) {
  .banner-grid { gap:35px; }
  .banner-visual { height:480px; }
  .banner-statement { font-size:34px; }
  .overview-grid { grid-template-columns:1fr 1fr; }
  .gallery-stage { height:290px; }
  .inquiry-card { padding:25px; }
}
@media(max-width:900px) {
  .banner-grid { grid-template-columns:1fr 1fr; gap:24px; }
  .banner-logo { width:260px; }
  .banner-statement { font-size:30px; }
  .banner-visual { height:400px; }
  .gallery-grid { grid-template-columns:1fr 1fr; gap:18px; }
  .component-item { padding:24px; }
  .component-item img { height:240px; }
  .specification-table > div { grid-template-columns:170px 1fr; gap:28px; padding-inline:0; }
  .inquiry-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .product-banner { padding:calc(var(--header-height) + 40px) 0 45px; }
  .banner-grid { grid-template-columns:1fr; gap:36px; }
  .banner-logo { width:250px; margin-bottom:22px; }
  .banner-statement { font-size:28px; }
  .banner-visual { height:390px; }
  .banner-visual-invera { height:420px; }
  .banner-visual-invera > .banner-model { width:65%; height:auto; max-height:88%; }
  .banner-visual-invera > .banner-device { width:75%; height:66%; }
  .overview-grid { grid-template-columns:1fr; gap:16px; }
  .overview-card { padding:26px; }
  .gallery-grid { grid-template-columns:1fr 1fr; gap:14px; }
  .gallery-item { padding:15px; }
  .gallery-stage { height:225px; padding:12px 8px; }
  .gallery-item figcaption { font-size:12px; }
  .component-grid { grid-template-columns:1fr; }
  .component-item img { height:260px; }
  .component-item h3 { font-size:26px; }
  .specification-table > div { grid-template-columns:1fr; gap:8px; padding:18px 0; }
  .specification-table dt { font-size:13px; }
}

/* Brochure illustrations retain their original proportions. */
.source-figure { margin-bottom:28px; }
.source-figure > img { width:100%; aspect-ratio:1.6; object-fit:contain; border-radius:10px; background:var(--white); }
.footer-links { display:flex; flex-wrap:wrap; gap:8px 24px; }
.activity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.activity-cover { display:block; overflow:hidden; background:var(--paper); }
.activity-cover img { width:100%; aspect-ratio:1.5; object-fit:cover; transition:transform .3s; }
.activity-card:hover .activity-cover img { transform:scale(1.03); }
.activity-copy { padding:26px; }
.activity-copy time,.event-heading time,.press-meta { color:var(--muted); font-size:13px; letter-spacing:.01em; }
.activity-copy h3 { min-height:76px; margin:12px 0 28px; font-size:23px; line-height:1.5; }
.event-story { max-width:1040px; scroll-margin-top:156px; }
.event-story + .event-story { margin-top:96px; padding-top:80px; border-top:1px solid var(--line); }
.event-heading { max-width:920px; margin-bottom:36px; }
.event-heading h2 { margin-top:14px; }
.event-heading > p { margin-top:24px; color:var(--muted); }
.event-photo { min-width:0; }
.event-photo img { display:block; width:100%; height:auto; border-radius:12px; }
.event-photo figcaption { margin-top:12px; color:var(--ink); font-size:var(--type-body); line-height:1.5; text-align:left; overflow-wrap:anywhere; }
.event-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:24px; margin-top:28px; }
.event-photo-grid-portrait { max-width:864px; }
.buyers-photo-grid { grid-template-columns:minmax(0,1fr) minmax(0,300px); }
.press-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.press-cover { width:100%; height:320px; object-fit:cover; background:var(--paper); }
.press-product { display:flex; justify-content:center; padding:28px; }
.press-product img { width:100%; height:100%; object-fit:contain; }
.press-copy { padding:32px; }
.press-meta { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.press-copy h3 { margin:20px 0; font-size:27px; line-height:1.4; }
.press-copy > p:not(.press-meta) { color:var(--muted); }
.press-copy .text-link { margin-top:32px; }
.empty-state { padding:60px 32px; border:0; border-radius:var(--card-radius); text-align:center; background:var(--paper); }
.empty-state > p:not(.eyebrow) { margin:24px 0 36px; color:var(--muted); }
@media(max-width:900px) {
  .tech-card > .source-figure { grid-column:1; grid-row:1 / 7; margin:0; align-self:center; }
  .main-nav { gap:0; }
  .activity-grid { gap:18px; }
  .activity-copy { padding:22px; }
  .activity-copy h3 { font-size:20px; }
  .press-copy { padding:26px; }
  .press-copy h3 { font-size:24px; }
  .press-cover { height:250px; }
}
@media(max-width:600px) {
  .source-figure { margin-bottom:24px; }
  .tech-card > .source-figure { margin-bottom:24px; }
  .activity-grid,.press-grid,.event-photo-grid { grid-template-columns:1fr; }
  .activity-copy h3 { min-height:0; margin-bottom:24px; font-size:23px; }
  .event-story + .event-story { margin-top:64px; padding-top:56px; }
  .event-photo-grid { gap:24px; margin-top:24px; }
  .press-cover { height:260px; }
  .empty-state { padding:40px 24px; }
}

.product-name-label { text-transform:none; }

/* Homepage — white, paper and brand green surfaces. */
.home-page {
  --home-ink:var(--ink);
  --home-muted:var(--muted);
  --home-accent:var(--mint-text);
  --home-line:rgba(6,23,19,.1);
}
.invera-page .needle-section {
  --home-ink:var(--ink);
  --home-muted:var(--muted);
  --home-accent:var(--mint-text);
  --home-line:rgba(6,23,19,.1);
}
:is(.home-page,.invera-page) .needle-section { padding:112px 0 100px; background:var(--paper); color:var(--home-ink); }
:is(.home-page,.invera-page) .needle-section .section-head { margin-bottom:56px; }
:is(.home-page,.invera-page) .needle-section .eyebrow { color:var(--home-accent); font-size:14px; letter-spacing:.1em; }
:is(.home-page,.invera-page) .needle-circles { margin:0 auto 48px; }
:is(.home-page,.invera-page) .needle-circle { flex:0 1 340px; width:340px; height:auto; aspect-ratio:1; padding:36px 24px; border:0; background:var(--white); }
:is(.home-page,.invera-page) .needle-circle + .needle-circle { margin-left:-22px; }
:is(.home-page,.invera-page) .needle-circle h3 { font-size:clamp(32px,3.2vw,46px); font-weight:550; line-height:1.08; letter-spacing:-.045em; }
:is(.home-page,.invera-page) .needle-circle h3 span { display:block; }
:is(.home-page,.invera-page) .needle-circle .needle-no { color:var(--mint-display); }
:is(.home-page,.invera-page) .needle-circle p { margin-top:24px; color:var(--home-muted); font-size:18px; font-weight:500; line-height:1.5; }
:is(.home-page,.invera-page) .needle-summary { color:var(--home-muted); font-size:17px; }
@media(max-width:900px) {
  :is(.home-page,.invera-page) .needle-section { padding:80px 0; }
  :is(.home-page,.invera-page) .needle-circle { padding:28px 12px; }
  :is(.home-page,.invera-page) .needle-circle h3 { font-size:34px; }
  :is(.home-page,.invera-page) .needle-circle p { font-size:16px; margin-top:20px; }
}
@media(max-width:600px) {
  :is(.home-page,.invera-page) .needle-section { padding:72px 0; }
  :is(.home-page,.invera-page) .needle-section .section-head { margin-bottom:36px; }
  :is(.home-page,.invera-page) .needle-circles { flex-direction:column; align-items:center; margin:0 0 36px; }
  :is(.home-page,.invera-page) .needle-circle { flex:0 0 auto; width:min(310px,100%); padding:32px 24px; }
  :is(.home-page,.invera-page) .needle-circle + .needle-circle { margin-left:0; margin-top:-16px; }
  :is(.home-page,.invera-page) .needle-circle h3 { font-size:40px; }
  :is(.home-page,.invera-page) .needle-circle p { font-size:17px; }
  :is(.home-page,.invera-page) .needle-summary { max-width:310px; font-size:16px; }
}

.home-page { --content:min(calc(100% - 96px),1240px); --section-space:120px; --type-section:clamp(38px,3.6vw,52px); color:var(--home-ink); }
.home-page h2 { font-weight:650; line-height:1.24; letter-spacing:-.045em; }
.home-page .section-head { margin-bottom:52px; gap:48px; }
.home-page .section-head > p:not(.eyebrow) { color:var(--home-muted); font-size:18px; line-height:1.5; }
.home-page .eyebrow { font-size:14px; font-weight:650; letter-spacing:.1em; color:var(--home-accent); }
.home-page .text-link { padding:0 0 7px; gap:0; font-size:16px; font-weight:600; border-color:var(--home-line); }
.home-page .text-link:hover { color:var(--home-accent); border-color:currentColor; }
.home-page .button { min-height:56px; padding:16px 28px; border-radius:12px; font-size:16px; font-weight:600; }
.home-page .button-dark { background:var(--home-ink); }
.home-page .site-header { background:var(--white); border-bottom-color:var(--home-line); }
.home-page .site-header.is-scrolled { box-shadow:none; }
.home-page .header-cta { border:0; border-radius:10px; background:var(--paper); color:var(--home-ink); font-size:14px; }
.home-page .language-option { font-size:14px; }
.home-page .hero-slider { height:min(880px,100svh); min-height:740px; }
.home-page .hero-brand .hero-copy { top:calc(var(--header-height) + 68px); left:max(48px,calc((100% - 1240px)/2)); width:42%; }
.home-page .hero-brand .hero-copy-inner { width:100%; max-width:520px; }
.home-page .hero-copy h1 { font-size:clamp(70px,6.4vw,96px); font-weight:550; line-height:1.02; letter-spacing:-.055em; }
.home-page .hero-copy .eyebrow { margin-bottom:10px; }
.home-page .hero-copy .hero-description { font-size:21px; line-height:1.5; margin-top:32px; }
.home-page .hero-copy .button { margin-top:32px; }
.home-page .brand-visual { width:59%; top:132px; bottom:96px; height:auto; max-height:none; aspect-ratio:auto; }
.home-page .hero-alljet { background:var(--paper); }
.home-page .hero-slide:not(.hero-brand) .hero-copy { left:max(48px,calc((100% - 1240px)/2)); right:auto; top:calc(var(--header-height) + 68px); bottom:auto; width:42%; margin:0; }
.home-page .hero-slide:not(.hero-brand) .hero-copy-inner { width:100%; max-width:480px; }
.home-page .hero-title-small { font-size:clamp(32px,3.2vw,44px); line-height:1.35; }
.home-page .hero-product { right:max(48px,calc((100% - 1240px)/2)); width:45%; top:132px; bottom:96px; }
.home-page .hero-invera .hero-product img { max-width:420px; }
.home-page .hero-controls { right:max(48px,calc((100% - 1240px)/2)); bottom:32px; border-radius:0; border-color:var(--home-line); box-shadow:none; }
.home-page .home-about { padding:112px 0; }
.home-page .home-about-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:80px; }
.home-page .home-about-copy { padding-top:38px; color:var(--home-muted); }
.home-page .home-about-copy p { font-size:18px; line-height:1.5; }
.home-page .home-about-copy p + p { margin-top:20px; }
.home-page .home-about-copy .text-link { margin-top:28px; color:var(--home-ink); }
:is(.home-page,.invera-page) .needle-section .section-head { margin-bottom:56px; }
.home-page .home-technology { background:var(--paper); }
.home-page .tech-cards { gap:24px; }
.home-page .tech-card { display:flex; flex-direction:column; padding:28px; border:0; border-radius:var(--card-radius); box-shadow:none; }
.home-page .tech-card .source-figure { margin-bottom:28px; }
.home-page .source-figure > img { height:210px; aspect-ratio:auto; object-fit:contain; border-radius:0; }
.home-page .tech-card .eyebrow { margin-bottom:10px; font-size:12px; }
.home-page .tech-card h3 { font-size:26px; line-height:1.4; margin:0 0 16px; }
.home-page .tech-card p:not(.eyebrow) { margin:0; min-height:0; font-size:17px; line-height:1.5; color:var(--home-muted); }
.home-page .tech-card .result-badge { padding:0; margin:12px 0 0; border-radius:0; background:none; color:var(--home-accent); font-size:14px; line-height:1.5; }
.home-page .tech-card .text-link { font-size:14px; align-self:flex-start; margin-top:auto; }
.home-page .trust-section { padding:64px 0; border:0; background:var(--paper); }
.home-page .trust-section .container { padding-top:40px; border-top:1px solid var(--home-line); }
.home-page .trust-grid { gap:28px; }
.home-page .trust-grid > div { border:0; padding:0; }
.home-page .trust-grid strong { font-size:21px; line-height:1.5; font-weight:600; }
.home-page .trust-grid p { font-size:14px; color:var(--home-muted); margin-top:10px; }
.home-page .release-note { margin-top:32px; justify-content:flex-start; }
.home-page .release-note span { font-size:13px; padding:0; border:0; border-radius:0; color:var(--home-muted); }
.home-page .activity-card { border:0; border-radius:var(--card-radius); box-shadow:none; overflow:hidden; }
.home-page .activity-cover { border-radius:16px; }
.home-page .activity-cover img { aspect-ratio:1.45; }
.home-page .activity-copy { padding:24px 0 0; }
.home-page .activity-copy time { font-size:14px; color:var(--home-muted); }
.home-page .activity-copy h3 { min-height:72px; font-size:23px; font-weight:600; line-height:1.5; margin:12px 0 24px; }
.home-page .activity-copy .text-link { font-size:14px; }
.home-page .contact-band { padding:88px 0; }
.home-page .contact-list { gap:20px; }
.home-page .contact-list a,.home-page .contact-list p { font-size:17px; }
.home-page .contact-list span { font-size:12px; color:var(--home-muted); }
.home-page .site-footer { color:var(--home-ink); background:var(--white); border-top:1px solid var(--home-line); padding-top:56px; padding-bottom:56px; }
.home-page .footer-brand { background:none; border-radius:0; padding:0; }
.home-page .footer-brand img { width:170px; }
.home-page .footer-info { color:var(--home-muted); opacity:1; font-size:13px; line-height:1.5; }
.home-page .back-to-top { border-color:var(--home-line); }
@media(max-width:1180px) {
  .home-page .hero-copy h1 { font-size:72px; }
  .home-page .hero-brand .hero-copy,
  .home-page .hero-slide:not(.hero-brand) .hero-copy { top:136px; }
  .home-page .hero-product-logo { width:300px; }
  .home-page .home-about-grid { gap:48px; }
  .home-page .tech-card { padding:24px; }
  .home-page .tech-card h3 { font-size:23px; }
  .home-page .source-figure > img { height:180px; }
}
@media(max-width:900px) {
  .home-page { --content:calc(100% - 48px); --section-space:88px; --type-section:40px; }
  .home-page .site-header { padding-inline:24px; }
  .home-page .section-head { margin-bottom:40px; gap:20px; }
  .home-page .section-head > p:not(.eyebrow) { font-size:17px; }
  .home-page .hero-brand .hero-copy { left:24px; top:112px; width:44%; }
  .home-page .hero-copy h1 { font-size:64px; }
  .home-page .hero-copy .hero-description { font-size:18px; margin-top:24px; }
  .home-page .hero-copy .button { margin-top:24px; }
  .home-page .brand-visual { width:58%; top:172px; bottom:96px; max-height:none; }
  .home-page .hero-slide:not(.hero-brand) .hero-copy { left:24px; top:112px; bottom:auto; width:44%; }
  .home-page .hero-title-small { font-size:32px; }
  .home-page .hero-product { right:24px; width:46%; top:172px; bottom:96px; }
  .home-page .hero-controls { right:24px; bottom:24px; }
  .home-page .home-about { padding:80px 0; }
  .home-page .home-about-grid { grid-template-columns:1fr; gap:28px; }
  .home-page .home-about-copy { padding:0; max-width:650px; }
  .home-page .home-about-copy p { font-size:17px; }
  .home-page .tech-cards { grid-template-columns:1fr; gap:20px; }
  .home-page .tech-card { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; padding:32px; }
  .home-page .tech-card > .source-figure { grid-column:1; grid-row:1 / 6; margin:0; align-self:start; }
  .home-page .tech-card > :not(.source-figure) { grid-column:2; }
  .home-page .source-figure > img { height:190px; }
  .home-page .tech-card p:not(.eyebrow) { min-height:0; }
  .home-page .tech-card .result-badge { margin:8px 0 0; }
  .home-page .trust-grid { grid-template-columns:1fr 1fr; gap:32px; }
  .home-page .trust-grid strong { font-size:20px; }
  .home-page .contact-band { padding:72px 0; }
  .home-page .site-footer { padding-inline:24px; }
}
@media(max-width:600px) {
  .home-page { --content:calc(100% - 40px); --section-space:72px; --type-section:34px; }
  .home-page .site-header { padding-inline:20px; }
  .home-page .eyebrow { font-size:12px; }
  .home-page .section-head { margin-bottom:32px; }
  .home-page .section-head > p:not(.eyebrow) { font-size:16px; }
  .home-page .hero-slider { height:max(850px,100svh); min-height:850px; }
  .home-page .hero-brand .hero-copy { left:20px; top:104px; width:calc(100% - 40px); }
  .home-page .hero-brand .hero-copy-inner { max-width:none; }
  .home-page .hero-copy h1 { font-size:60px; }
  .home-page .hero-copy .eyebrow { margin-bottom:10px; }
  .home-page .hero-copy .hero-description { font-size:17px; line-height:1.5; margin-top:22px; }
  .home-page .hero-copy .button { min-height:50px; padding:13px 22px; font-size:15px; margin-top:24px; }
  .home-page .brand-visual { width:100%; top:auto; height:250px; max-height:none; aspect-ratio:auto; bottom:96px; }
  .home-page .brand-photo { object-fit:contain; object-position:center bottom; }
  .home-page .hero-slide:not(.hero-brand) .hero-copy { left:20px; top:104px; width:calc(100% - 40px); }
  .home-page .hero-slide:not(.hero-brand) .hero-copy-inner { max-width:none; }
  .home-page .hero-product-logo { width:210px; margin-bottom:20px; }
  .home-page .hero-title-small { font-size:28px; max-width:350px; }
  .home-page .hero-product { top:auto; right:12%; bottom:96px; width:76%; height:250px; }
  .home-page .hero-invera .hero-product img { max-width:300px; }
  .home-page .hero-controls { right:20px; bottom:20px; gap:10px; padding:0; }
  .home-page .home-about { padding:72px 0; }
  .home-page .home-about-grid { gap:24px; }
  .home-page .home-about-copy p { font-size:17px; line-height:1.5; }
  .home-page .tech-card { display:flex; padding:28px; gap:0; }
  .home-page .tech-card > .source-figure { margin-bottom:28px; }
  .home-page .source-figure > img { height:190px; }
  .home-page .tech-card h3 { font-size:24px; }
  .home-page .tech-card .result-badge { margin:8px 0 0; }
  .home-page .tech-card .text-link { margin-top:4px; }
  .home-page .trust-section { padding:24px 0 56px; }
  .home-page .trust-grid { gap:28px 20px; }
  .home-page .trust-grid strong { font-size:18px; }
  .home-page .trust-grid p { font-size:14px; }
  .home-page .activity-grid { gap:36px; }
  .home-page .activity-copy { padding-top:20px; }
  .home-page .activity-copy h3 { min-height:0; font-size:23px; margin-bottom:20px; }
  .home-page .contact-grid { gap:36px; }
  .home-page .contact-list a,.home-page .contact-list p { font-size:16px; gap:18px; }
  .home-page .site-footer { padding:40px 20px; }
}
@media(max-width:360px) {
  .home-page .hero-copy h1 { font-size:52px; }
  .home-page .brand-visual,
  .home-page .hero-product { height:215px; }
  .home-page .hero-title-small { font-size:25px; }
  .home-page .hero-product-logo { width:190px; }
}

/* Unavailable publications match the inactive Home Care menu state. */
.main-nav > .nav-disabled { display:block; padding:26px 0; font-size:15px; font-weight:650; line-height:inherit; opacity:.48; cursor:default; pointer-events:none; }
@media(max-width:1180px) { .main-nav > .nav-disabled { font-size:14px; } }
@media(max-width:900px) { .main-nav > .nav-disabled { width:100%; padding:18px 0; font-size:28px; line-height:1.4; } }

/* Explicit homepage section surfaces. */
.home-page .hero-slide { background:var(--paper); }
.home-page .home-about,.home-page .home-products,.home-page .home-news { background:var(--white); }
.home-page .home-technology .tech-card { background:var(--white); }

/* Filled cards and visible keyboard focus, without enclosing outlines. */
.section .card { background:var(--paper); }
.section-paper .card,.home-technology .card { background:var(--white); }
.home-news .card { background:var(--paper); }
.card { border:0; box-shadow:none; border-radius:var(--card-radius); }
.hero-controls { background:none; border:0; border-radius:0; box-shadow:none; }
button { border:0; }
:focus-visible { outline:2px solid var(--mint); outline-offset:5px; }

/* One destination per linked card; section links remain separate. */
a.card:focus-visible { outline:2px solid var(--mint); outline-offset:5px; }
a.card img { transition:transform .3s ease; }
a.card:hover .activity-cover img,a.product-card:hover .product-stage img { transform:scale(1.03); }
.patent-section-link { margin-top:36px; }
@media(prefers-reduced-motion:reduce) { a.card img { transition:none; } }

/* 10 — equal product columns, aligned feet and alpha-preserving cutouts. */
.home-page .home-products .product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; padding:0; overflow:visible; }
.home-page .home-products .product-card { display:flex; flex-direction:column; min-width:0; padding:36px; background:var(--paper); border:0; border-radius:var(--card-radius); box-shadow:none; }
.home-page .product-card-top { flex-direction:column; align-items:flex-start; gap:16px; }
.home-page .product-card-logo { width:auto; height:40px; max-width:100%; }
.home-page .category-label { font-size:14px; font-weight:500; line-height:1.5; color:var(--muted); letter-spacing:.02em; }
.home-page .product-stage { display:flex; flex:0 0 auto; width:100%; height:480px; margin:28px 0; align-items:flex-end; justify-content:center; }
.home-page .product-stage img { width:100%; height:82%; object-fit:contain; object-position:center bottom; }
.home-page .product-card-invera .product-stage img { width:80%; height:auto; max-height:85%; }
.home-page .product-card p { min-height:0; margin:0; max-width:none; font-size:18px; line-height:1.5; color:var(--muted); }
@media(max-width:1180px) { .home-page .home-products .product-card { padding:28px; } .home-page .product-stage { height:460px; } }
@media(max-width:900px) {
  .home-page .home-products .product-grid { grid-template-columns:1fr; gap:24px; }
  .home-page .product-stage { height:320px; }
  .home-page .product-card-invera .product-stage img { width:80%; max-width:350px; }
}
@media(max-width:600px) { .home-page .home-products .product-card { padding:28px; } .home-page .product-card p { font-size:17px; } }

/* 13 — a light sky-blue inquiry surface on every page. */
.contact-band h2 { color:var(--contact-ink); }
.contact-band .contact-list,.home-page .contact-band .contact-list span,
.contact-band .contact-list span { color:var(--contact-muted); }
.contact-band .button { background:#244e63; color:var(--white); border:0; }

/* Client revision: compact hero, uncropped group photo and centered devices. */
.home-page .hero-slider { height:clamp(620px,78svh,740px); min-height:0; }
.home-page .hero-brand .hero-copy,.home-page .hero-slide:not(.hero-brand) .hero-copy {
  top:132px; bottom:auto; left:max(48px,calc((100% - 1240px)/2)); right:auto; width:39%; margin:0;
}
.home-page .hero-copy h1 { font-size:clamp(64px,5.8vw,86px); }
.home-page .hero-copy .eyebrow { margin-bottom:10px; }
.home-page .hero-copy .hero-description { margin-top:20px; line-height:1.5; }
.home-page .hero-copy .button { margin-top:24px; }
.home-page .brand-visual { inset:auto 0 0 auto; top:112px; width:57%; height:auto; max-height:none; aspect-ratio:auto; }
.home-page .brand-photo { width:100%; height:100%; object-fit:contain; object-position:right bottom; }
.home-page .hero-product { top:120px; bottom:70px; right:6%; width:47%; height:auto; align-items:center; }
.home-page .hero-product img,.home-page .hero-invera .hero-product img { width:100%; height:100%; max-width:none; object-fit:contain; object-position:center; }
.home-page .hero-product-logo { width:300px; margin-bottom:18px; }
.home-page .hero-controls { left:max(48px,calc((100% - 1240px)/2)); right:auto; top:auto; bottom:22px; padding:0; gap:12px; }
.company-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
#about.company-intro .reading-copy { padding-top:4px; margin-top:0; }
.company-intro .reading-copy p + p { margin-top:14px; }
.product-list-page .product-chooser { padding-top:calc(var(--header-height) + 52px); }
body { line-height:1.5; }
.home-page { --section-space:88px; }
.home-page .home-about { padding:88px 0; }
.eyebrow { margin-bottom:10px; }
.reading-copy p { line-height:1.5; }
.reading-copy p + p { margin-top:14px; }
@media(min-width:601px) and (max-width:900px) {
  .home-page .hero-slider { height:620px; }
  .home-page .hero-brand .hero-copy,.home-page .hero-slide:not(.hero-brand) .hero-copy { top:118px; left:24px; width:42%; }
  .home-page .hero-copy h1 { font-size:56px; }
  .home-page .hero-copy .hero-description { font-size:17px; }
  .home-page .hero-copy-inner,.home-page .hero-brand .hero-copy-inner,.home-page .hero-slide:not(.hero-brand) .hero-copy-inner { width:100%; max-width:none; }
  .home-page .hero-product { top:118px; bottom:70px; right:3%; width:49%; }
  .home-page .hero-product-logo { width:240px; }
  .home-page .hero-title-small { font-size:29px; }
  .home-page .hero-controls { left:24px; }
}
@media(max-width:900px) { .company-intro-grid { grid-template-columns:1fr; gap:24px; } }
@media(max-width:600px) {
  .home-page .hero-slider { height:740px; min-height:0; --hero-visual-top:460px; }
  .home-page .hero-brand .hero-copy,.home-page .hero-slide:not(.hero-brand) .hero-copy { top:104px; left:20px; width:calc(100% - 40px); }
  .home-page .hero-copy-inner,.home-page .hero-brand .hero-copy-inner,.home-page .hero-slide:not(.hero-brand) .hero-copy-inner { width:100%; max-width:none; }
  .home-page .hero-copy h1 { font-size:52px; }
  .home-page .hero-copy .hero-description { font-size:17px; margin-top:16px; }
  .home-page .hero-copy .button { margin-top:20px; }
  .home-page .hero-product-logo { width:210px; margin-bottom:16px; }
  .home-page .hero-title-small { font-size:28px; }
  .home-page .brand-visual { inset:auto 0 0; top:var(--hero-visual-top); width:100%; height:auto; }
  .home-page .brand-photo { object-fit:contain; object-position:center bottom; }
  .home-page .hero-product { top:var(--hero-visual-top); bottom:24px; right:12%; width:76%; height:auto; }
  .home-page .hero-controls { left:20px; top:calc(var(--hero-visual-top) - 40px); bottom:auto; gap:10px; }
  .home-page .home-about { padding:64px 0; }
}

/* Align adjacent body copy with the first title line, below its eyebrow. */
:root { --adjacent-copy-offset:28px; }
.home-page { --adjacent-copy-offset:31px; }
@media(min-width:901px) {
  .section-head { align-items:flex-start; }
  .section-head > .text-link { align-self:flex-end; }
  .section-head:has(> div > .eyebrow) > p:not(.eyebrow) { margin-top:var(--adjacent-copy-offset); }
  .split-copy { align-items:start; }
  .split-copy:has(> div > .eyebrow) > .reading-copy { padding-top:var(--adjacent-copy-offset); margin-top:0; }
  .home-page .home-about-copy { padding-top:var(--adjacent-copy-offset); }
  #about.company-intro .reading-copy { padding-top:calc(var(--adjacent-copy-offset) + 10px); }
  .contact-grid { align-items:start; }
  .contact-grid > .contact-list { padding-top:var(--adjacent-copy-offset); }
}
@media(max-width:900px) {
  .section-head > p:not(.eyebrow) { margin-top:0; }
  .split-copy > .reading-copy,.home-page .home-about-copy,
  #about.company-intro .reading-copy,.contact-grid > .contact-list { padding-top:0; margin-top:0; }
}

.form-field input::placeholder,.form-field textarea::placeholder { color:#737b77; opacity:1; }

/* Crop the supplied background to each existing subpage opening section. */
#main-content > .subpage-top {
  background-color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)),url("assets/media/subpage-background.png");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* Keep rectangular cards white against the light cyan section backgrounds. */
.section .card,.home-news .card,.home-page .home-products .product-card,
.purpose-option,.inquiry-draft,.empty-state { background:var(--white); }
.purpose-option:hover { background:var(--white); }
.purpose-option:has(input:checked) { background:var(--ink); }

/* Consistent light homepage and inquiry/footer surfaces. */
.home-page:not(.product-list-page) { --paper:#fff; }
.home-page:not(.product-list-page) .hero-slide {
  background-color:#fff; background-image:linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)),url("assets/media/subpage-background.png"); background-position:center; background-size:cover; background-repeat:no-repeat;
}
.home-page:not(.product-list-page) .section .card { background:var(--white); border:1px solid rgba(6,23,19,.08); }
.contact-band {
  --contact-ink:var(--ink); --contact-muted:var(--muted);
  background-color:#fff; background-image:linear-gradient(rgba(255,255,255,.65),rgba(255,255,255,.65)),url("assets/media/subpage-background.png"); background-position:center; background-size:cover; background-repeat:no-repeat;
  color:var(--ink); border-top:1px solid var(--line);
}
.contact-band .eyebrow { color:var(--mint-text); }
.contact-band .button { background:var(--mint-text); color:var(--white); }
.site-footer,.home-page .site-footer { background:var(--white); color:var(--ink); border-top:1px solid var(--line); }
.footer-info,.home-page .footer-info { color:var(--muted); opacity:1; }
.footer-brand { background:none; padding:0; border-radius:0; }

/* Use whitespace and soft elevation instead of decorative dividers. */
.site-header,.nav-submenu,.page-tabs,.contact-band,.site-footer,
.home-page .site-footer,.technical-row + .technical-row,
.timeline-year + .timeline-year,.timeline-year ol,.gallery-item figcaption,
.specification-table,.specification-table > div,.inquiry-details,
.event-story + .event-story,.text-link { border:0; }
.card,.home-page .tech-card,.home-page .activity-card,
.home-page .home-products .product-card,
.home-page:not(.product-list-page) .section .card,
.technical-visual,.purpose-option,.inquiry-draft,.empty-state {
  border:0; box-shadow:0 5px 24px rgba(6,23,19,.055);
}
.site-header.is-scrolled,.home-page .site-header.is-scrolled { box-shadow:0 3px 18px rgba(6,23,19,.045); }
@media(min-width:901px) { .nav-submenu { box-shadow:0 10px 20px rgba(6,23,19,.045); } }

/* Give the needle-free principles its own soft background surface. */
:is(.home-page,.invera-page) .needle-section {
  background-color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.65),rgba(255,255,255,.65)),url("assets/media/subpage-background.png");
  background-position:center; background-size:cover; background-repeat:no-repeat;
}
:is(.home-page,.invera-page) .needle-circle { box-shadow:0 5px 24px rgba(6,23,19,.055); }

/* Mobile rebuild. All rules stay below the desktop breakpoint. */
@media(max-width:900px) {
  :root,.home-page { --header-height:64px; --content:calc(100% - 40px); --hero-content:calc(100% - 40px); --section-space:64px; --type-section:32px; --type-subsection:24px; }
  body { font-size:16px; line-height:1.5; }
  .site-header,.site-header.is-scrolled,.home-page .site-header { height:64px; padding:0 20px; background:rgba(255,255,255,.97); }
  .brand,.brand img { width:116px; flex-basis:116px; }
  .header-actions { gap:10px; }
  .language-switch { gap:4px; }
  .language-option { display:inline-flex; align-items:center; justify-content:center; min-height:44px; }
  .header-cta,.home-page .header-cta { padding:8px 10px; font-size:12px; }
  .menu-toggle { width:36px; min-height:44px; align-items:center; }
  .js .main-nav { padding:88px 24px 32px; justify-content:flex-start; gap:4px; height:100dvh; overscroll-behavior:contain; }
  .nav-parent > a,.main-nav > a { padding:12px 0; font-size:24px; line-height:1.35; }
  .main-nav > .nav-disabled { padding:12px 0; font-size:24px; line-height:1.35; }
  .nav-submenu .nav-item { min-height:44px; padding:10px 12px; font-size:16px; }
  .nav-submenu .nav-item.is-disabled { padding:10px 12px; font-size:16px; }
  .nav-submenu .nav-item span { width:80px; font-size:13px; }
  .nav-submenu { padding:2px 0 12px; }
  .section,.home-page .home-about,:is(.home-page,.invera-page) .needle-section,.home-page .contact-band { padding-block:64px; }
  .section-head,.home-page .section-head { gap:16px; margin-bottom:28px; }
  .section-head > p:not(.eyebrow),.home-page .section-head > p:not(.eyebrow) { font-size:16px; }
  .eyebrow,.home-page .eyebrow { font-size:12px; margin-bottom:8px; }
  h2,.home-page h2 { font-size:32px; line-height:1.22; }
  h3 { font-size:24px; line-height:1.3; }
  .page-intro { padding:104px 0 40px; }
  .page-intro h1 { font-size:clamp(34px,5.4vw,46px); line-height:1.18; }
  .page-intro-copy { font-size:16px; margin-top:16px; }
  .company-intro-grid,.home-page .home-about-grid,.split-copy { grid-template-columns:1fr; gap:24px; }
  .reading-copy p,.home-page .home-about-copy p { font-size:16px; line-height:1.5; }
  .company-intro .reading-copy p + p { margin-top:12px; }
  .button,.home-page .button { min-height:48px; padding:12px 20px; font-size:14px; gap:16px; border-radius:10px; }
  .text-link,.home-page .text-link { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; font-size:15px; }
  .contact-grid { gap:28px; }
  .contact-list a,.contact-list p,.home-page .contact-list a,.home-page .contact-list p { font-size:15px; gap:16px; overflow-wrap:anywhere; }
  .contact-list span { flex:0 0 40px; min-width:40px; }
  .contact-band .button { margin-top:24px; }
  .site-footer,.home-page .site-footer { padding:36px 20px; gap:24px; }
  .footer-brand,.home-page .footer-brand { width:140px; }
  .footer-brand img,.home-page .footer-brand img { width:140px; }
  .footer-info,.home-page .footer-info { font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
  .footer-info p + p { margin-top:6px; }
  .footer-info a { min-height:44px; display:inline-flex; align-items:center; margin-top:4px; }
  .back-to-top { width:44px; height:44px; }
  .home-page .hero-slider { height:560px; min-height:0; }
  .home-page .hero-slide { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:minmax(0,1fr); gap:16px; padding:104px 24px 56px; align-items:center; }
  .home-page .hero-brand .hero-copy,.home-page .hero-slide:not(.hero-brand) .hero-copy { position:relative; inset:auto; width:100%; margin:0; grid-column:1; grid-row:1; }
  .home-page .hero-copy-inner { width:100%; max-width:none; }
  .home-page .hero-copy h1 { font-size:54px; line-height:1; }
  .home-page .hero-title-small { font-size:28px; line-height:1.2; }
  .home-page .hero-copy .hero-description { font-size:16px; margin-top:16px; line-height:1.4; }
  .home-page .hero-copy .button { margin-top:20px; }
  .home-page .hero-product-logo { width:220px; margin-bottom:18px; }
  .home-page .brand-visual,.home-page .hero-product { position:relative; inset:auto; width:100%; height:100%; max-height:none; grid-column:2; grid-row:1; margin:0; }
  .home-page .brand-photo { object-fit:contain; object-position:center bottom; }
  .home-page .hero-product img,.home-page .hero-invera .hero-product img { width:100%; height:100%; max-width:none; object-fit:contain; object-position:center; }
  .home-page .hero-controls { top:auto; bottom:10px; left:24px; right:auto; gap:10px; }
  .hero-arrow,.hero-pause { min-width:40px; min-height:44px; }
  .hero-dot { height:44px; width:28px; }
  .hero-dot::before { inset:21px 0 20px; }
  .product-list-page .product-chooser { padding-top:104px; }
  .product-grid,.home-page .product-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; overflow:visible; padding-bottom:0; }
  .home-page .home-products .product-card { padding:24px; }
  .product-card-top { align-items:flex-start; }
  .product-card-logo { width:160px; }
  .home-page .product-stage,.product-stage { height:260px; margin:20px 0; }
  .home-page .product-stage img,.product-stage img { max-width:100%; width:100%; height:100%; object-fit:contain; }
  .product-card p { font-size:16px; min-height:0; }
  :is(.home-page,.invera-page) .needle-circle h3 { font-size:30px; }
  :is(.home-page,.invera-page) .needle-circle p { font-size:15px; }
  :is(.home-page,.invera-page) .needle-section .section-head { margin-bottom:28px; }
  :is(.home-page,.invera-page) .needle-circles { margin-bottom:28px; }
  :is(.home-page,.invera-page) .needle-summary { font-size:16px; max-width:none; }
  .technical-row { gap:24px; padding-block:28px; }
  .technical-copy h3 { font-size:24px; }
  .technical-copy p,.component-item p,.overview-card p { font-size:16px; }
  .timeline-year { gap:20px; }
  .timeline-year small { font-size:13px; }
  .document-caption p { font-size:13px; }
  .block-title { margin:40px 0 20px; font-size:24px; }
  .inquiry-form { padding:24px; }
  .inquiry-fields { gap:20px; margin-top:24px; }
  .purpose-option { padding:18px 16px; }
  .inquiry-details { margin-top:28px; padding-top:0; }
  .inquiry-submit { gap:20px; margin-top:28px; }
  .event-story + .event-story { margin-top:48px; padding-top:16px; }
  .event-heading { margin-bottom:24px; }
  .event-heading > p { margin-top:16px; }
  .event-photo-grid { gap:16px; margin-top:16px; }
  .activity-copy h3,.home-page .activity-copy h3 { min-height:0; font-size:22px; line-height:1.3; margin:10px 0 16px; }
  .press-copy { padding:24px; }
  .press-copy h3 { font-size:24px; margin:16px 0; }
  .press-copy .text-link { margin-top:20px; }
}
@media(max-width:600px) {
  :root,.home-page { --type-section:30px; --section-space:56px; }
  h2,.home-page h2 { font-size:30px; }
  .section,.home-page .home-about,:is(.home-page,.invera-page) .needle-section,.home-page .contact-band { padding-block:56px; }
  .page-intro h1 { font-size:36px; }
  .page-intro-copy { max-width:100%; }
  .home-page .hero-slider { --hero-image-height:64.87vw; --hero-control-space:calc(58px + env(safe-area-inset-bottom,0px)); height:calc(var(--hero-copy-height,280px) + 84px + var(--hero-control-space) + var(--hero-image-height)); min-height:0; }
  .home-page .hero-slide { grid-template-columns:minmax(0,1fr); grid-template-rows:var(--slide-copy-height,var(--hero-copy-height,280px)) minmax(0,1fr); gap:12px; padding:72px 20px var(--hero-control-space); align-items:start; }
  .home-page .hero-brand .hero-copy,.home-page .hero-slide:not(.hero-brand) .hero-copy { grid-column:1; grid-row:1; align-self:start; text-align:center; }
  .home-page .hero-copy-inner,.home-page .hero-brand .hero-copy-inner,.home-page .hero-slide:not(.hero-brand) .hero-copy-inner { display:flex; flex-direction:column; align-items:center; width:100%; max-width:360px; margin-inline:auto; }
  .home-page .hero-copy .eyebrow,.product-banner .banner-copy .eyebrow { display:none; }
  .home-page .hero-copy h1 { font-size:clamp(44px,11.8vw,52px); line-height:1.04; letter-spacing:-.04em; }
  .home-page .hero-copy .hero-description { width:100%; max-width:320px; font-size:16px; line-height:1.5; margin-top:12px; }
  .home-page .hero-copy .button { min-height:44px; margin-top:16px; padding:9px 24px; font-size:15px; }
  .home-page .hero-product-logo { width:180px; max-width:100%; margin:0 0 14px; }
  .home-page .hero-title-small { max-width:100%; font-size:clamp(24px,6.7vw,28px); line-height:1.35; letter-spacing:-.035em; }
  .home-page .brand-visual,.home-page .hero-product { grid-column:1; grid-row:2; height:100%; min-height:0; width:100%; }
  .home-page .brand-visual { display:block; width:calc(100% + 40px); height:auto; aspect-ratio:1557 / 1010; margin-inline:-20px; align-self:end; }
  .home-page .brand-photo { width:100%; height:auto; object-fit:contain; object-position:center bottom; }
  .home-page .hero-product { max-width:300px; height:100%; max-height:none; justify-self:center; align-self:stretch; }
  .home-page .hero-controls { left:50%; right:auto; bottom:calc(10px + env(safe-area-inset-bottom,0px)); width:max-content; max-width:100%; transform:translateX(-50%); gap:8px; }
  .product-grid,.home-page .product-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .home-page .home-products .product-card { padding:24px; }
  .home-page .product-stage,.product-stage { height:240px; margin:20px 0; }
  :is(.home-page,.invera-page) .needle-circles { display:grid; grid-template-columns:1fr; gap:16px; }
  :is(.home-page,.invera-page) .needle-circle { width:100%; height:auto; aspect-ratio:auto; flex:none; display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:center; padding:24px; border-radius:18px; text-align:left; }
  :is(.home-page,.invera-page) .needle-circle + .needle-circle { margin:0; }
  :is(.home-page,.invera-page) .needle-circle h3 { font-size:27px; }
  :is(.home-page,.invera-page) .needle-circle p { margin:0; font-size:15px; }
  .home-page .tech-card { display:flex; flex-direction:column; padding:24px; gap:0; }
  .home-page .tech-card > .source-figure { margin-bottom:20px; }
  .home-page .source-figure > img { height:auto; max-height:220px; aspect-ratio:1.6; }
  .home-page .tech-card h3 { font-size:23px; }
  .home-page .tech-card p:not(.eyebrow) { font-size:16px; margin-top:12px; }
  .home-page .tech-card .result-badge { font-size:14px; margin:8px 0 0; }
  .activity-grid,.press-grid,.event-photo-grid,.buyers-photo-grid { grid-template-columns:minmax(0,1fr); }
  .home-page .activity-grid { gap:24px; }
  .activity-copy,.home-page .activity-copy { padding:20px; }
  .banner-grid { grid-template-columns:1fr; gap:24px; }
  .product-banner { padding:72px 0 32px; }
  .product-banner .banner-copy { display:flex; flex-direction:column; align-items:center; width:100%; max-width:360px; margin-inline:auto; text-align:center; }
  .product-banner .banner-copy h1 { width:100%; }
  .banner-logo { width:220px; margin:0 auto 14px; }
  .banner-statement { font-size:28px; line-height:1.25; }
  .banner-description { margin-top:12px; }
  .banner-copy .text-link { margin-top:16px; }
  .banner-visual,.banner-visual-invera { height:320px; }
  .overview-grid,.component-grid,.step-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .overview-card,.component-item,.step-card { padding:24px; }
  .overview-card h3,.component-item h3,.step-card h3 { font-size:24px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .gallery-stage { height:190px; padding:8px; }
  .gallery-item { padding:12px; }
  .gallery-item figcaption { margin-top:10px; padding-top:0; font-size:13px; }
  .component-item img { height:220px; margin-bottom:20px; }
  .specification-table > div { grid-template-columns:1fr; gap:6px; padding:16px 0; }
  .specification-table dt { font-size:14px; }
  .specification-table dd { font-size:16px; overflow-wrap:anywhere; }
  .timeline-year { grid-template-columns:1fr; gap:20px; padding-block:28px; }
  .timeline-year > h3 { font-size:32px; }
  .timeline-year ol { padding-left:0; }
  .timeline-year li { grid-template-columns:32px minmax(0,1fr); gap:14px; padding-bottom:20px; }
  .timeline-year li::before { display:none; }
  .document-grid,.iso-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .document-card,.iso-grid .document-card { padding:14px; }
  .document-thumb,.document-badge,.iso-grid .document-thumb,.iso-grid .document-badge { height:160px; margin-bottom:14px; }
  .document-caption h3,.iso-grid .document-caption h3 { font-size:15px; line-height:1.35; }
  .document-caption p { font-size:12px; }
  .document-open { padding-top:14px; font-size:13px; }
  .certification-seal span,.iso-grid .certification-seal span { font-size:17px; }
  .form-heading,.inquiry-purposes legend { font-size:22px; gap:10px; }
  .inquiry-form { padding:20px; }
  .purpose-options { grid-template-columns:1fr; gap:12px; }
  .purpose-option { padding:16px; align-items:center; }
  .purpose-option strong { font-size:16px; }
  .purpose-option small { font-size:13px; }
  .inquiry-fields { grid-template-columns:1fr; gap:18px; }
  .form-field { font-size:14px; gap:8px; }
  .form-field textarea { min-height:170px; }
  .inquiry-submit { flex-direction:column; align-items:stretch; }
  .inquiry-submit .button { width:100%; }
  .field-help { font-size:13px; }
  .inquiry-grid { gap:16px; }
  .inquiry-card { padding:24px; }
  .inquiry-card h3 { margin-bottom:16px; }
  .empty-state { padding:32px 20px; }
  .policy-copy h2 { font-size:24px; }
  .lightbox { padding:16px; width:calc(100% - 24px); height:calc(100dvh - 24px); }
}
@media(max-width:374px) {
  .header-cta { display:none; }
  .page-intro h1 { font-size:32px; }
  h2,.home-page h2 { font-size:28px; }
  .home-page .hero-copy h1 { font-size:42px; }
  .document-grid,.iso-grid { grid-template-columns:1fr; }
}
@media(max-width:900px) {
  .page-tabs { top:64px; }
  .page-tabs > div { gap:20px; }
  .page-tabs a { min-height:48px; display:inline-flex; align-items:center; padding-block:10px; font-size:14px; }
}
@media(max-width:600px) {
  .needle-summary { font-size:16px; }
}

/* Match the All-Jet close-up to INVERA’s visible device height. */
.home-page .hero-alljet .hero-product img { width:auto; height:98%; aspect-ratio:1162 / 1354; object-fit:cover; object-position:center top; }
@media(min-width:901px) {
  .home-page .hero-alljet .hero-product { bottom:0; align-items:flex-end; }
  .home-page .hero-alljet .hero-product img { height:100%; }
}
@media(max-width:900px) {
  .home-page .hero-product img,.home-page .hero-alljet .hero-product img,.home-page .hero-invera .hero-product img {
    width:100%; height:100%; max-width:none; aspect-ratio:auto; object-fit:contain; object-position:center;
  }
}

/* Three overlapping circles share a seamless white silhouette. */
.needle-circles,:is(.home-page,.invera-page) .needle-circles {
  display:flex; flex-direction:row; justify-content:center; align-items:center;
  gap:0; width:100%; padding:0; background:none; border-radius:0; box-shadow:none;
}
.needle-circles .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  flex:0 0 calc((100% + 80px) / 3); width:calc((100% + 80px) / 3);
  height:auto; aspect-ratio:1; padding:28px 20px; margin:0; border:0;
  border-radius:50%; background:var(--white); box-shadow:none; text-align:center;
}
.needle-circles .needle-circle + .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle + .needle-circle { margin-left:-40px; margin-top:0; }
@media(max-width:900px) {
  .needle-circles .needle-circle h3,:is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:30px; }
  .needle-circles .needle-circle p { font-size:15px; margin-top:20px; }
}
@media(max-width:600px) {
  .needle-circles,:is(.home-page,.invera-page) .needle-circles,.invera-page .needle-circles { flex-direction:column; margin:28px 0; }
  .needle-circles .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle,.invera-page .needle-circles .needle-circle {
    display:flex; flex-direction:column; width:min(280px,100%); flex:none; height:auto;
    aspect-ratio:1; padding:32px 24px; border-radius:50%; background:var(--white);
    box-shadow:none; text-align:center;
  }
  .needle-circles .needle-circle + .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle + .needle-circle { margin-left:0; margin-top:-28px; }
  .needle-circles .needle-circle h3,:is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:32px; }
  .needle-circles .needle-circle p { font-size:16px; margin-top:18px; }
  .invera-page .needle-circle > span { position:static; margin-bottom:10px; }
}

/* Compact overlapping circles with one soft shadow beneath the group. */
.needle-circles,:is(.home-page,.invera-page) .needle-circles { max-width:980px; margin-inline:auto; filter:drop-shadow(0 7px 9px rgba(6,23,19,.045)); }
.needle-circles .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle { padding:24px 18px; }
:is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:38px; }
.needle-circles .needle-circle p,:is(.home-page,.invera-page) .needle-circles .needle-circle p { font-size:16px; margin-top:20px; }
@media(max-width:900px) {
  .needle-circles,:is(.home-page,.invera-page) .needle-circles { max-width:760px; }
  :is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:28px; }
  .needle-circles .needle-circle p { font-size:15px; }
}
@media(max-width:600px) {
  .needle-circles .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle,.invera-page .needle-circles .needle-circle { width:240px; max-width:100%; padding:24px 20px; }
  :is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:28px; }
  .needle-circles .needle-circle p,:is(.home-page,.invera-page) .needle-circles .needle-circle p { font-size:15px; margin-top:16px; }
}

/* Reference shape: wide ellipses, rather than perfect circles. */
.needle-circles .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle { aspect-ratio:1.3; }
@media(max-width:600px) {
  .needle-circles .needle-circle,:is(.home-page,.invera-page) .needle-circles .needle-circle,.invera-page .needle-circles .needle-circle { width:min(300px,100%); aspect-ratio:1.3; padding:24px 20px; }
  .needle-circles .needle-circle h3,:is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:28px; }
  .needle-circles .needle-circle p,:is(.home-page,.invera-page) .needle-circles .needle-circle p { font-size:15px; margin-top:14px; }
}

/* Subpage headings follow the product chooser heading scale. */
.page-intro h1 { font-size:clamp(38px,3.6vw,52px); font-weight:650; line-height:1.24; letter-spacing:-.045em; }
.company-intro-grid { grid-template-columns:1fr; gap:24px; }
#about.company-intro .reading-copy { padding-top:0; margin-top:0; }
@media(max-width:900px) { .page-intro h1 { font-size:32px; line-height:1.22; } }
@media(max-width:600px) { .page-intro h1 { font-size:30px; } }
@media(max-width:374px) { .page-intro h1 { font-size:28px; } }

/* Shared body-copy size, matching the company introduction. */
:root { --site-copy-size:17px; }
@media(max-width:900px) { :root { --site-copy-size:16px; } }
body main p:not(.eyebrow):not(.banner-statement):not(.hero-title-small):not(.press-meta),
body main .reading-copy p,body main .home-about-copy p,
body main .specification-table dd,body main .policy-copy li,
body main .contact-list a {
  font-size:var(--site-copy-size); line-height:1.5;
}

.company-intro .reading-copy p { text-wrap:pretty; word-break:keep-all; }

body main p:not(.eyebrow):not(.banner-statement):not(.hero-title-small):not(.press-meta) { text-wrap:pretty; word-break:keep-all; }

/* Place descriptive copy below its heading across the site. */
.section-head:has(> p:not(.eyebrow)),
.home-page .section-head:has(> p:not(.eyebrow)) {
  flex-direction:column; align-items:flex-start; gap:16px;
}
.section-head:has(> div > .eyebrow) > p:not(.eyebrow) { margin-top:0; max-width:820px; }
.split-copy,.home-page .home-about-grid { grid-template-columns:1fr; gap:24px; }
.split-copy:has(> div > .eyebrow) > .reading-copy,
.home-page .home-about-copy { padding-top:0; margin-top:0; max-width:820px; }
.contact-grid { grid-template-columns:1fr; gap:24px; }
.contact-grid > .contact-list { padding-top:0; margin-top:0; }

/* Distinct company links and centered content within the No Needle ellipses. */
.hero-description > span { display:block; }
.home-page .hero-brand .button { background:var(--mint-text); color:var(--white); }
.home-page .hero-brand .button:hover { background:#006354; }
.home-page .home-about-copy > .text-link { min-height:48px; padding:12px 22px; border:1px solid #b6ded5; border-radius:12px; background:#eaf7f3; color:var(--mint-text); }
.home-page .home-about-copy > .text-link:hover { background:#d9f0e9; border-color:var(--mint-text); }
:is(.home-page,.invera-page) .needle-circles { align-items:center; margin-bottom:16px; }
:is(.home-page,.invera-page) .needle-circle-copy { display:flex; flex-direction:column; align-items:center; gap:10px; width:100%; }
:is(.home-page,.invera-page) .needle-circles .needle-circle-copy p { width:100%; margin:0; text-align:center; }
:is(.home-page,.invera-page) .needle-summary { max-width:650px; margin:0 auto; text-align:center; }
@media(min-width:901px) {
  :is(.home-page,.invera-page) .needle-section { --content:min(calc(100% - 96px),1240px); --type-section:clamp(38px,3.6vw,52px); }
  :is(.home-page,.invera-page) .needle-section h2 { font-size:var(--type-section); font-weight:650; line-height:1.24; letter-spacing:-.045em; }
}
@media(max-width:600px) {
  :is(.home-page,.invera-page) .needle-circles { margin:24px auto 12px; }
  :is(.home-page,.invera-page) .needle-summary { max-width:340px; }
}

/* No Needle: three lines on desktop, two lines on mobile. */
body.home-page .needle-circles .needle-circle h3 > span,
body.invera-page .needle-circles .needle-circle h3 > span,
body.home-page .needle-circles .needle-circle h3 .needle-term > span,
body.invera-page .needle-circles .needle-circle h3 .needle-term > span { display:block; }
@media(max-width:900px) {
 :is(.home-page,.invera-page) .needle-circles { max-width:820px; }
 :is(.home-page,.invera-page) .needle-circles .needle-circle { padding:20px 14px; }
 :is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:23px; line-height:1.2; }
 :is(.home-page,.invera-page) .needle-circles .needle-term { white-space:nowrap; }
 body.home-page .needle-circles .needle-circle h3 .needle-term > span,
 body.invera-page .needle-circles .needle-circle h3 .needle-term > span { display:inline; }
}
@media(max-width:600px) {
 :is(.home-page,.invera-page) .needle-circles .needle-circle { width:min(270px,100%); padding:20px 14px; }
 :is(.home-page,.invera-page) .needle-circles .needle-circle h3 { font-size:25px; }
}

/* Content actions share one style; hero and product-banner actions retain their layout. */
body :is(button,.button,.text-link,.header-cta,.document-open) { border:0 !important; }
body main .section :is(.button,.text-link),body.home-page main .section :is(.button,.text-link) {
 display:inline-flex; align-items:center; justify-content:center; align-self:flex-start;
 width:fit-content; min-height:48px; padding:12px 24px; border-radius:12px;
 font-size:15px; font-weight:650; line-height:1.5; gap:12px; text-align:center;
}
body main .section .text-link,body.home-page main .section .text-link { background:#eaf7f3; color:var(--mint-text); }
body main .section .text-link:hover,body.home-page main .section .text-link:hover { background:#d9f0e9; }
body main .section :is(.reading-copy,.home-about-copy,.press-copy,.activity-copy) > :is(.button,.text-link) { margin-top:24px; }
body main .section .tech-card .text-link { margin-top:auto; }
.section-actions { display:flex; justify-content:flex-start; margin-top:32px; }
body .section-head,body.home-page .section-head { flex-direction:column; align-items:flex-start; gap:16px; }
@media(max-width:900px) { .section-actions { margin-top:24px; } }
@media(max-width:600px) { body main .inquiry-submit .button { width:100%; } }

/* Halve mobile spacing between technology labels, headings and descriptions. */
@media(max-width:900px) {
 body .technical-copy > .eyebrow { margin-bottom:4px; }
 body .technical-copy h3 { margin-bottom:12px; }
 body .tech-card > .eyebrow,body.home-page .tech-card > .eyebrow { margin-bottom:5px; }
 body .tech-card h3,body.home-page .tech-card h3 { margin-bottom:8px; }
}
@media(max-width:600px) {
 body.home-page .tech-card p:not(.eyebrow) { margin-top:6px; }
}

/* Directions use the shared content action style. */
.directions-actions { flex-wrap:wrap; gap:12px; }
.location-address { max-width:820px; color:var(--muted); }

#location .location-card { min-width:0; }
#location .directions-actions { margin-top:24px; }

/* Event dates and captions stay legible and aligned with each photograph. */
.event-heading time,.activity-copy time,.home-page .activity-copy time {
 display:inline-block; color:var(--mint-text); font-size:18px; font-weight:700;
 line-height:1.4; letter-spacing:0; font-variant-numeric:tabular-nums;
}
.event-heading time { padding:8px 14px; border-radius:10px; background:#eaf7f3; }
.event-heading h2 { margin-top:16px; }
.event-heading > p { margin-top:16px; }
.home-page .activity-copy { padding:20px; }
@media(max-width:900px) {
 .event-heading time,.activity-copy time,.home-page .activity-copy time { font-size:16px; }
 .event-heading time { padding:7px 12px; }
 .buyers-photo-grid { grid-template-columns:minmax(0,1fr) minmax(0,240px); }
}
@media(max-width:600px) {
 .event-photo-grid,.buyers-photo-grid { grid-template-columns:minmax(0,1fr); }
 .buyers-photo-grid .is-portrait { width:min(100%,300px); }
 .event-photo figcaption { margin-top:10px; }
}

/* Dates use the font's default spacing throughout the site. */
body time,body .document-caption p { letter-spacing:0; }

/* Align all five content rows in the three desktop technology cards. */
@media(min-width:901px) {
 .home-page .home-technology .tech-cards { grid-template-rows:repeat(5,auto); row-gap:0; }
 .home-page .home-technology .tech-card { display:grid; grid-row:span 5; grid-template-rows:subgrid; row-gap:0; }
 .home-page .home-technology .tech-card .result-badge { align-self:start; }
}

/* INVERA 영상: 화면에 보이면 무음 자동 재생, 하단 바(재생 위치 · 음소거 · 전체 화면) */
.film-gallery { margin-bottom:24px; }
.film-frame { position:relative; max-width:1200px; margin-inline:auto; overflow:hidden; aspect-ratio:16 / 9; border-radius:var(--card-radius); background:#eef0ef; }
.film-video { display:block; width:100%; height:100%; object-fit:cover; cursor:pointer; }
.film-video:focus-visible { outline:2px solid var(--mint); outline-offset:-2px; }
.film-paused { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; width:72px; height:72px; margin:auto; border-radius:50%; color:var(--white); background:rgba(6,23,19,.6); opacity:0; pointer-events:none; transition:opacity .2s; }
.film-paused svg { width:26px; height:26px; margin-left:3px; }
.film-frame.is-paused .film-paused { opacity:1; }
.film-controls { position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; gap:10px; padding:44px 18px 14px 24px; background:linear-gradient(to top,rgba(6,23,19,.5),rgba(6,23,19,0)); }
.film-seek { --progress:0%; flex:1; min-width:0; height:28px; padding:0; margin:0 8px 0 0; border:0; border-radius:4px; background:linear-gradient(to right,var(--white) var(--progress),rgba(255,255,255,.35) var(--progress)) center / 100% 4px no-repeat; cursor:pointer; touch-action:none; appearance:none; -webkit-appearance:none; }
.film-seek::-webkit-slider-thumb { width:14px; height:14px; border:0; border-radius:50%; background:var(--white); -webkit-appearance:none; appearance:none; }
.film-seek::-moz-range-thumb { width:14px; height:14px; border:0; border-radius:50%; background:var(--white); }
.film-seek:focus-visible { outline:2px solid var(--mint); outline-offset:6px; }
.film-btn { display:flex; align-items:center; justify-content:center; flex:0 0 40px; width:40px; height:40px; padding:0; border:0; border-radius:50%; color:var(--white); background:transparent; transition:background .2s; }
.film-btn:hover { background:rgba(255,255,255,.16); }
.film-btn:focus-visible { outline:2px solid var(--mint); outline-offset:2px; }
.film-btn svg { width:21px; height:21px; }
.film-btn .icon-on, .film-btn .icon-shrink, .film-btn[aria-pressed="true"] .icon-off, .film-frame.is-fullscreen .icon-expand { display:none; }
.film-btn[aria-pressed="true"] .icon-on, .film-frame.is-fullscreen .icon-shrink { display:block; }
.film-frame.is-fullscreen { max-width:none; aspect-ratio:auto; border-radius:0; background:#000; }
.film-frame.is-fullscreen .film-video { object-fit:contain; }
@media (max-width: 900px) {
  .film-frame { border-radius:12px; }
  .film-controls { gap:4px; padding:32px 8px 6px 14px; }
  .film-btn { flex-basis:36px; width:36px; height:36px; }
  .film-btn svg { width:19px; height:19px; }
  .film-paused { width:56px; height:56px; }
}

/* 화면에는 숨기고 검색엔진·스크린리더에는 읽히는 텍스트 (예: 로고만 있는 제품 제목) */
.visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }


/* Site-wide: one button style, text links with arrows, and heading-left / copy-right layouts on desktop. */
html body .button.button,body main .section .button,body.home-page main .section .button,body.home-page .hero-copy .button {
 min-height:46px; padding:10px 24px; gap:10px; border-radius:12px; font-size:15px; font-weight:650; line-height:1.5;
 background:var(--mint-text); color:var(--white);
}
html body .button.button:hover,body main .section .button:hover,body.home-page main .section .button:hover,body.home-page .hero-copy .button:hover { background:#006354; color:var(--white); }
body main .text-link,body main .section .text-link,body.home-page main .section .text-link {
 display:inline-flex; align-items:center; gap:8px; min-height:0; padding:0 0 6px; border-radius:0;
 background:none; color:var(--ink); font-size:15px; font-weight:650; line-height:1.5;
 border-bottom:1px solid currentColor !important;
}
body main .text-link:not(:has(> span))::after { content:"→"; transition:transform .2s ease; }
body main .text-link:hover,body main .section .text-link:hover,body.home-page main .section .text-link:hover { background:none; color:var(--mint-text); }
body main .text-link:not(:has(> span)):hover::after { transform:translateX(4px); }
.directions-actions,#location .directions-actions { flex-direction:row; flex-wrap:wrap; gap:10px 24px; }
.section-head .product-introduction { margin:0; max-width:none; }
@media(max-width:900px) {
 html body .button.button,body main .section .button,body.home-page main .section .button,body.home-page .hero-copy .button { min-height:44px; padding:9px 22px; }
 body main .text-link,body main .section .text-link,body.home-page main .section .text-link { padding:8px 0 6px; }
}
@media(min-width:901px) {
 :root { --head-copy-offset:34px; }
 /* Section links sit at the right end of the heading row. */
 .section > .container:has(> :is(.section-actions,.patent-section-link)) { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:48px; }
 .section > .container:has(> :is(.section-actions,.patent-section-link)) > * { grid-column:1 / -1; }
 .section > .container:has(> :is(.section-actions,.patent-section-link)) > .section-head { grid-column:1; grid-row:1; }
 .section > .container > :is(.section-actions,.patent-section-link) { grid-column:2; grid-row:1; align-self:end; justify-self:end; margin:0 0 48px; }
 .home-page .section > .container > .section-actions { margin-bottom:52px; }
 /* Heading on the left, description on the right. */
 /* Product overview reads like ABOUT; short section descriptions stay under their titles. */
 body .section-head:has(> .product-introduction) { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:80px; }
 body .section-head > .product-introduction { margin:0; padding-top:var(--head-copy-offset); max-width:none; }
 body .section-head:has(> div > .eyebrow) > p:not(.eyebrow,.product-introduction) { margin:0; padding-top:0; }
 .home-page .home-about-grid,.split-copy,.company-intro-grid { grid-template-columns:1fr 1fr; align-items:start; gap:80px; }
 .home-page .home-about-copy,.split-copy:has(> div > .eyebrow) > .reading-copy { padding-top:var(--head-copy-offset); margin-top:0; max-width:none; }
 #about.company-intro .reading-copy { padding-top:calc(var(--head-copy-offset) + 10px); margin-top:0; }
 body main :is(.home-about-copy,.reading-copy) p,body main .section-head:has(> div > .eyebrow) > p:not(.eyebrow) { max-width:29em; text-wrap:wrap; }
 /* Contact: details span the height of the heading and button. */
 .contact-grid { grid-template-columns:1.35fr 1fr; align-items:stretch; gap:60px; }
 .contact-grid > .contact-list { justify-content:space-between; gap:16px; padding:var(--head-copy-offset) 0 10px; }
}
.nowrap { white-space:nowrap; }

/* Document enlargement uses buttons and preserves image-copy protection. */
button.document-card { border:0; }
.document-card,.document-thumb img,[data-lightbox-content] img { -webkit-user-drag:none; -webkit-touch-callout:none; user-select:none; }
/* 모바일 길게 누르기 '이미지 저장' 방지: 이미지가 터치를 받지 않고 감싼 요소가 받는다 */
.document-thumb img,[data-lightbox-content] img { pointer-events:none; }
.document-thumb,[data-lightbox-content] { -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }

/* Small headings and labels use zero letter spacing on every page. */
.eyebrow,.category-label { letter-spacing:0 !important; }

/* No / Needle / Pain are typed without spaces; keep a gap when the last two share a line. */
.needle-section .section-head .needle-summary,:is(.home-page,.invera-page) .needle-section .section-head .needle-summary { margin:16px auto 0; }
@media(max-width:900px) { :is(.home-page,.invera-page) .needle-circles .needle-term > span + span { margin-left:.25em; } }

/* Highlight lines under technology copy: plain emphasis aligned with the text above. */
html body :is(main,.tech-card,.technical-copy) .result-badge.result-badge {
 display:block; width:auto; max-width:none; margin:14px 0 0; padding:0; border-radius:0;
 background:none; color:var(--mint-text); font-size:15px; font-weight:700; line-height:1.5;
}

/* History: a thin light-grey line joins the dots within each year. */
.timeline-year li::before { z-index:1; }
.timeline-year li:not(:last-child)::after { content:""; position:absolute; top:16px; bottom:-16px; left:-29px; width:1px; background:#dde3e1; }
@media(max-width:600px) { .timeline-year li:not(:last-child)::after { display:none; } }

/* Products: INVERA sits a little smaller, and the gap above each product matches the gap below. */
.home-page .product-stage { height:440px; margin:28px 0; }
.home-page .product-card-alljet .product-stage img { height:100%; }
.home-page .product-card-invera .product-stage img { width:auto; max-width:72%; height:auto; max-height:78%; }
@media(max-width:1180px) { .home-page .product-stage { height:420px; } }
@media(max-width:900px) { .home-page .product-stage { height:320px; } .home-page .product-card-invera .product-stage img { max-width:68%; max-height:76%; } }

/* Events: one gallery per event, with the heading beside it. */
.content-page [id^="year-"] > .container > .eyebrow { margin-bottom:40px; color:var(--mint-text); font-size:44px; font-weight:700; line-height:1.15; text-transform:none; }
.content-page .event-story { display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:56px; align-items:start; max-width:none; }
.content-page .event-story + .event-story { margin-top:64px; padding-top:64px; border-top:1px solid var(--line); }
.content-page .event-heading { margin:0; }
.content-page .event-heading time { padding:0; border-radius:0; background:none; color:var(--mint-text); font-size:15px; font-weight:700; }
.content-page .event-heading h2 { margin-top:8px; font-size:28px; line-height:1.35; letter-spacing:-.02em; }
.content-page .event-heading > p { margin-top:12px; color:var(--muted); }
.event-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:190px; gap:12px; }
.event-gallery .event-photo { position:relative; margin:0; overflow:hidden; border-radius:14px; background:#eef0ef; }
.event-gallery .event-photo:first-child { grid-column:span 2; grid-row:span 2; }
.event-gallery .event-photo img { width:100%; height:100%; object-fit:cover; object-position:center 35%; border-radius:0; }
.event-gallery .event-photo figcaption { position:absolute; inset:auto 0 0 0; margin:0; padding:32px 16px 12px; color:#fff; font-size:14px; line-height:1.45; background:linear-gradient(to top,rgba(0,0,0,.6),transparent); }
.event-gallery[data-count="1"] { grid-template-columns:1fr; grid-auto-rows:auto; }
.event-gallery[data-count="1"] .event-photo:first-child { grid-column:auto; grid-row:auto; aspect-ratio:16 / 9; }
.event-gallery[data-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:392px; }
.event-gallery[data-count="2"] .event-photo:first-child { grid-column:auto; grid-row:auto; }
@media(max-width:900px) {
 .content-page [id^="year-"] > .container > .eyebrow { margin-bottom:28px; font-size:36px; }
 .content-page .event-story { grid-template-columns:1fr; gap:20px; }
 .content-page .event-story + .event-story { margin-top:48px; padding-top:48px; }
 .content-page .event-heading h2 { font-size:24px; }
 .event-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:150px; gap:8px; }
 .event-gallery .event-photo:first-child { grid-column:1 / -1; grid-row:span 2; }
 .event-gallery[data-count="2"] { grid-auto-rows:260px; }
 .event-gallery[data-count="2"] .event-photo:first-child { grid-column:auto; grid-row:auto; }
 .event-gallery .event-photo figcaption { padding:24px 12px 10px; font-size:13px; }
}
.needle-section .section-head.centered { display:block; }
.needle-section .section-head .needle-summary,:is(.home-page,.invera-page) .needle-section .section-head .needle-summary { width:auto; max-width:650px; text-wrap:balance; }

/* Events: photo viewer with previous / next posts. */
.event-gallery .event-photo { cursor:zoom-in; }
.event-gallery .event-photo:focus-visible { outline:2px solid var(--mint-text); outline-offset:3px; }
.event-gallery .event-photo img { transition:transform .4s ease; }
.event-gallery .event-photo:hover img { transform:scale(1.03); }
.event-viewer { width:min(980px,calc(100% - 40px)); height:calc(100dvh - 40px); max-height:none; padding:0; border:0; border-radius:var(--card-radius); background:var(--white); color:var(--ink); overflow:hidden; }
.event-viewer::backdrop { background:rgba(6,23,19,.8); }
.event-viewer-bar { position:absolute; top:12px; right:16px; z-index:2; }
.event-viewer-close { width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); font-size:27px; box-shadow:0 2px 10px rgba(0,0,0,.08); cursor:pointer; }
.event-viewer-body { height:100%; overflow:auto; padding:48px 56px 40px; overscroll-behavior:contain; }
.event-viewer-head { max-width:720px; margin-bottom:32px; }
.event-viewer-head time { color:var(--mint-text); font-size:15px; font-weight:700; letter-spacing:0; }
.event-viewer-head h2 { margin-top:8px; font-size:30px; line-height:1.35; letter-spacing:-.02em; }
.event-viewer-head p { margin-top:12px; color:var(--muted); }
.event-viewer-photos { display:flex; flex-direction:column; gap:28px; }
.event-viewer-photos figure { margin:0; scroll-margin-top:24px; }
.event-viewer-photos img { display:block; width:100%; height:auto; max-height:calc(100dvh - 180px); object-fit:contain; border-radius:12px; background:#f3f5f4; }
.event-viewer-photos figcaption { margin-top:10px; color:var(--muted); font-size:15px; }
.event-viewer-nav { margin-top:48px; border-top:1px solid var(--ink); }
.event-viewer-nav-item { display:grid; grid-template-columns:88px 110px minmax(0,1fr); align-items:center; gap:16px; width:100%; padding:18px 4px; border:0; border-bottom:1px solid var(--line); background:none; color:var(--ink); font:inherit; text-align:left; }
button.event-viewer-nav-item { cursor:pointer; }
button.event-viewer-nav-item:hover strong { color:var(--mint-text); }
.event-viewer-nav-label { font-size:14px; font-weight:700; }
.event-viewer-nav-item time { color:var(--muted); font-size:14px; letter-spacing:0; }
.event-viewer-nav-item strong { font-size:16px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-viewer-nav-empty { grid-column:2 / -1; color:var(--muted); font-size:15px; }
@media(max-width:600px) {
 .event-viewer { width:calc(100% - 16px); height:calc(100dvh - 16px); }
 .event-viewer-body { padding:56px 20px 28px; }
 .event-viewer-head h2 { font-size:24px; }
 .event-viewer-photos { gap:20px; }
 .event-viewer-nav-item { grid-template-columns:64px minmax(0,1fr); gap:4px 12px; }
 .event-viewer-nav-item time { grid-column:2; }
 .event-viewer-nav-item strong { grid-column:2; white-space:normal; }
 .event-viewer-nav-label { grid-row:span 2; }
}

/* Products: INVERA a touch larger and centred on the same line as All-Jet. */
.home-page .product-card-invera .product-stage { align-items:center; }
.home-page .product-card-invera .product-stage img { max-width:76%; max-height:82%; }
@media(max-width:900px) { .home-page .product-card-invera .product-stage img { max-width:72%; max-height:80%; } }
.event-viewer-nav-item { border-bottom:1px solid var(--line) !important; }
