/* InfiniSwiss components. Every colour, radius, spacing step and shadow comes from tokens.css.
   Font sizes are the page's fluid clamp() values; their desktop maxima are the type styles in tokens.json. */

body { margin: 0; font-family: var(--font-text); font-size: 18px; line-height: 1.6; color: var(--ink-800); -webkit-font-smoothing: antialiased; }
.isw a { color: inherit; }
.isw *:focus-visible, .isw-focus:focus-visible { outline: 3px solid var(--white); outline-offset: 3px; border-radius: var(--radius-focus); }
.isw-on-light *:focus-visible { outline-color: var(--ink-800); }
.isw-display { font-family: var(--font-display); }

/* ---------- Layout ---------- */
.isw-section { padding: clamp(90px, 10vw, 150px) clamp(20px, 5vw, 80px); }
.isw-container { max-width: var(--container); margin: 0 auto; }
.isw-section-head { display: flex; flex-wrap: wrap; gap: var(--space-20) var(--space-64); align-items: flex-end; justify-content: space-between; }
.isw-title-xl { margin: 0; font-family: var(--font-display); font-size: clamp(48px, 6.4vw, 104px); line-height: .92; letter-spacing: -0.045em; font-weight: 900; }
.isw-title-lg { margin: 0; font-family: var(--font-display); font-size: clamp(44px, 5.4vw, 88px); line-height: .95; letter-spacing: -0.04em; font-weight: 900; }
.isw-title-md { margin: 0; font-family: var(--font-display); font-size: clamp(42px, 5vw, 80px); line-height: .95; letter-spacing: -0.04em; font-weight: 900; }
.isw-lead { margin: 0; flex: 0 1 480px; font-size: clamp(19px, 1.5vw, 22px); line-height: 1.55; font-weight: 500; }
.isw-grid { display: grid; gap: var(--space-20); grid-template-columns: repeat(auto-fit, minmax(min(var(--isw-min, 330px), 100%), 1fr)); }

/* ---------- Button ---------- */
.isw-btn { display: inline-flex; align-items: center; gap: var(--space-14); box-sizing: border-box; min-height: 62px; padding: 0 30px; border: 0; border-radius: var(--radius-pill); font-family: var(--font-display); font-size: 18px; font-weight: 800; line-height: 1; text-decoration: none; cursor: pointer; }
.isw-btn--primary { padding: 0 10px 0 30px; background: var(--red-500); color: var(--white); }
.isw-btn__arrow { width: 44px; height: 44px; flex: none; border-radius: var(--radius-round); background: var(--white); color: var(--red-500); display: inline-flex; align-items: center; justify-content: center; transition: transform .35s cubic-bezier(.2,.85,.2,1); }
.isw-btn__arrow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.isw-btn--primary:hover .isw-btn__arrow { transform: rotate(-45deg); }
.isw-btn--glass { background: var(--glass-light); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1.5px solid rgba(255,255,255,.6); color: var(--white); }
.isw-btn--light { min-height: 0; padding: 9px 18px; font-size: 15px; background: var(--white); color: var(--red-700); }
.isw-btn--sm { min-height: 58px; font-size: 17px; padding: 0 10px 0 26px; }
.isw-btn--sm .isw-btn__arrow { width: 40px; height: 40px; }

/* ---------- Badge ---------- */
.isw-badge { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px 8px 8px; border: 1.5px solid rgba(255,255,255,.7); border-radius: var(--radius-pill); font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--white); }
.isw-badge img { width: 26px; height: 26px; display: block; }

/* ---------- Header / navigation ---------- */
.isw-header { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: var(--space-24); max-width: var(--container); margin: 0 auto; padding: 26px clamp(20px, 5vw, 80px); color: var(--white); }
.isw-header__logo { display: block; line-height: 0; }
.isw-header__logo img { height: 32px; width: auto; display: block; }
.isw-nav { display: flex; align-items: center; gap: 4px; padding: 6px; border-radius: var(--radius-pill); background: var(--glass-dark); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.18); font-size: 15px; font-weight: 600; }
.isw-nav a { text-decoration: none; padding: 9px 14px; border-radius: var(--radius-pill); color: var(--white); }
.isw-nav a[aria-current="page"] { background: rgba(255,255,255,.16); }
.isw-nav .isw-btn--light { color: var(--red-700); font-weight: 800; }
.isw-menu-btn { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border-radius: var(--radius-pill); border: 1px solid rgba(255,255,255,.4); background: var(--glass-dark); color: var(--white); cursor: pointer; }
.isw-menu-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.isw-menu { position: absolute; top: 88px; left: clamp(20px, 5vw, 80px); right: clamp(20px, 5vw, 80px); padding: 10px; border-radius: var(--radius-md); background: var(--menu-panel); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.18); box-shadow: var(--shadow-menu); font-family: var(--font-display); }
.isw-menu a { display: block; text-decoration: none; padding: 14px 18px; border-radius: var(--radius-xs); font-size: 22px; font-weight: 800; color: var(--white); transition: background .2s; }
.isw-menu a:hover { background: rgba(255,255,255,.12); }
.isw-menu a.isw-menu__cta { display: flex; align-items: center; justify-content: center; min-height: 56px; margin-top: var(--space-8); border-radius: var(--radius-pill); background: var(--white); color: var(--red-700); font-size: 18px; }
@media (max-width: 1040px) { .isw-nav { display: none; } .isw-menu-btn { display: inline-flex; } }
@media (min-width: 1041px) { .isw-menu { display: none; } }

/* ---------- Hero ---------- */
.isw-hero { position: relative; min-height: 940px; overflow: hidden; display: flex; flex-direction: column; background: var(--red-900); color: var(--white); }
.isw-hero__media { position: absolute; inset: 0; animation: isw-kb 28s ease-in-out infinite alternate; transform-origin: 60% 70%; }
.isw-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.isw-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,2,3,.55) 0%, rgba(20,2,3,0) 26%, rgba(20,2,3,0) 46%, rgba(20,2,3,.82) 100%); }
.isw-hero__body { position: relative; z-index: 1; flex: 1; width: 100%; max-width: var(--container); box-sizing: border-box; margin: 0 auto; padding: 0 clamp(20px, 5vw, 80px) 72px; display: flex; flex-direction: column; justify-content: flex-end; }
.isw-hero__title { margin: 0; font-family: var(--font-display); font-size: clamp(48px, 7.8vw, 124px); line-height: .9; letter-spacing: -0.048em; font-weight: 900; }
.isw-hero__credit { position: absolute; right: clamp(20px, 5vw, 80px); top: 40px; writing-mode: vertical-rl; font-size: 13px; font-weight: 700; letter-spacing: .2em; opacity: .85; }
@keyframes isw-kb { from { transform: scale(1.04) translate(0,0); } to { transform: scale(1.22) translate(-3%,-2%); } }
.isw-wipe { display: block; padding-bottom: .16em; margin-bottom: -.16em; animation: isw-wipe 1.3s cubic-bezier(.75,0,.2,1) both; }
.isw-wipe:nth-child(2) { animation-delay: .15s; } .isw-wipe:nth-child(3) { animation-delay: .3s; }
@keyframes isw-wipe { from { clip-path: inset(0 100% 0 0); transform: translateX(-30px); } to { clip-path: inset(0 0 0 0); transform: none; } }
.isw-fade-up { animation: isw-fade-up 1s .7s cubic-bezier(.2,.85,.2,1) both; }
@keyframes isw-fade-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
/* A red-tinted photo with its natural-colour twin stacked on top: hover the section to reveal colour. */
.isw-hover-color { opacity: 0; transition: opacity 1.1s ease; }
.isw-hover-sec:hover .isw-hover-color { opacity: 1; }

/* ---------- Photo numeral (10x) ---------- */
.isw-photo-text { margin: 0; font-family: var(--font-display); font-size: clamp(170px, 26vw, 400px); line-height: .78; font-weight: 900; letter-spacing: -0.07em; background-size: 220% auto; background-position: 0% 60%; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; animation: isw-pan 18s ease-in-out infinite alternate; }
@keyframes isw-pan { to { background-position: 100% 40%; } }

/* ---------- Statement with rotating word ---------- */
.isw-statement { margin: 0; max-width: 15ch; font-family: var(--font-display); font-size: clamp(40px, 5.4vw, 86px); line-height: 1; letter-spacing: -0.04em; font-weight: 900; color: var(--white); }
.isw-rotator { display: grid; justify-items: start; color: var(--red-400); clip-path: inset(0 -2em -.24em -.2em); }
.isw-rotator > span { grid-area: 1 / 1; opacity: 0; animation: 9s ease-in infinite both; }
.isw-rotator > span:nth-child(1) { animation-name: isw-w1; } .isw-rotator > span:nth-child(2) { animation-name: isw-w2; }
.isw-rotator > span:nth-child(3) { animation-name: isw-w3; } .isw-rotator > span:nth-child(4) { animation-name: isw-w4; }
.isw-rotator > span:nth-child(5) { animation-name: isw-w5; opacity: 1; }
@keyframes isw-w1 { 0% { transform: translateY(-.8em); opacity: 0; animation-timing-function: cubic-bezier(.3,1.45,.5,1); } 4%, 11% { transform: none; opacity: 1; } 14%, 100% { transform: translateY(.5em); opacity: 0; } }
@keyframes isw-w2 { 0%, 12% { transform: translateY(-.8em); opacity: 0; animation-timing-function: cubic-bezier(.3,1.45,.5,1); } 16%, 23% { transform: none; opacity: 1; } 26%, 100% { transform: translateY(.5em); opacity: 0; } }
@keyframes isw-w3 { 0%, 24% { transform: translateY(-.8em); opacity: 0; animation-timing-function: cubic-bezier(.3,1.45,.5,1); } 28%, 35% { transform: none; opacity: 1; } 38%, 100% { transform: translateY(.5em); opacity: 0; } }
@keyframes isw-w4 { 0%, 36% { transform: translateY(-.8em); opacity: 0; animation-timing-function: cubic-bezier(.3,1.45,.5,1); } 40%, 47% { transform: none; opacity: 1; } 50%, 100% { transform: translateY(.5em); opacity: 0; } }
@keyframes isw-w5 { 0%, 48% { transform: translateY(-.8em); opacity: 0; animation-timing-function: cubic-bezier(.3,1.45,.5,1); } 53%, 94% { transform: none; opacity: 1; } 100% { transform: translateY(.5em); opacity: 0; } }
.isw-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Duotone photo (red → natural colour on hover) ---------- */
.isw-duo { position: relative; overflow: hidden; }
.isw-duo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.1); transition: transform 1.4s cubic-bezier(.2,.85,.2,1), filter .8s; }
.isw-duo__tint { position: absolute; inset: 0; background: var(--red-500); mix-blend-mode: multiply; opacity: .92; transition: opacity .8s; }
.isw-duo:hover img, .isw-photo-card:hover .isw-duo img { transform: scale(1.07); filter: grayscale(0) contrast(1); }
.isw-duo:hover .isw-duo__tint, .isw-photo-card:hover .isw-duo__tint { opacity: .15; }

/* ---------- Photo card ---------- */
.isw-photo-card { background: var(--white); border-radius: var(--radius-xl); overflow: hidden; display: flex; flex-direction: column; }
.isw-photo-card .isw-duo { height: 300px; }
.isw-photo-card__body { padding: var(--space-32) 36px var(--space-38); }
.isw-photo-card h3 { margin: 0 0 12px; font-family: var(--font-display); font-size: clamp(28px, 2.6vw, 38px); line-height: 1.05; letter-spacing: -0.025em; font-weight: 900; }
.isw-photo-card p { margin: 0; color: var(--text-muted); }

/* Hover lift shared by cards */
.isw-lift { transition: transform .35s cubic-bezier(.2,.85,.2,1), box-shadow .35s; }
.isw-lift:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift); }

/* ---------- Callout band ---------- */
.isw-callout { background: var(--ink-800); color: var(--white); border-radius: var(--radius-xl); padding: clamp(28px, 3vw, 44px); display: flex; flex-wrap: wrap; gap: var(--space-20) var(--space-40); align-items: center; justify-content: space-between; }
.isw-callout p { margin: 0; flex: 1 1 520px; font-family: var(--font-display); font-size: clamp(20px, 1.8vw, 26px); line-height: 1.35; font-weight: 700; }

/* ---------- Process loop + step cards ---------- */
.isw-loop { display: block; width: 100%; height: auto; overflow: visible; }
.isw-loop__track { fill: none; stroke: var(--white); stroke-opacity: .12; stroke-width: 56; stroke-linejoin: round; }
.isw-loop__flow { fill: none; stroke: var(--white); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 2 14; animation: isw-flow 1.1s linear infinite; }
@keyframes isw-flow { to { stroke-dashoffset: -16; } }
.isw-comet { offset-path: path('M292.6 53.3 L286.5 51.7 L280.4 50.2 L274.1 48.9 L267.8 47.7 L261.5 46.7 L255.1 45.9 L248.6 45.2 L242.0 44.8 L235.4 44.5 L228.8 44.4 L222.1 44.6 L215.4 45.0 L208.7 45.6 L201.9 46.5 L195.2 47.6 L188.4 48.9 L181.7 50.6 L175.0 52.4 L168.3 54.6 L161.7 57.0 L155.1 59.7 L148.6 62.7 L142.2 66.0 L136.0 69.5 L129.8 73.4 L123.8 77.5 L118.0 82.0 L112.4 86.7 L106.9 91.6 L101.7 96.9 L96.7 102.4 L91.9 108.2 L87.4 114.2 L83.3 120.5 L79.4 127.0 L75.8 133.6 L72.6 140.5 L69.7 147.6 L67.1 154.8 L65.0 162.1 L63.2 169.5 L61.8 177.1 L60.8 184.7 L60.2 192.3 L60.0 200.0 L60.2 207.7 L60.8 215.3 L61.8 222.9 L63.2 230.5 L65.0 237.9 L67.1 245.2 L69.7 252.4 L72.6 259.5 L75.8 266.4 L79.4 273.0 L83.3 279.5 L87.4 285.8 L91.9 291.8 L96.7 297.6 L101.7 303.1 L106.9 308.4 L112.4 313.3 L118.0 318.0 L123.8 322.5 L129.8 326.6 L136.0 330.5 L142.2 334.0 L148.6 337.3 L155.1 340.3 L161.7 343.0 L168.3 345.4 L175.0 347.6 L181.7 349.4 L188.4 351.1 L195.2 352.4 L201.9 353.5 L208.7 354.4 L215.4 355.0 L222.1 355.4 L228.8 355.6 L235.4 355.5 L242.0 355.2 L248.6 354.8 L255.1 354.1 L261.5 353.3 L267.8 352.3 L274.1 351.1 L280.4 349.8 L286.5 348.3 L292.6 346.7 L298.6 344.9 L304.5 343.0 L310.3 341.0 L316.1 338.8 L321.8 336.5 L327.4 334.2 L332.9 331.7 L338.3 329.1 L343.7 326.5 L349.0 323.7 L354.2 320.9 L359.3 318.0 L364.4 315.0 L369.4 312.0 L374.3 308.9 L379.1 305.7 L383.9 302.5 L388.6 299.2 L393.3 295.9 L397.9 292.5 L402.4 289.1 L406.9 285.7 L411.4 282.2 L415.7 278.7 L420.1 275.1 L424.4 271.5 L428.6 267.9 L432.8 264.3 L437.0 260.6 L441.1 256.9 L445.2 253.2 L449.2 249.5 L453.2 245.7 L457.2 242.0 L461.2 238.2 L465.2 234.4 L469.1 230.6 L473.0 226.8 L476.9 223.0 L480.8 219.2 L484.6 215.3 L488.5 211.5 L492.3 207.7 L496.2 203.8 L500.0 200.0 L503.8 196.2 L507.7 192.3 L511.5 188.5 L515.4 184.7 L519.2 180.8 L523.1 177.0 L527.0 173.2 L530.9 169.4 L534.8 165.6 L538.8 161.8 L542.8 158.0 L546.8 154.3 L550.8 150.5 L554.8 146.8 L558.9 143.1 L563.0 139.4 L567.2 135.7 L571.4 132.1 L575.6 128.5 L579.9 124.9 L584.3 121.3 L588.6 117.8 L593.1 114.3 L597.6 110.9 L602.1 107.5 L606.7 104.1 L611.4 100.8 L616.1 97.5 L620.9 94.3 L625.7 91.1 L630.6 88.0 L635.6 85.0 L640.7 82.0 L645.8 79.1 L651.0 76.3 L656.3 73.5 L661.7 70.9 L667.1 68.3 L672.6 65.8 L678.2 63.5 L683.9 61.2 L689.7 59.0 L695.5 57.0 L701.4 55.1 L707.4 53.3 L713.5 51.7 L719.6 50.2 L725.9 48.9 L732.2 47.7 L738.5 46.7 L744.9 45.9 L751.4 45.2 L758.0 44.8 L764.6 44.5 L771.2 44.4 L777.9 44.6 L784.6 45.0 L791.3 45.6 L798.1 46.5 L804.8 47.6 L811.6 48.9 L818.3 50.6 L825.0 52.4 L831.7 54.6 L838.3 57.0 L844.9 59.7 L851.4 62.7 L857.8 66.0 L864.0 69.5 L870.2 73.4 L876.2 77.5 L882.0 82.0 L887.6 86.7 L893.1 91.6 L898.3 96.9 L903.3 102.4 L908.1 108.2 L912.6 114.2 L916.7 120.5 L920.6 127.0 L924.2 133.6 L927.4 140.5 L930.3 147.6 L932.9 154.8 L935.0 162.1 L936.8 169.5 L938.2 177.1 L939.2 184.7 L939.8 192.3 L940.0 200.0 L939.8 207.7 L939.2 215.3 L938.2 222.9 L936.8 230.5 L935.0 237.9 L932.9 245.2 L930.3 252.4 L927.4 259.5 L924.2 266.4 L920.6 273.0 L916.7 279.5 L912.6 285.8 L908.1 291.8 L903.3 297.6 L898.3 303.1 L893.1 308.4 L887.6 313.3 L882.0 318.0 L876.2 322.5 L870.2 326.6 L864.0 330.5 L857.8 334.0 L851.4 337.3 L844.9 340.3 L838.3 343.0 L831.7 345.4 L825.0 347.6 L818.3 349.4 L811.6 351.1 L804.8 352.4 L798.1 353.5 L791.3 354.4 L784.6 355.0 L777.9 355.4 L771.2 355.6 L764.6 355.5 L758.0 355.2 L751.4 354.8 L744.9 354.1 L738.5 353.3 L732.2 352.3 L725.9 351.1 L719.6 349.8 L713.5 348.3 L707.4 346.7 L701.4 344.9 L695.5 343.0 L689.7 341.0 L683.9 338.8 L678.2 336.5 L672.6 334.2 L667.1 331.7 L661.7 329.1 L656.3 326.5 L651.0 323.7 L645.8 320.9 L640.7 318.0 L635.6 315.0 L630.6 312.0 L625.7 308.9 L620.9 305.7 L616.1 302.5 L611.4 299.2 L606.7 295.9 L602.1 292.5 L597.6 289.1 L593.1 285.7 L588.6 282.2 L584.3 278.7 L579.9 275.1 L575.6 271.5 L571.4 267.9 L567.2 264.3 L563.0 260.6 L558.9 256.9 L554.8 253.2 L550.8 249.5 L546.8 245.7 L542.8 242.0 L538.8 238.2 L534.8 234.4 L530.9 230.6 L527.0 226.8 L523.1 223.0 L519.2 219.2 L515.4 215.3 L511.5 211.5 L507.7 207.7 L503.8 203.8 L500.0 200.0 L496.2 196.2 L492.3 192.3 L488.5 188.5 L484.6 184.7 L480.8 180.8 L476.9 177.0 L473.0 173.2 L469.1 169.4 L465.2 165.6 L461.2 161.8 L457.2 158.0 L453.2 154.3 L449.2 150.5 L445.2 146.8 L441.1 143.1 L437.0 139.4 L432.8 135.7 L428.6 132.1 L424.4 128.5 L420.1 124.9 L415.7 121.3 L411.4 117.8 L406.9 114.3 L402.4 110.9 L397.9 107.5 L393.3 104.1 L388.6 100.8 L383.9 97.5 L379.1 94.3 L374.3 91.1 L369.4 88.0 L364.4 85.0 L359.3 82.0 L354.2 79.1 L349.0 76.3 L343.7 73.5 L338.3 70.9 L332.9 68.3 L327.4 65.8 L321.8 63.5 L316.1 61.2 L310.3 59.0 L304.5 57.0 L298.6 55.1 L292.6 53.3 Z'); offset-rotate: 0deg; animation: isw-travel 10s linear infinite; fill: var(--red-400); }
.isw-comet--head { fill: var(--red-500); stroke: var(--white); stroke-width: 4; }
.isw-comet--glow { fill: var(--red-500); opacity: .35; }
.isw-comet--t1 { animation-delay: .09s; opacity: .85; } .isw-comet--t2 { animation-delay: .18s; opacity: .7; } .isw-comet--t3 { animation-delay: .27s; opacity: .5; }
@keyframes isw-travel { from { offset-distance: 0%; } to { offset-distance: 100%; } }
.isw-pulse { fill: none; stroke: var(--white); stroke-width: 3; transform-box: fill-box; transform-origin: center; animation: isw-pulse 10s linear infinite; opacity: 0; }
.isw-pulse--2 { animation-delay: 2.772s; } .isw-pulse--3 { animation-delay: 5s; } .isw-pulse--4 { animation-delay: 7.772s; }
@keyframes isw-pulse { 0% { transform: scale(1); opacity: .95; } 9% { transform: scale(2.3); opacity: 0; } 100% { transform: scale(2.3); opacity: 0; } }
.isw-station { fill: var(--white); } .isw-station--active { fill: var(--red-500); }
.isw-station-num { font-family: var(--font-display); font-weight: 900; font-size: 36px; text-anchor: middle; fill: var(--red-700); }
.isw-station--active + .isw-station-num { fill: var(--white); }
.isw-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: var(--space-16); }
.isw-step { background: var(--glass-card); border: 1px solid var(--glass-border); border-radius: var(--radius-md); padding: var(--space-28); display: flex; flex-direction: column; gap: 10px; color: var(--white); }
.isw-step--active { background: var(--red-500); border-color: var(--red-300); box-shadow: var(--shadow-raised); }
.isw-step__num { width: 44px; height: 44px; border-radius: var(--radius-round); background: var(--white); color: var(--red-700); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 900; font-size: 20px; }
.isw-step h3 { margin: 6px 0 0; font-family: var(--font-display); font-size: 24px; line-height: 1.15; font-weight: 800; }
.isw-step p { margin: 0; font-size: 16px; color: var(--on-red-body); }
.isw-step--active p { color: var(--white); }

/* ---------- Definition list (technical leaders) ---------- */
.isw-dl { margin: 0; border-top: 1px solid var(--ink-600); }
.isw-dl > div { padding: var(--space-20) 0; border-bottom: 1px solid var(--ink-600); }
.isw-dl dt { display: flex; align-items: center; gap: var(--space-12); margin-bottom: 4px; font-family: var(--font-display); font-size: 22px; font-weight: 800; }
.isw-dl dt::before { content: ""; width: 10px; height: 10px; flex: none; border-radius: var(--radius-round); background: var(--red-400); }
.isw-dl dd { margin: 0 0 0 22px; font-size: 16px; color: var(--on-dark-soft); }

/* ---------- Orbit ---------- */
.isw-orbit { position: relative; width: min(500px, calc(100% - 96px)); aspect-ratio: 1 / 1; }
.isw-orbit__photo { position: absolute; inset: 14%; border-radius: var(--radius-round); box-shadow: var(--shadow-orb); }
.isw-orbit__ring { position: absolute; inset: 4%; border-radius: var(--radius-round); border: 1.5px dashed var(--ink-500); }
.isw-orbit__spin { position: absolute; inset: 0; animation: isw-spin 26s linear infinite; }
.isw-orbit__anchor { position: absolute; width: 0; height: 0; animation: isw-spin 26s linear infinite reverse; }
.isw-orbit__pill { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); white-space: nowrap; border-radius: var(--radius-pill); padding: 8px 18px; font-family: var(--font-display); font-size: 14px; font-weight: 800; background: var(--red-500); color: var(--white); }
.isw-orbit__pill--light { background: var(--white); color: var(--ink-800); }
@keyframes isw-spin { to { transform: rotate(360deg); } }

/* ---------- Engagement cards ---------- */
.isw-engage { box-sizing: border-box; min-height: 300px; padding: var(--space-38); border-radius: var(--radius-lg); background: var(--blush-100); display: flex; flex-direction: column; gap: var(--space-14); transition: background .35s, color .35s, transform .35s cubic-bezier(.2,.85,.2,1), box-shadow .35s; }
.isw-engage:hover { background: var(--red-500); color: var(--white); transform: translateY(-6px); box-shadow: var(--shadow-lift); }
.isw-engage--ink { background: var(--ink-800); color: var(--white); }
.isw-engage__figure { height: 72px; display: flex; align-items: center; }
.isw-engage h3 { margin: var(--space-14) 0 0; font-family: var(--font-display); font-size: 32px; line-height: 1.08; letter-spacing: -0.02em; font-weight: 900; }
.isw-engage p { margin: 0; color: var(--text-muted); transition: color .35s; }
.isw-engage--ink p { color: var(--on-dark-muted); }
.isw-engage:hover p { color: var(--on-red-muted); }
/* 1–N counter: N rolls 2…9 faster and faster, lands on N, holds, loops */
.isw-count { display: flex; align-items: center; font-family: var(--font-display); font-size: 76px; line-height: .8; font-weight: 900; letter-spacing: -0.05em; }
.isw-count > span:first-child { display: block; line-height: 1; }
.isw-count__win { display: block; height: 1em; line-height: 1; overflow: hidden; }
.isw-count__strip { display: block; transform: translateY(-8em); animation: isw-roll 6.5s cubic-bezier(.45,0,.25,1) infinite; }
.isw-count__strip > span { display: block; height: 1em; }
@keyframes isw-roll { 0%, 6% { transform: translateY(0); } 10%, 14% { transform: translateY(-1em); } 17%, 20% { transform: translateY(-2em); } 22.5%, 24.5% { transform: translateY(-3em); } 26.5%, 28% { transform: translateY(-4em); } 29.5%, 30.5% { transform: translateY(-5em); } 31.8%, 32.6% { transform: translateY(-6em); } 33.7% { transform: translateY(-7em); } 34.2% { transform: translateY(-7em); animation-timing-function: cubic-bezier(.3,1.4,.5,1); } 38%, 90% { transform: translateY(-8em); } 95% { transform: translateY(-9em); } 95.01%, 100% { transform: translateY(0); } }
/* Person bubbles with one InfiniSwiss bubblehead dropping in */
.isw-bubbles { display: flex; gap: var(--space-8); height: 72px; align-items: flex-end; }
.isw-bub { width: 52px; height: 52px; flex: none; border-radius: var(--radius-round); background: var(--blush-200); display: flex; align-items: flex-end; justify-content: center; overflow: hidden; transition: background .35s; }
.isw-bub svg { width: 30px; height: 30px; display: block; fill: var(--blush-500); transition: fill .35s; }
.isw-engage:hover .isw-bub { background: var(--red-hover-fill); } .isw-engage:hover .isw-bub svg { fill: var(--red-hover-ink); }
.isw-bub-slot { position: relative; width: 64px; height: 64px; flex: none; }
.isw-bub-slot::before { content: ""; position: absolute; inset: 4px; border-radius: var(--radius-round); border: 2px dashed var(--blush-400); }
.isw-bub-slot img { position: absolute; left: -4px; top: -6px; width: 72px; height: 72px; animation: isw-dropin 4.8s cubic-bezier(.3,0,.3,1) infinite; }
@keyframes isw-dropin { 0% { transform: translateY(-120px); opacity: 0; } 10% { opacity: 1; } 22% { transform: translateY(0); } 28% { transform: translateY(-14px); } 34% { transform: translateY(0); } 38% { transform: translateY(-4px); } 42%, 86% { transform: translateY(0); opacity: 1; } 94%, 100% { transform: translateY(0); opacity: 0; } }
/* Fixed-scope race bar */
.isw-race { width: 200px; height: 14px; border-radius: var(--radius-pill); background: var(--ink-600); overflow: hidden; transition: background .35s; }
.isw-race > span { display: block; width: 100%; height: 100%; border-radius: var(--radius-pill); background: var(--red-500); transform-origin: left; animation: isw-race 6s cubic-bezier(.4,0,.2,1) infinite; transition: background .35s; }
.isw-engage:hover .isw-race { background: rgba(255,255,255,.3); } .isw-engage:hover .isw-race > span { background: var(--white); }
@keyframes isw-race { 0% { transform: scaleX(0); } 25%, 85% { transform: scaleX(1); } 100% { transform: scaleX(1); opacity: 0; } }

/* ---------- Values ---------- */
.isw-value { border-top: 3px solid var(--white); padding-top: 22px; color: var(--white); }
.isw-value h3 { margin: 0 0 10px; font-family: var(--font-display); font-size: 28px; line-height: 1.1; font-weight: 900; }
.isw-value p { margin: 0; font-size: 17px; color: var(--on-photo-body); }

/* ---------- Logo tile ---------- */
.isw-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 45%), 1fr)); gap: 10px; }
.isw-logo-tile { height: 96px; box-sizing: border-box; padding: 0 18px; border-radius: var(--radius-sm); background: var(--white); display: flex; align-items: center; justify-content: center; }
.isw-logo-tile img { max-width: 100%; max-height: 38px; }
.isw-logo-tile--brand { background: var(--red-500); }
.isw-logo-tile--brand img { width: 56px; height: 56px; max-height: none; }

/* ---------- Testimonial ---------- */
.isw-quote-card { margin: 0; box-sizing: border-box; width: min(460px, 84vw); padding: var(--space-40); border-radius: var(--radius-xl); background: var(--white); color: var(--ink-800); display: flex; flex-direction: column; gap: 26px; }
.isw-quote-card--red { background: var(--red-500); color: var(--white); }
.isw-quote-card--ink { background: var(--ink-800); color: var(--white); }
.isw-quote-card__mark { width: 44px; height: 34px; fill: var(--red-500); }
.isw-quote-card--red .isw-quote-card__mark { fill: var(--white); }
.isw-quote-card--ink .isw-quote-card__mark { fill: var(--red-400); }
.isw-quote-card blockquote { margin: 0; font-family: var(--font-display); font-size: 21px; line-height: 1.4; font-weight: 700; }
.isw-quote-card figcaption { margin-top: auto; display: flex; align-items: center; gap: var(--space-14); font-size: 15px; line-height: 1.35; }
.isw-quote-card figcaption img, .isw-quote-card__initials { width: 56px; height: 56px; flex: none; border-radius: var(--radius-round); object-fit: cover; }
.isw-quote-card--red figcaption img { border: 3px solid var(--white); box-sizing: border-box; }
.isw-quote-card__initials { display: flex; align-items: center; justify-content: center; background: var(--red-500); color: var(--white); font-family: var(--font-display); font-weight: 800; }
.isw-quote-card__role { color: var(--text-subtle); }
.isw-quote-card--red .isw-quote-card__role { color: var(--white); }
.isw-quote-card--ink .isw-quote-card__role { color: var(--on-ink-caption); }
.isw-snap { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.isw-snap::-webkit-scrollbar { display: none; }
.isw-snap > * > * { scroll-snap-align: start; }

/* ---------- FAQ ---------- */
.isw-faq { border-top: 2px solid var(--ink-800); }
.isw-faq details { border-bottom: 1px solid var(--blush-300); }
.isw-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--space-20); padding: 26px 0; font-family: var(--font-display); font-size: 22px; font-weight: 800; line-height: 1.3; }
.isw-faq summary::-webkit-details-marker { display: none; }
.isw-faq__plus { flex: none; width: 42px; height: 42px; border-radius: var(--radius-round); border: 2px solid var(--red-500); color: var(--red-500); display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 500; line-height: 1; transition: transform .3s; }
.isw-faq details[open] .isw-faq__plus { transform: rotate(45deg); }
.isw-faq details p { margin: 0 0 30px; max-width: 640px; color: var(--text-muted); }

/* ---------- Location card ---------- */
.isw-location { background: var(--ink-700); border: 1px solid var(--ink-600); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; color: var(--white); }
.isw-location > img { display: block; width: 100%; height: 330px; object-fit: cover; }
.isw-location__body { flex: 1; padding: 30px 34px; display: flex; flex-direction: column; gap: var(--space-8); }
.isw-location__eyebrow { margin: 0; font-family: var(--font-display); font-size: 14px; font-weight: 800; color: var(--red-300); }
.isw-location h3 { margin: 0; font-family: var(--font-display); font-size: clamp(36px, 3.4vw, 46px); line-height: 1; letter-spacing: -0.03em; font-weight: 900; }
.isw-location__text { margin: 4px 0 0; font-size: 16px; color: var(--on-dark-soft); }
.isw-location__time { margin-top: auto; padding-top: var(--space-20); border-top: 1px solid var(--ink-600); display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); }
.isw-location__time > span:first-child { display: inline-flex; align-items: center; gap: var(--space-8); font-size: 14px; font-weight: 600; color: var(--on-dark-faint); }
.isw-live { width: 8px; height: 8px; border-radius: var(--radius-round); background: var(--live); animation: isw-live 1.6s ease-in-out infinite; }
@keyframes isw-live { 50% { opacity: .25; } }
.isw-clock { font-family: var(--font-mono); font-size: 42px; line-height: 1; font-weight: 500; letter-spacing: -0.02em; }

/* ---------- Contact form ---------- */
.isw-form { background: var(--glass-form); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); border: 1px solid rgba(255,255,255,.3); border-radius: var(--radius-xl); padding: clamp(28px, 3.4vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 18px; color: var(--white); }
.isw-field { display: flex; flex-direction: column; gap: var(--space-8); font-size: 15px; font-weight: 700; }
.isw-field--wide { grid-column: 1 / -1; }
.isw-input { font: inherit; font-weight: 400; font-size: 17px; height: 56px; box-sizing: border-box; padding: 0 20px; border: 0; border-radius: var(--radius-xs); background: var(--white); color: var(--ink-800); }
textarea.isw-input { height: auto; padding: 16px 20px; resize: vertical; }

/* ---------- Footer ---------- */
.isw-footer { background: var(--red-500); color: var(--white); }
.isw-footer__inner { max-width: var(--container); margin: 0 auto; padding: 72px clamp(20px, 5vw, 80px) 36px; }
.isw-footer__top { display: flex; flex-wrap: wrap; gap: var(--space-40) var(--space-64); justify-content: space-between; align-items: flex-end; }
.isw-footer__top img { height: 34px; width: auto; display: block; }
.isw-footer__address { margin: 18px 0 0; font-size: 15px; }
.isw-footer__recruit { margin: 0; font-family: var(--font-display); font-size: clamp(22px, 2vw, 28px); font-weight: 800; line-height: 1.2; }
.isw-footer__bottom { display: flex; flex-wrap: wrap; gap: 12px 28px; justify-content: space-between; margin-top: 56px; padding-top: var(--space-20); border-top: 1px solid var(--red-200); font-size: 14px; }
.isw-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.isw-footer a { color: var(--white); }

/* ---------- Motion safety ---------- */
@media (prefers-reduced-motion: reduce) {
  [class*="isw-"], [class*="isw-"]::before, [class*="isw-"]::after { animation: none !important; transition: none !important; }
  .isw-comet, .isw-pulse { display: none; }
}
