/* All presentation rules are scoped to #imx; shared navigation, inquiry and footer use their own styles. */
.imgmap-experience-page { background: #f5f5f1; }
#imx { --imx-blue: #2448ef; --imx-ink: #151619; --imx-paper: #f5f5f1; --imx-acid: #dfff5c; --imx-header: 86px; color: var(--imx-ink); background: var(--imx-paper); font-family: 'Pretendard Variable', Pretendard, Arial, sans-serif; line-height: 1.5; overflow: clip; -webkit-font-smoothing: antialiased; }
#imx *, #imx *::before, #imx *::after { box-sizing: border-box; }
#imx :is(h1,h2,h3,p,figure) { margin: 0; }
#imx :is(h1,h2,h3) { font-weight: 650; letter-spacing: -.055em; line-height: 1.12; text-wrap: balance; }
#imx :is(h1,h2,h3,p,summary) { word-break: keep-all; overflow-wrap: anywhere; }
#imx p { text-wrap: pretty; }
#imx em, #imx i { font-style: normal; }
#imx a { color: inherit; text-decoration: none; }
#imx button { font: inherit; cursor: pointer; color: inherit; }
#imx button, #imx a { -webkit-tap-highlight-color: transparent; }
#imx :is(a,button,summary):focus-visible { outline: 3px solid #fe672c; outline-offset: 6px; }
#imx img { display: block; width: 100%; height: auto; }
#imx code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; overflow: auto; }
#imx section { padding: 0; }
#imx [id] { scroll-margin-top: 110px; }
.imgmap-experience-page #contact { scroll-margin-top: 100px; }
#imx .imx-shell { width: min(100% - 96px, 1200px); margin-inline: auto; }
#imx .imx-kicker { font-size: 14px; font-weight: 650; letter-spacing: .09em; line-height: 1.5; }
#imx .imx-button { display: inline-flex; align-items: center; justify-content: space-between; min-height: 58px; gap: 40px; padding: 15px 25px; border-radius: 2px; font-size: 16px; font-weight: 650; transition: transform .25s, background .25s; }
#imx .imx-button:hover { transform: translateY(-4px); }
#imx .imx-button > span { font-size: 25px; font-weight: 400; line-height: 1; }
#imx .imx-button--blue { color: white; background: var(--imx-blue); }
#imx .imx-button--blue:hover { background: #1832bd; }
#imx .imx-button--ink { color: white; background: var(--imx-ink); }
#imx .imx-text-link { display: inline-flex; align-items: center; gap: 30px; font-size: 15px; font-weight: 600; padding-bottom: 9px; border-bottom: 1px solid currentColor; }
#imx .imx-text-link > span { font-size: 22px; }
#imx .imx-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; }
#imx .imx-section-head h2 { font-size: clamp(38px, 4.3vw, 62px); margin-top: 20px; }
#imx .imx-section-head > p { max-width: 390px; font-size: 16px; line-height: 1.8; color: #676971; padding-bottom: 3px; }
#imx .imx-section-head em { color: var(--imx-blue); }
#imx .imx-stage { position: relative; }

/* Opening: type pulls apart as the photograph unfolds into an interactive canvas. */
#imx .imx-hero { position: relative; }
#imx .imx-hero-stage { height: max(740px, calc(100svh - var(--imx-header))); max-height: 1000px; overflow: clip; background: radial-gradient(ellipse at 70% 60%, #dce5fc 0, transparent 57%), var(--imx-paper); }
#imx .imx-product { height: 72px; display: flex; justify-content: space-between; align-items: center; position: relative; z-index: 5; border-bottom: 1px solid #171a211c; }
#imx .imx-wordmark { display: flex; align-items: center; gap: 9px; font-size: 17px; font-weight: 750; letter-spacing: -.04em; }
#imx .imx-wordmark > span:last-child { font-size: 14px; font-weight: 450; letter-spacing: 0; padding-left: 6px; color: #686a73; }
#imx .imx-map-icon { width: 19px; height: 19px; border: 1.7px solid var(--imx-blue); position: relative; }
#imx .imx-map-icon::before, #imx .imx-map-icon::after { content: ''; position: absolute; background: var(--imx-blue); width: 5px; height: 5px; }
#imx .imx-map-icon::before { top: -3px; left: -3px; }
#imx .imx-map-icon::after { bottom: -3px; right: -3px; }
#imx .imx-product-link { font-size: 14px; display: flex; gap: 30px; align-items: center; }
#imx .imx-product-link > span { font-size: 22px; }
#imx .imx-hero-type { position: relative; z-index: 2; padding-top: clamp(22px,4vh,55px); pointer-events: none; }
#imx .imx-hero-type > span { display: block; font-family: Arial, sans-serif; font-size: clamp(100px, 12.1vw, 180px); line-height: .88; font-weight: 900; letter-spacing: -.085em; white-space: nowrap; }
#imx .imx-hero-type > span:nth-child(2) { font-size: clamp(82px, 10.1vw, 149px); margin-top: 2px; }
#imx .imx-hero-type i { color: var(--imx-blue); }
#imx .imx-hero-copy { position: relative; z-index: 4; padding-top: 38px; pointer-events: none; }
#imx .imx-hero-copy h1 { font-size: clamp(28px, 2.65vw, 39px); line-height: 1.23; margin: 12px 0 15px; }
#imx .imx-hero-copy .imx-kicker { font-size: 14px; letter-spacing: .06em; }
#imx .imx-hero-copy p:not(.imx-kicker) { font-size: 14px; line-height: 1.75; color: #666b77; }
#imx .imx-hero-copy .imx-button { margin-top: 23px; pointer-events: auto; min-height: 52px; }
#imx .imx-free-note { display: block; margin-top: 13px; font-size: 14px; color: #747681; }
#imx .imx-free-note + .imx-free-note { margin-top: 4px; }
#imx .imx-hero-art { position: absolute; z-index: 3; width: min(54vw, 790px); left: 47%; top: 30%; transform: rotate(-7deg); transform-origin: center; }
#imx .imx-image-frame { border: 8px solid white; box-shadow: 0 30px 85px #12376629, 0 2px 8px #12376612; position: relative; }
#imx .imx-image-frame > img { width: 100%; aspect-ratio: 1.5; object-fit: cover; }
#imx .imx-frame-label { position: absolute; top: 18px; left: 18px; font-size: 14px; letter-spacing: .1em; font-weight: 650; color: #1b354f; }
#imx .imx-area { display: block; position: absolute; border: 2px solid var(--imx-acid); background: #dfff5c13; opacity: 0; transform-origin: top left; }
#imx .imx-area::after, #imx .imx-area::before { content: ''; width: 7px; height: 7px; background: white; border: 1px solid var(--imx-blue); position: absolute; }
#imx .imx-area::before { top: -4px; left: -4px; }
#imx .imx-area::after { bottom: -4px; right: -4px; }
#imx .imx-area > b { font-size: 14px; color: #17191e; background: var(--imx-acid); font-weight: 600; padding: 4px 7px; position: absolute; left: -2px; top: -26px; white-space: nowrap; }
#imx .imx-area--chair { left: 8.5%; top: 35%; width: 43%; height: 47%; }
#imx .imx-area--lamp { left: 60%; top: 33%; width: 14%; height: 24%; }
#imx .imx-art-cursor { position: absolute; top: 72%; left: 52%; display: flex; align-items: end; opacity: 0; }
#imx .imx-art-cursor svg { width: 28px; overflow: visible; fill: #dfff5c; stroke: #142331; stroke-width: 1.5px; }
#imx .imx-art-cursor b { background: var(--imx-acid); padding: 6px 9px; font-size: 14px; font-weight: 650; white-space: nowrap; }
#imx .imx-float-tag { position: absolute; background: white; color: var(--imx-ink); padding: 12px 16px; box-shadow: 0 10px 35px #11346616; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 550; white-space: nowrap; }
#imx .imx-float-tag > span { background: var(--imx-blue); color: white; display: grid; place-items: center; width: 24px; height: 24px; font-size: 16px; }
#imx .imx-float-tag--one { top: -25px; right: 14%; transform: rotate(10deg); }
#imx .imx-float-tag--two { bottom: -20px; left: 5%; transform: rotate(3deg); }
#imx .imx-float-tag--two > span { background: var(--imx-acid); color: var(--imx-ink); }
#imx .imx-hero-bottom { position: absolute; left: 0; right: 0; bottom: 20px; display: flex; justify-content: space-between; font-size: 14px; font-weight: 600; letter-spacing: .12em; }
#imx .imx-hero-bottom > span:first-child > span { display: inline-block; font-size: 19px; margin-left: 15px; }
#imx .imx-hero-end { position: absolute; z-index: 4; text-align: center; bottom: 33px; left: 0; width: 100%; opacity: 0; pointer-events: none; }
#imx .imx-hero-end > span { display: block; font-size: 14px; }
#imx .imx-hero-end > b { display: block; font-family: Arial,sans-serif; font-weight: 900; font-size: clamp(25px,4.4vw,64px); letter-spacing: -.06em; line-height: 1.1; margin-top: 5px; }

/* Scroll-lit statement. */
#imx .imx-statement { background: #16171a; color: var(--imx-paper); }
#imx .imx-statement-stage { padding-block: 80px; min-height: 730px; display: flex; flex-direction: column; justify-content: center; }
#imx .imx-statement .imx-kicker { color: #93959b; }
#imx .imx-statement h2 { font-size: clamp(54px, 7.3vw, 108px); line-height: 1.22; margin-top: 40px; }
#imx .imx-statement h2 > span { display: block; color: #f5f5f1; }
#imx .imx-statement h2 > .imx-acid { color: var(--imx-acid); }
#imx .imx-statement-foot { display: flex; align-items: flex-end; justify-content: space-between; margin-top: 40px; }
#imx .imx-statement-foot p { font-size: 17px; line-height: 1.85; color: #a8aab2; }
#imx .imx-connection-mark { font-family: Arial,sans-serif; color: var(--imx-acid); font-size: 155px; line-height: .8; }
#imx .imx-coordinate { position: absolute; right: 0; top: 27%; font-family: monospace; font-size: 14px; color: #a5a7ae; writing-mode: vertical-rl; }

/* A pinned workbench changes from photograph to selected area to generated code. */
#imx .imx-workflow { background: #eeefea; }
#imx .imx-workflow-stage { padding-block: 72px; }
#imx .imx-workbench { margin-top: 36px; border: 1px solid #1b1f281f; border-radius: 10px; overflow: hidden; background: #fff; box-shadow: 0 15px 50px #15284708; }
#imx .imx-workbench-bar { display: flex; align-items: center; justify-content: space-between; height: 38px; padding: 0 18px; border-bottom: 1px solid #1b1f2814; font-size: 14px; font-weight: 550; letter-spacing: .05em; }
#imx .imx-workbench-bar > span:first-child { display: flex; gap: 5px; }
#imx .imx-workbench-bar i { display: inline-block; width: 6px; height: 6px; background: #c5c7d0; border-radius: 50%; }
#imx .imx-workbench-status { color: var(--imx-blue); min-width: 92px; text-align: right; }
#imx .imx-workbench-body { display: grid; grid-template-columns: 44px minmax(0,1fr) 260px; grid-template-rows: minmax(0,1fr); height: 335px; }
#imx .imx-tools { padding-block: 20px; display: flex; align-items: center; flex-direction: column; gap: 10px; border-right: 1px solid #1b1f2814; }
#imx .imx-tools span { font-size: 22px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 4px; }
#imx .imx-tools span.is-selected { background: var(--imx-blue); color: white; }
#imx .imx-canvas { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0; overflow: hidden; padding: 18px 34px 26px; background: radial-gradient(#b5b9c4 .75px, transparent .75px) 0 0 / 12px 12px, #f1f3f7; }
#imx .imx-work-image { flex: none; width: auto; height: 100%; max-width: 100%; max-height: 100%; min-height: 0; position: relative; aspect-ratio: 1.5; }
#imx .imx-work-image > img { width: 100%; height: 100%; object-fit: contain; }
#imx .imx-work-selection { position: absolute; top: 35%; left: 8.5%; width: 43%; height: 47%; border: 2px solid var(--imx-blue); background: #2448ef13; opacity: 0; transform-origin: top left; }
#imx .imx-work-selection > b { position: absolute; top: -23px; left: -2px; background: var(--imx-blue); color: #fff; font-size: 14px; font-weight: 500; padding: 2px 7px; white-space: nowrap; }
#imx .imx-work-selection > i { position: absolute; width: 6px; height: 6px; background: white; border: 1px solid var(--imx-blue); }
#imx .imx-work-selection > i:nth-of-type(1) { top: -4px; left: -4px; }
#imx .imx-work-selection > i:nth-of-type(2) { top: -4px; right: -4px; }
#imx .imx-work-selection > i:nth-of-type(3) { bottom: -4px; left: -4px; }
#imx .imx-work-selection > i:nth-of-type(4) { bottom: -4px; right: -4px; }
#imx .imx-work-pointer { position: absolute; left: 49%; top: 76%; font-size: 34px; line-height: 1; text-shadow: 2px 2px white; color: var(--imx-blue); opacity: 0; }
#imx .imx-import-tag { position: absolute; bottom: 8px; font-family: monospace; font-size: 14px; color: #6d7482; }
#imx .imx-import-tag b { margin-left: 10px; color: var(--imx-blue); }
#imx .imx-inspector { position: relative; padding: 28px 22px; border-left: 1px solid #1b1f2814; }
#imx .imx-inspector h3 { font-size: 20px; margin: 15px 0 20px; }
#imx .imx-inspector .imx-kicker { color: #858894; font-size: 14px; }
#imx .imx-inspector-link label { display: block; font-size: 14px; color: #737985; margin-bottom: 7px; }
#imx .imx-inspector-link > code { display: block; border: 1px solid #e0e3eb; border-radius: 4px; padding: 9px; font-size: 14px; color: #536388; }
#imx .imx-setting-check { display: block; font-size: 14px; color: var(--imx-blue); margin-top: 11px; }
#imx .imx-coords { display: flex; gap: 9px; padding: 17px 0; border-bottom: 1px solid #eee; font-size: 14px; color: #777d8b; }
#imx .imx-coords b { margin-left: 3px; color: #414857; }
#imx .imx-inspector-link > p:last-child { margin-top: 17px; font-size: 14px; color: #858894; line-height: 1.6; }
#imx .imx-inspector-code { position: absolute; inset: 0; padding: 25px 22px; background: #171a24; color: white; opacity: 0; transform: translateX(20px); pointer-events: none; }
#imx .imx-inspector-code pre { margin: 0; font-size: 14px; line-height: 1.7; }
#imx .imx-inspector-code code { white-space: pre; display: block; color: #ced5ea; }
#imx .imx-inspector-code code span { color: var(--imx-acid); }
#imx .imx-code-ready { display: inline-block; color: var(--imx-acid); border: 1px solid #dfff5c45; padding: 7px 10px; margin-top: 14px; font-size: 14px; }
#imx .imx-demo-caption { padding: 7px; text-align: center; font-size: 14px; color: #7e8491; border-top: 1px solid #e5e6ec; }
#imx .imx-step-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; margin-top: 30px; }
#imx .imx-step { position: relative; text-align: left; display: flex; gap: 16px; padding: 17px 0 10px; border: 0; background: transparent; border-top: 2px solid #d4d6d4; }
#imx .imx-step > span { color: #9a9e9c; font-size: 14px; font-weight: 550; }
#imx .imx-step strong { display: block; font-size: 17px; font-weight: 600; }
#imx .imx-step p { margin-top: 6px; font-size: 14px; color: #7c827c; line-height: 1.6; }
#imx .imx-step > i { position: absolute; top: -2px; left: 0; width: 100%; height: 2px; background: var(--imx-blue); transform: scaleX(0); transform-origin: left; transition: transform .5s ease; }
#imx .imx-step.is-active > i { transform: scaleX(1); }
#imx .imx-step.is-active > span, #imx .imx-step.is-active strong { color: var(--imx-blue); }

/* Clickable demonstration. */
#imx .imx-play { background: var(--imx-blue); color: white; padding-block: 112px; }
#imx .imx-play .imx-section-head > p { color: #d3dcff; }
#imx .imx-play-layout { display: grid; grid-template-columns: minmax(0,1.75fr) minmax(0,1fr); margin-top: 52px; }
#imx .imx-play-progress { display: none; gap: 8px; margin-top: 24px; width: 100%; }
#imx.imx-motion .imx-play-progress { display: flex; }
#imx .imx-play-progress > span { flex: 1; height: 2px; background: #ffffff35; overflow: hidden; }
#imx .imx-play-progress i { display: block; height: 100%; background: var(--imx-acid); transform: scaleX(0); transform-origin: left; }
#imx .imx-play-photo { position: relative; align-self: start; }
#imx .imx-play-photo > img { aspect-ratio: 1.5; object-fit: cover; }
#imx .imx-hotspot { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%,-50%); width: 44px; height: 44px; border: 1px solid #fff8; background: #fff; color: #172555; border-radius: 50%; display: grid; place-items: center; font-size: 14px; font-weight: 700; box-shadow: 0 0 0 7px #ffffff30; transition: background .2s, box-shadow .2s; }
#imx .imx-hotspot.is-active { background: var(--imx-acid); border-color: var(--imx-acid); box-shadow: 0 0 0 7px #dfff5c44; }
#imx .imx-hotspot > span { position: absolute; left: 50%; top: calc(100% + 13px); transform: translateX(-50%); font-size: 14px; letter-spacing: .05em; color: var(--imx-ink); padding: 5px 8px; white-space: nowrap; background: var(--imx-acid); opacity: 0; transition: opacity .2s; }
#imx .imx-hotspot.is-active > span, #imx .imx-hotspot:hover > span { opacity: 1; }
#imx .imx-photo-label { position: absolute; left: 18px; bottom: 15px; font-size: 14px; font-weight: 600; letter-spacing: .06em; color: #122452; }
#imx .imx-play-detail { padding: 12px 0 8px 46px; }
#imx .imx-detail-number { display: block; color: #93a7ff; font-family: Arial,sans-serif; font-size: 78px; line-height: .9; letter-spacing: -.07em; font-weight: 700; margin-bottom: 22px; }
#imx .imx-play-detail .imx-kicker { font-size: 14px; color: #c9d3ff; letter-spacing: 0; }
#imx .imx-detail-title { font-size: clamp(24px,2.4vw,35px); line-height: 1.25; margin-top: 13px; }
#imx .imx-detail-description { font-size: 14px; color: #d4dcff; line-height: 1.8; margin-top: 15px; }
#imx .imx-link-preview { margin-top: 22px; padding: 13px 32px 13px 15px; border: 1px solid #ffffff50; position: relative; }
#imx .imx-link-preview > span { display: block; font-size: 14px; letter-spacing: .06em; color: #b6c5ff; }
#imx .imx-link-preview > code { display: block; font-size: 14px; margin-top: 5px; }
#imx .imx-link-preview > b { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 20px; font-weight: 400; }
#imx .imx-demo-note { display: block; font-size: 14px; color: #c4cfff; margin-top: 9px; }
#imx .imx-play-detail .imx-text-link { margin-top: 23px; font-size: 14px; }

/* Horizontal stories retain ordinary scroll on compact and reduced-motion layouts. */
#imx .imx-possibilities { background: var(--imx-paper); }
#imx .imx-possibilities-stage { padding-block: 80px; overflow: clip; }
#imx .imx-gallery-count { font-family: Arial,sans-serif; font-size: 28px; letter-spacing: -.03em; font-weight: 700; }
#imx .imx-gallery-count i { font-size: 14px; color: #909498; font-weight: 400; }
#imx .imx-cases-track { display: flex; gap: 28px; margin-top: 38px; padding-inline: max(48px,calc((100vw - 1200px)/2)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
#imx .imx-case { display: grid; grid-template-columns: 1.25fr 1fr; background: #e6e9e3; flex: 0 0 min(79vw,1080px); min-width: 0; height: 340px; overflow: hidden; scroll-snap-align: center; }
#imx .imx-case-art, #imx .imx-guide-art { position: relative; overflow: hidden; }
#imx .imx-case-art > img, #imx .imx-guide-art > img { height: 100%; object-fit: cover; }
#imx .imx-case-art > img { object-position: 28% center; }
#imx .imx-case-sticker { position: absolute; left: 20px; bottom: 20px; background: var(--imx-acid); color: #171d20; font-family: Arial,sans-serif; font-weight: 800; font-size: 32px; letter-spacing: -.055em; line-height: 1; padding: 14px 18px; transform: rotate(-8deg); }
#imx .imx-case-target { display: grid; place-items: center; position: absolute; top: 39%; left: 46%; width: 40px; height: 40px; background: white; border-radius: 50%; font-size: 26px; box-shadow: 0 0 0 8px #ffffff40; }
#imx .imx-case-copy { padding: 38px 34px; display: flex; flex-direction: column; justify-content: center; }
#imx .imx-case-copy > span { font-size: 14px; letter-spacing: .08em; font-weight: 650; }
#imx .imx-case-copy h3 { font-size: clamp(25px,2.75vw,40px); line-height: 1.25; margin-top: 26px; }
#imx .imx-case-copy p { font-size: 14px; line-height: 1.8; color: #636c66; margin-top: 22px; }
#imx .imx-case--campaign { background: #14151a; color: white; }
#imx .imx-case--campaign .imx-case-copy p { color: #a8acb6; }
#imx .imx-campaign-art { background: #dfff5c; color: #192024; padding: 26px; display: flex; flex-direction: column; justify-content: space-between; }
#imx .imx-campaign-art > span { font-size: 14px; letter-spacing: .08em; }
#imx .imx-campaign-art > strong { font-family: Arial,sans-serif; font-size: clamp(48px,5.3vw,76px); line-height: .85; letter-spacing: -.08em; font-weight: 900; }
#imx .imx-campaign-art > strong > i { -webkit-text-stroke: 1.5px #192024; color: transparent; }
#imx .imx-campaign-art > div { display: flex; justify-content: space-between; border-top: 1px solid #19202445; padding-top: 13px; gap: 8px; }
#imx .imx-campaign-art > div > span { font-size: 14px; }
#imx .imx-case--guide { background: #dce7fc; }
#imx .imx-guide-art > img { object-position: center 52%; }
#imx .imx-guide-art > span { position: absolute; left: 25px; top: 25px; color: white; font-family: Arial,sans-serif; font-size: 32px; font-weight: 750; letter-spacing: -.055em; line-height: .95; }
#imx .imx-guide-point { position: absolute; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid #fff9; background: #2448ef; color: white; font-size: 16px; transform: translate(-50%, -50%); }
#imx .imx-guide-point--one { left: 38%; top: 55%; }
#imx .imx-guide-point--two { left: 76%; top: 29%; }
#imx .imx-guide-point--three { left: 68%; top: 72%; }
#imx .imx-case-controls { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-top: 28px; }
#imx .imx-case-controls p { font-size: 14px; color: #777b80; }
#imx .imx-case-controls > div { display: flex; gap: 8px; }
#imx .imx-case-controls button { width: 38px; height: 38px; border: 1px solid #c9cbd0; border-radius: 50%; background: transparent; font-size: 20px; }
#imx .imx-case-controls button:hover { background: #e1e4e9; }
#imx .imx-case-controls button:disabled { opacity: .3; cursor: default; }
#imx .imx-case-progress { display: block; margin-top: 16px; height: 2px; width: 100%; background: #dadcd7; }
#imx .imx-case-progress > i { width: 33.333%; display: block; height: 100%; background: var(--imx-blue); transform-origin: left; }

#imx .imx-finale { position: relative; padding-block: 95px; background: var(--imx-acid); overflow: clip; }
#imx .imx-finale h2 { position: relative; margin-top: 45px; font-family: Arial,sans-serif; font-size: clamp(94px,16.6vw,240px); font-weight: 900; line-height: .8; letter-spacing: -.085em; }
#imx .imx-finale h2 > span { display: inline-block; color: var(--imx-blue); }
#imx .imx-finale-cursor { position: absolute; width: 19%; right: 0; bottom: 0; transform: rotate(-10deg); fill: var(--imx-blue); stroke: var(--imx-acid); stroke-width: 2px; filter: drop-shadow(10px 12px 0 #161719); }
#imx .imx-finale-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 65px; }
#imx .imx-finale-bottom p { font-size: 20px; line-height: 1.7; }
#imx .imx-finale-bottom > span { font-size: 14px; letter-spacing: .07em; }
#imx .imx-faq { display: grid; grid-template-columns: 1fr 1.6fr; gap: 70px; padding-block: 110px; }
#imx .imx-faq h2 { font-size: 40px; margin-top: 20px; line-height: 1.2; }
#imx .imx-faq .imx-text-link { margin-top: 28px; font-size: 14px; }
#imx .imx-faq-list { border-top: 1px solid #cfd2d5; }
#imx .imx-faq details { border-bottom: 1px solid #cfd2d5; }
#imx .imx-faq summary { cursor: pointer; display: flex; align-items: center; gap: 18px; padding: 23px 0; font-size: 16px; font-weight: 550; list-style: none; line-height: 1.6; }
#imx .imx-faq summary::-webkit-details-marker { display: none; }
#imx .imx-faq summary > span { font-size: 14px; color: #8b8e94; }
#imx .imx-faq summary > b { margin-left: auto; font-size: 23px; font-weight: 350; flex: 0 0 20px; text-align: center; transition: transform .25s; }
#imx .imx-faq details[open] summary > b { transform: rotate(45deg); }
#imx .imx-faq details[open] summary { color: var(--imx-blue); }
#imx .imx-faq details > p { padding: 0 35px 24px; font-size: 14px; color: #6c727a; line-height: 1.9; }

/* Motion is opt-in after geometry checks; content remains complete without JavaScript. */
#imx .imx-hero.is-pinned { height: 260svh; }
#imx .imx-hero.is-pinned > .imx-stage { position: sticky; top: var(--imx-header); height: calc(100svh - var(--imx-header)); max-height: none; }
#imx .imx-statement.is-pinned { height: 200svh; }
#imx .imx-statement.is-pinned > .imx-stage { position: sticky; top: var(--imx-header); height: calc(100svh - var(--imx-header)); min-height: 0; padding-block: 50px; }
#imx .imx-workflow.is-pinned { height: 340svh; }
#imx .imx-workflow.is-pinned > .imx-stage { position: sticky; top: var(--imx-header); height: calc(100svh - var(--imx-header)); padding-block: 32px; display: flex; flex-direction: column; justify-content: center; }
#imx .imx-workflow.is-pinned .imx-section-head h2 { font-size: clamp(34px,3.6vw,51px); margin-top: 10px; }
#imx .imx-workflow.is-pinned .imx-workbench { margin-top: 25px; flex-shrink: 0; }
#imx .imx-workflow.is-pinned .imx-workbench-body { height: clamp(245px,34svh,340px); }
#imx .imx-workflow.is-pinned .imx-step-list { margin-top: 20px; }
#imx .imx-play.is-pinned { height: 310svh; padding-block: 0; }
#imx .imx-play.is-pinned .imx-play-heading { padding-block: 70px 30px; }
#imx .imx-play.is-pinned > .imx-stage { position: sticky; top: var(--imx-header); height: calc(100svh - var(--imx-header)); display: flex; flex-direction: column; justify-content: center; padding-block: 30px; }
#imx .imx-play.is-pinned .imx-play-layout { width: 100%; margin-top: 0; }
#imx .imx-possibilities.is-pinned { height: 250svh; }
#imx .imx-possibilities.is-pinned > .imx-stage { position: sticky; top: var(--imx-header); height: calc(100svh - var(--imx-header)); padding-block: 40px; display: flex; flex-direction: column; justify-content: center; }
#imx .imx-possibilities.is-pinned .imx-section-head h2 { font-size: clamp(34px,3.6vw,51px); margin-top: 12px; }
#imx .imx-possibilities.is-pinned .imx-cases-track { overflow: visible; scroll-snap-type: none; margin-top: 30px; }
#imx .imx-possibilities.is-pinned .imx-case { height: clamp(260px,36svh,360px); }
#imx .imx-possibilities.is-pinned .imx-case-controls { margin-top: 20px; }
#imx.imx-motion .imx-reveal { opacity: 0; transform: translateY(42px); transition: opacity .7s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
#imx.imx-motion .imx-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (min-width: 701px) and (max-height: 820px) {
    #imx .imx-hero.is-pinned .imx-hero-type { padding-top: 25px; }
    #imx .imx-hero.is-pinned .imx-hero-type > span { font-size: min(10.5vw,145px); }
    #imx .imx-hero.is-pinned .imx-hero-type > span:nth-child(2) { font-size: min(8.8vw,125px); }
    #imx .imx-hero.is-pinned .imx-hero-copy { padding-top: 22px; }
    #imx .imx-hero.is-pinned .imx-hero-copy h1 { font-size: 29px; margin-block: 7px 10px; }
    #imx .imx-hero.is-pinned .imx-hero-copy .imx-button { margin-top: 17px; }
    #imx .imx-hero.is-pinned .imx-free-note { margin-top: 9px; }
    #imx .imx-statement.is-pinned h2 { font-size: min(6.6vw,84px); margin-top: 25px; }
    #imx .imx-statement.is-pinned .imx-statement-foot { margin-top: 25px; }
    #imx .imx-workflow.is-pinned .imx-inspector { padding: 18px; }
    #imx .imx-workflow.is-pinned .imx-inspector-code { padding: 18px; }
    #imx .imx-workflow.is-pinned .imx-inspector h3 { font-size: 17px; margin-block: 9px 13px; }
    #imx .imx-workflow.is-pinned .imx-inspector-link > p:last-child { display: none; }
    #imx .imx-workflow.is-pinned .imx-inspector-code pre { font-size: 14px; line-height: 1.5; }
}
@media (max-width: 1050px) {
    #imx .imx-shell { width: calc(100% - 64px); }
    #imx .imx-hero-type > span { font-size: 13vw; }
    #imx .imx-hero-type > span:nth-child(2) { font-size: 10.7vw; }
    #imx .imx-hero-art { top: 32%; width: 61vw; left: 44%; }
    #imx .imx-section-head > p { font-size: 14px; max-width: 290px; }
    #imx .imx-workbench-body { grid-template-columns: 36px minmax(0,1fr) 220px; }
    #imx .imx-canvas { padding-inline: 15px; }
    #imx .imx-inspector { padding: 20px 17px; }
    #imx .imx-inspector-code { padding: 20px 17px; }
    #imx .imx-step-list { gap: 20px; }
    #imx .imx-step { gap: 10px; }
    #imx .imx-step strong { font-size: 15px; }
    #imx .imx-step p { font-size: 14px; }
    #imx .imx-play-layout { grid-template-columns: 1.45fr 1fr; }
    #imx .imx-play-detail { padding: 0 0 0 28px; }
    #imx .imx-detail-number { font-size: 52px; margin-bottom: 20px; }
    #imx .imx-play-photo { align-self: stretch; }
    #imx .imx-play-photo > img { height: 100%; object-fit: cover; }
    #imx .imx-cases-track { padding-inline: 32px; }
    #imx .imx-case { flex-basis: 85vw; }
    #imx .imx-case-copy { padding: 24px; }
    #imx .imx-case-copy p { font-size: 14px; }
    #imx .imx-finale-bottom > span { display: none; }
    #imx .imx-faq { gap: 40px; }
    #imx .imx-faq h2 { font-size: 34px; }
}
@media (max-width: 700px) {
    #imx .imx-shell { width: calc(100% - 40px); }
    #imx .imx-kicker { font-size: 14px; letter-spacing: .06em; }
    #imx .imx-section-head { display: block; }
    #imx .imx-section-head h2 { font-size: 38px; margin-top: 15px; line-height: 1.18; }
    #imx .imx-section-head > p { margin-top: 22px; max-width: 100%; font-size: 14px; line-height: 1.8; }
    #imx .imx-button { min-height: 52px; padding: 13px 20px; font-size: 14px; }
    #imx .imx-product { height: 56px; }
    #imx .imx-wordmark { font-size: 14px; }
    #imx .imx-wordmark > span:last-child { display: none; }
    #imx .imx-product-link { font-size: 14px; gap: 8px; }
    #imx .imx-product-link > span { font-size: 18px; }
    #imx .imx-hero-stage { height: 780px; min-height: 0; }
    #imx .imx-hero-type { padding-top: 24px; }
    #imx .imx-hero-type > span { font-size: 25vw; line-height: .84; }
    #imx .imx-hero-type > span:nth-child(2) { font-size: 15vw; margin-top: 10px; }
    #imx .imx-hero-art { width: 76%; left: 16%; top: 35%; transform: rotate(-7deg); }
    #imx .imx-image-frame { border-width: 5px; }
    #imx .imx-frame-label { font-size: 14px; top: 10px; left: 10px; }
    #imx .imx-float-tag { padding: 7px 9px; font-size: 14px; gap: 6px; }
    #imx .imx-float-tag > span { width: 19px; height: 19px; font-size: 14px; }
    #imx .imx-float-tag--one { top: -19px; right: 3%; }
    #imx .imx-float-tag--two { bottom: 10px; left: -12px; }
    #imx .imx-hero-copy { position: absolute; left: 0; right: 0; top: 63%; padding-top: 0; }
    #imx .imx-hero-copy .imx-kicker { display: none; }
    #imx .imx-hero-copy h1 { font-size: 27px; margin: 0 0 11px; }
    #imx .imx-hero-copy h1 br { display: none; }
    #imx .imx-hero-copy p:not(.imx-kicker) { font-size: 14px; }
    #imx .imx-hero-copy .imx-button { margin-top: 20px; gap: 55px; }
    #imx .imx-free-note { margin-top: 10px; font-size: 14px; }
    #imx .imx-hero-bottom { font-size: 14px; bottom: 26px; }
    #imx .imx-hero-bottom > span:last-child { display: none; }
    #imx .imx-hero-end { bottom: 90px; padding-inline: 20px; }
    #imx .imx-hero-end > b { font-size: 8vw; }
    #imx .imx-hero-end > span { font-size: 14px; margin-bottom: 8px; }
    #imx .imx-area > b { font-size: 14px; top: -22px; }
    #imx .imx-art-cursor b { font-size: 14px; }
    #imx .imx-statement-stage { padding-block: 85px; min-height: 590px; }
    #imx .imx-statement h2 { font-size: clamp(39px,10.5vw,69px); margin-top: 40px; line-height: 1.3; }
    #imx .imx-statement-foot { margin-top: 40px; }
    #imx .imx-statement-foot p { font-size: 14px; }
    #imx .imx-connection-mark { font-size: 84px; }
    #imx .imx-coordinate { display: none; }
    #imx .imx-workflow-stage { padding-block: 74px; }
    #imx .imx-workbench { margin-top: 28px; border-radius: 6px; }
    #imx .imx-workbench-bar { padding-inline: 10px; height: 31px; font-size: 14px; }
    #imx .imx-workbench-bar > span:nth-child(2) { font-size: 14px; }
    #imx .imx-workbench-bar > span:first-child { gap: 3px; }
    #imx .imx-workbench-bar i { width: 4px; height: 4px; }
    #imx .imx-workbench-status { min-width: 62px; }
    #imx .imx-workbench-body { grid-template-columns: 29px minmax(0,1fr); grid-template-rows: auto auto; height: auto; }
    #imx .imx-tools { gap: 5px; padding-block: 12px; }
    #imx .imx-tools span { font-size: 18px; width: 23px; height: 23px; }
    #imx .imx-canvas { height: 205px; padding: 16px 18px 23px; }
    #imx .imx-inspector { grid-column: 1 / -1; height: 112px; padding: 16px 17px; border-top: 1px solid #e5e6ec; border-left: 0; }
    #imx .imx-inspector-link { display: grid; grid-template-columns: 1fr 1.35fr; column-gap: 15px; }
    #imx .imx-inspector .imx-kicker { font-size: 14px; }
    #imx .imx-inspector h3 { grid-column: 1; grid-row: 2; font-size: 16px; margin: 6px 0; }
    #imx .imx-inspector-link label { grid-column: 2; grid-row: 1; font-size: 14px; margin-bottom: 4px; }
    #imx .imx-inspector-link > code { grid-column: 2; grid-row: 2; font-size: 14px; padding: 6px; }
    #imx .imx-setting-check { grid-column: 2; grid-row: 3; font-size: 14px; margin-top: 5px; }
    #imx .imx-coords, #imx .imx-inspector-link > p:last-child { display: none; }
    #imx .imx-inspector-code { display: grid; grid-template-columns: 1fr 1.35fr; padding: 13px 17px; column-gap: 15px; }
    #imx .imx-inspector-code h3 { font-size: 15px; margin-top: 3px; }
    #imx .imx-inspector-code pre { grid-column: 2; grid-row: 1 / 4; font-size: 14px; line-height: 1.5; align-self: center; }
    #imx .imx-code-ready { align-self: start; margin-top: 3px; font-size: 14px; padding: 3px 5px; justify-self: start; }
    #imx .imx-demo-caption { font-size: 14px; padding: 5px; }
    #imx .imx-step-list { gap: 12px; margin-top: 23px; }
    #imx .imx-step { display: block; padding-top: 12px; }
    #imx .imx-step > span { font-size: 14px; }
    #imx .imx-step strong { margin-top: 5px; font-size: 14px; line-height: 1.5; }
    #imx .imx-step p { display: none; }
    #imx .imx-play { padding-block: 75px; }
    #imx .imx-play-layout { grid-template-columns: 1fr; margin-top: 30px; }
    #imx .imx-play-photo { aspect-ratio: 1.5; }
    #imx .imx-play-photo > img { height: auto; }
    #imx .imx-hotspot { width: 32px; height: 32px; font-size: 14px; box-shadow: 0 0 0 5px #ffffff30; }
    #imx .imx-hotspot.is-active { box-shadow: 0 0 0 5px #dfff5c44; }
    #imx .imx-hotspot > span { font-size: 14px; top: calc(100% + 9px); padding: 3px 5px; }
    #imx .imx-photo-label { bottom: 10px; left: 10px; font-size: 14px; }
    #imx .imx-play-detail { position: relative; padding: 28px 0 0; }
    #imx .imx-detail-number { position: absolute; right: 0; top: 27px; font-size: 48px; }
    #imx .imx-play-detail .imx-kicker { padding-right: 60px; }
    #imx .imx-detail-title { font-size: 29px; margin-top: 15px; min-height: 73px; }
    #imx .imx-detail-description { font-size: 14px; min-height: 51px; }
    #imx .imx-play-detail .imx-text-link { margin-top: 22px; }
    #imx .imx-possibilities-stage { padding-block: 72px; }
    #imx .imx-possibilities .imx-section-head { position: relative; }
    #imx .imx-possibilities .imx-section-head h2 { font-size: 33px; }
    #imx .imx-gallery-count { display: none; }
    #imx .imx-cases-track { padding-inline: 20px; gap: 16px; margin-top: 30px; }
    #imx .imx-case { grid-template-columns: 1fr; grid-template-rows: 225px 205px; height: 430px; flex-basis: 85vw; }
    #imx .imx-case-art > img { object-position: center 55%; }
    #imx .imx-case-sticker { font-size: 23px; padding: 12px; bottom: 17px; }
    #imx .imx-case-copy { padding: 24px; }
    #imx .imx-case-copy h3 { font-size: 28px; margin-top: 13px; }
    #imx .imx-case-copy p { font-size: 14px; margin-top: 13px; }
    #imx .imx-case-copy p br { display: none; }
    #imx .imx-campaign-art { padding: 20px; }
    #imx .imx-campaign-art > strong { font-size: 54px; }
    #imx .imx-campaign-art > div > span { font-size: 14px; }
    #imx .imx-guide-art > span { top: 18px; left: 18px; font-size: 28px; }
    #imx .imx-guide-point { width: 28px; height: 28px; font-size: 14px; }
    #imx .imx-case-controls { margin-top: 20px; }
    #imx .imx-case-controls p { font-size: 14px; max-width: 60%; }
    #imx .imx-finale { padding-block: 70px; }
    #imx .imx-finale h2 { font-size: 20vw; margin-top: 38px; line-height: .84; white-space: nowrap; }
    #imx .imx-finale-cursor { width: 24%; right: 2%; bottom: 6%; filter: drop-shadow(5px 6px 0 #161719); }
    #imx .imx-finale-bottom { display: block; margin-top: 42px; }
    #imx .imx-finale-bottom p { font-size: 17px; line-height: 1.7; }
    #imx .imx-finale-bottom .imx-button { margin-top: 24px; }
    #imx .imx-faq { display: block; padding-block: 75px; }
    #imx .imx-faq h2 { font-size: 34px; }
    #imx .imx-faq .imx-text-link { margin-top: 22px; }
    #imx .imx-faq-list { margin-top: 36px; }
    #imx .imx-faq summary { font-size: 14px; gap: 10px; padding-block: 20px; }
    #imx .imx-faq details > p { padding: 0 24px 20px; font-size: 14px; }
    #imx .imx-hero.is-pinned { height: 240svh; }
    #imx .imx-hero.is-pinned .imx-hero-stage { height: calc(100svh - var(--imx-header) - 65px); }
    #imx .imx-hero.is-pinned .imx-hero-art { top: 38%; }
    #imx .imx-hero.is-pinned .imx-hero-copy { top: auto; bottom: 46px; }
    #imx .imx-hero.is-pinned .imx-hero-bottom { bottom: 13px; }
    #imx .imx-statement.is-pinned > .imx-stage { height: calc(100svh - var(--imx-header) - 65px); padding-block: 45px; }
    #imx .imx-workflow.is-pinned > .imx-stage { height: calc(100svh - var(--imx-header) - 65px); padding-block: 24px; }
    #imx .imx-workflow.is-pinned .imx-section-head h2 { font-size: 31px; margin-top: 10px; }
    #imx .imx-workflow.is-pinned .imx-section-head > p { font-size: 14px; line-height: 1.6; margin-top: 12px; }
    #imx .imx-workflow.is-pinned .imx-workbench { margin-top: 20px; }
    #imx .imx-workflow.is-pinned .imx-workbench-body { height: auto; }
    #imx .imx-workflow.is-pinned .imx-canvas { height: clamp(155px,21svh,205px); }
    #imx .imx-workflow.is-pinned .imx-step-list { margin-top: 18px; }
    #imx .imx-play.is-pinned { height: 320svh; }
    #imx .imx-play.is-pinned .imx-play-heading { padding-block: 60px 24px; }
    #imx .imx-play.is-pinned > .imx-stage { height: calc(100svh - var(--imx-header) - 65px); padding-block: 18px; }
    #imx .imx-play.is-pinned .imx-play-detail { padding-top: 20px; }
    #imx .imx-play.is-pinned .imx-detail-number { top: 20px; }
    #imx .imx-play.is-pinned .imx-detail-title { font-size: 27px; min-height: 68px; margin-top: 12px; }
    #imx .imx-play.is-pinned .imx-detail-description { margin-top: 10px; }
    #imx .imx-play.is-pinned .imx-link-preview { margin-top: 16px; }
    #imx .imx-play.is-pinned .imx-play-detail .imx-text-link { margin-top: 16px; }
    #imx .imx-play.is-pinned .imx-play-progress { margin-top: 18px; }
    #imx .imx-possibilities.is-pinned > .imx-stage { height: calc(100svh - var(--imx-header) - 65px); padding-block: 20px; }
    #imx .imx-possibilities.is-pinned .imx-section-head h2 { font-size: 30px; margin-top: 10px; }
    #imx .imx-possibilities.is-pinned .imx-cases-track { margin-top: 23px; }
    #imx .imx-possibilities.is-pinned .imx-case { grid-template-rows: minmax(150px,26svh) 176px; height: auto; }
    #imx .imx-possibilities.is-pinned .imx-case-copy { padding: 18px 22px; }
    #imx .imx-possibilities.is-pinned .imx-case-copy h3 { font-size: 25px; margin-top: 11px; }
    #imx .imx-possibilities.is-pinned .imx-case-copy p { font-size: 14px; margin-top: 10px; }
    #imx .imx-possibilities.is-pinned .imx-case-controls { margin-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
    #imx *, #imx *::before, #imx *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
    #imx .imx-hero-art { transform: none; }
}
/* 최소 14px 정리: 좁은 화면에서 장식 요소를 덜고 라벨이 서로 겹치지 않게 한다. */
@media (max-width: 700px) {
    #imx .imx-workbench-bar > span:first-child { display: none; }
    #imx .imx-workbench-bar { letter-spacing: .02em; }
    #imx .imx-workbench-status { min-width: 0; white-space: nowrap; }
    #imx .imx-photo-label { top: 10px; bottom: auto; max-width: 52%; line-height: 1.35; letter-spacing: .02em; }
}
