/* Korean reading scale. This important layer takes precedence over legacy
   page-specific important sizes without changing display/heading typography. */
@layer nf-readability {
 :root{--nf-reading-body:1.125rem;--nf-reading-lead:1.25rem;--nf-reading-detail:1.125rem;--nf-reading-ui:1.125rem;--nf-reading-meta:1rem}
 main p:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)),main dd:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)),main li:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)){font-size:var(--nf-reading-body)!important;line-height:1.75!important;word-break:keep-all;overflow-wrap:anywhere}
 main p:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)) :is(span,b,strong,em,a),main li:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)) :is(span,b,strong,em),main dd:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)) :is(span,b,strong,em){font-size:inherit!important;line-height:inherit!important}
 body :is(.nf-hero-copy>p,.hero .lead,.nf-contact>.nf-container>.nf-section-head>p){font-size:20px!important;line-height:1.7!important}
 body :is(.nf-hero-copy>p,.hero .lead,.nf-contact>.nf-container>.nf-section-head>p) :is(span,b,strong,em){font-size:inherit!important;line-height:inherit!important}
 @media(max-width:700px){
  body :is(.nf-hero-copy>p,.hero .lead,.nf-contact>.nf-container>.nf-section-head>p){font-size:17px!important;line-height:1.7!important}
 }

 main :is(td,th,dt):not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)){font-size:var(--nf-reading-detail)!important;line-height:1.65!important}
 main :is(td,th):not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)) :is(span,b,strong,a){font-size:inherit!important}
 .btn,.nf-tabs button,.nf-text-link,.nf-os-workflow-links a,.owns a,.identity-link,main input,main select,main textarea,main label{font-size:var(--nf-reading-ui)!important;line-height:1.5!important}
 main input,main select,main textarea{min-height:44px}
 .btn{min-height:48px;height:auto;white-space:normal}
 .nf-actions,.cta{flex-wrap:wrap}
 .nf-form .agree label,.nf-form .ck>span{font-size:var(--nf-reading-ui)!important;line-height:1.7!important}
 main small:not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *,.nf-brief-sheet dt,.nf-brief-sheet dd,.nf-storyboard-sheet small)),.nf-form .reqnote,.nf-form .dress-preview-note,.nf-form label :is(span,em),.nf-form .agree :is(p,small),.nf-crumb,.nf-crumb :is(a,span),.nf-hero-caption>span,.nf-consult-source,.nf-consult-source span,.nf-consult-output,.nf-outcome-label,.nf-chips span,.nf-workflow-meta small,.scope li,.role{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
 .nf-case-goal span,.nf-case-store figcaption>span{font-size:var(--nf-reading-meta)!important;line-height:1.6!important;letter-spacing:.025em}
 .nf-eyebrow{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
 .nf-hero-caption>p,.nf-os-build-note,.nf-collab-core figcaption{font-size:var(--nf-reading-detail)!important;line-height:1.75!important}
 .nf-legal :is(td,th){word-break:keep-all!important;overflow-wrap:normal!important}
 .nf-legal .tbl{overflow-x:auto}
 .nf-legal table{min-width:0;width:100%}
 .nf-legal table:has(tr>:nth-child(3)){min-width:560px}
 .nf-legal table :is(td,th):first-child{min-width:110px}
 .nf-legal nav a{font-size:var(--nf-reading-ui)!important;line-height:1.65!important}
 .nf-legal nav a span{font-size:inherit!important}
 .nf-os-owner{font-size:var(--nf-reading-ui)!important}
 .rh-pain-message{font-size:var(--nf-reading-detail)!important;line-height:1.65!important}
 .gnb nav [data-nav],.gnb .mega .t,.gnb .act .btn,.sheet a{font-size:var(--nf-reading-ui)!important;line-height:1.5!important}
 .gnb .mega :is(.d,.grp),.sheet :is(.d,.grp){font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
 .foot a{font-size:var(--nf-reading-ui)!important;line-height:1.65!important}
 .foot .bar,.foot .bar :is(span,a),.foot .co{font-size:var(--nf-reading-meta)!important;line-height:1.65!important}
 /* Labels participate in the reading scale, including newly added components. */
 .dress-hub,.foot-label,.nf-index,.nf-consult-label,.nf-consult-stepno,.nf-diagnosis-caption,.ds-photo-foot>span,.nf-consult-growth figcaption,.tag,.own,.pill,.nf-swatch,.nf-process-top,.nf-process-legend,.nf-process-mobile-meta,.nf-area-tools-label,.nf-shared-tool small,.nf-tool-extend small{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
 .nf-area-agent{font-size:var(--nf-reading-ui)!important;line-height:1.5!important}
 .nf-area-tools small{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
 .nf-tool-brand b{font-size:var(--nf-reading-ui)!important;line-height:1.4!important}
 .nf-area-tools-label,.nf-area-tools small,.nf-shared-tool small,.nf-tool-extend small,.nf-index,.nf-consult-label,.nf-consult-stepno,.nf-diagnosis-caption,.nf-process-mobile-meta,.nf-process-top{color:#48627D!important}
 .foot-label{color:#48627D!important}
 .nf-area-agent{color:#175DBD!important}
 /* Illustration lettering is audited separately at its rendered scale. */
 @media(max-width:760px){
  :root{--nf-reading-body:1.125rem;--nf-reading-lead:1.25rem}
  .nf-actions{gap:12px}
  .nf-actions .btn{padding:13px 16px}
  .scope{flex-wrap:wrap}
  .nf-hero-caption{gap:16px;flex-wrap:wrap}
 }
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

/* Wrap lists between items, never before their middle-dot separator. */
.nf-enum-item{white-space:nowrap}
.nf-page .nf-legal nav a{text-wrap:balance}
/* On phones the icon shares the heading row; prose gets the full card width. */
@media(max-width:480px){
 .nf-page .nf-icon-cards article{display:grid;grid-template-columns:60px minmax(0,1fr);column-gap:18px;row-gap:0}
 .nf-page .nf-icon-cards article>.nf-feature-icon{grid-column:1;grid-row:1}
 .nf-page .nf-icon-cards article>div{display:contents}
 .nf-page .nf-icon-cards h3{grid-column:2;grid-row:1;align-self:center;margin:0}
 .nf-page .nf-icon-cards p{grid-column:1/-1;margin:16px 0 0}
}

/* Text on pale panels uses the panel contrast, not white as an assumed backdrop. */
@layer nf-readability {
 .nf-eyebrow,.nf-crumb,.nf-crumb :is(a,span),.nf-hero-caption>span,.nf-chips span,.nf-campaign-gallery figcaption>span,.nf-swatch code,.nf-process figcaption,.nf-consult-growth figcaption,.nf-merch-product-note :is(span,small),.flow-head .sub,.steps .tag,.scope li{color:#48627D!important}
 .nf-merch-product-note :is(span,b),.nf-campaign-gallery figcaption>span,.nf-swatch code{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
 .nf-consult-phase:nth-child(3) .nf-consult-label{color:#D5E5F8!important}
 .foot .co{opacity:1!important;color:#A4AFBC!important;font-weight:400!important}
 .dress-preview-note a{color:#124EAC!important}
}
/* A short caption beside a tiny thumbnail needs space of its own. */
@media(max-width:760px){.ds-photo-inset{grid-template-columns:1fr!important}.ds-photo-inset>.rh-scene{height:240px!important}.ds-photo-foot{padding:20px 26px 26px!important}.ds-photo-foot>b{font-size:24px!important}}

/* Illustration type follows the object scale: primary concepts lead;
   supporting labels use a quieter 12px rendered target, not the body scale. */
.rh-scene{container-type:inline-size}
.rh-corner-label,.rh-native-eyebrow,.rh-fluency-range,.rh-product-card>div>span,.rh-catalog-inner small,.rh-catalog-inner>div>span,.rh-catalog-bottom,.rh-brand-brief>span,.rh-web-footer>span,.rh-social-output>span,.rh-video-output small,.rh-video-output>div>span{display:none!important}
.rh-native-panel{height:234px;top:22px}
.rh-native-panel>strong{font-size:max(40px,calc(14px / var(--rh-scale,1)));margin-top:0}
.rh-fluency-meter>b{font-size:max(18px,calc(12px / var(--rh-scale,1)));line-height:1.2;color:#48627D}
.rh-native-modules{margin-top:14px}
.rh-native-module{height:58px;flex-direction:column;gap:4px}
.rh-native-module>span{font-size:max(14px,calc(12px / var(--rh-scale,1)));line-height:1.2;color:#175DBD}
.rh-foundation-layer>span,.rh-foundation-layer.l-top>small{font-size:max(18px,calc(12px / var(--rh-scale,1)));letter-spacing:0;color:#405A74}
.rh-foundation-layer.l-top>strong{font-size:max(34px,calc(14px / var(--rh-scale,1)));line-height:1.1}
.rh-scenario-heading,.rh-scenario{font-size:max(18px,calc(12px / var(--rh-scale,1)));letter-spacing:-.02em;color:#405A74}
.rh-scenario{height:38px}
.rh-expansion-core{height:108px}
.rh-expansion-core>strong{font-size:max(32px,calc(14px / var(--rh-scale,1)))}
.rh-product-card b,.rh-browser-bar>span,.rh-merch-badge,.rh-mini-review,.rh-feedback-label{font-size:max(18px,calc(12px / var(--rh-scale,1)));color:#405A74;line-height:1.2}
.rh-browser-bar{min-height:38px}.rh-catalog-inner b{font-size:max(20px,calc(12px / var(--rh-scale,1)))}
.rh-mini-review{left:510px;top:270px;gap:8px}.rh-mini-review img{width:28px;height:28px}
.rh-feedback-label{left:155px;top:300px}
.rh-loop-node{font-size:max(18px,calc(12px / var(--rh-scale,1)));padding:7px 12px}
.rh-loop-center>span,.rh-loop-center>small{display:none}
.rh-loop-center>strong{font-size:max(32px,calc(16px / var(--rh-scale,1)));line-height:1.1}
.rh-loop-human{font-size:max(18px,calc(12px / var(--rh-scale,1)));left:162px;top:291px;color:#405A74}.rh-loop-human img{width:28px;height:28px}
@container(max-width:260px){.rh-native-module>span,.rh-fluency-meter>b,.rh-foundation-layer>span,.rh-foundation-layer.l-top>small,.rh-scenario-heading,.rh-scenario{visibility:hidden}.rh-native-panel>strong{font-size:max(40px,calc(14px / var(--rh-scale,1)))}}

/* The OS overview retains its key concepts instead of miniature UI annotations. */
.os-topline,.os-edge-label,.os-photo>span,.os-eyebrow,.os-context-tags,.os-engine-head,.os-engine-title>span,.os-action-list small,.os-stepnum,.os-toolbelt,.os-result-label,.os-output-status,.os-human span,.os-bottomline{display:none!important}
.os-brief strong,.os-output-title{font-size:max(24px,calc(12px / var(--os-scale,1)));line-height:1.12}
.os-engine-title{font-size:max(35px,calc(12px / var(--os-scale,1)));margin-top:0}
.os-action-list>div{min-height:58px;height:auto;padding:9px 12px}
.os-action-list b{font-size:max(20px,calc(12px / var(--os-scale,1)));line-height:1.12}
.os-human{height:62px}.os-human b{font-size:max(18px,calc(12px / var(--os-scale,1)));line-height:1.15}
.os-feedback{font-size:max(16px,calc(12px / var(--os-scale,1)));top:484px;left:760px;line-height:1.2;color:#405A74}

/* LAB hero labels: use the portrait composition before desktop labels get tiny. */
.rh-detail-marketing .ds-scene-top{display:none}
.rh-detail-marketing .ds-label,.rh-detail-marketing .ds-logo-tile span,.rh-detail-marketing .ds-martech-connect :is(b,span),.rh-detail-marketing .ds-orbit-label,.rh-detail-marketing .ds-object-row :is(span,b),.rh-detail-marketing .ds-return-label{font-size:16px;line-height:1.35;color:#405A74;letter-spacing:0}
.rh-detail-marketing .ds-orbit-label{color:#19334F}.rh-detail-marketing .ds-orbit-label.navy{color:white}
.rh-detail-marketing .ds-analysis-goals .ds-object-row{display:block;margin-top:5px;padding:4px 0;min-height:0}
.rh-detail-marketing .ds-analysis-goals .ds-object-row>*{display:block}
.rh-detail-marketing .ds-analysis-goals .ds-object-title{font-size:24px;margin:8px 0}
.rh-detail-marketing .ds-loop-core .ds-label{font-size:14px}
.rh-detail-marketing .ds-loop-core .ds-object-title{font-size:32px}
.rh-detail-marketing .ds-person{height:128px!important}
.rh-detail-marketing .ds-person small{font-size:16px;white-space:normal!important}
.rh-detail-marketing .ds-return-label{top:521px}

/* Keep diagram labels readable through tablet widths. */
@media(max-width:1100px){
 .nf-hero .nf-art-marketing,.nf-hero .os-scene,.nf-hero .nf-backoffice-knowledge,.nf-hero .nf-content-workflow-desktop,.nf-hero .nf-sales-hero-desktop,.nf-hero .nf-merch-hero-art:not(.nf-merch-hero-mobile){display:none!important}
 .nf-hero .nf-mobile-scene,.nf-hero .nf-content-workflow-mobile,.nf-hero .nf-sales-hero-mobile,.nf-hero .nf-merch-hero-mobile{display:block!important;width:100%;max-width:520px;height:auto;margin-inline:auto}
}

@layer nf-readability {
 .stk,.nf-swatch>b,.nf-sales-prep>span,.nf-content-prep>span{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}
}
/* Tiny copy inside example creative is decorative; keep the output labels. */
.rh-web-hero>b,.rh-web-footer>b,.rh-social-output>strong{display:none}
.rh-detail-marketing .ds-analysis-goals{height:278px!important;top:117px!important}
.rh-detail-marketing .ds-orbit-label.blue{color:#FFF}
.nf-blueprint-note{display:none}.nf-blueprint-label{font-size:26px}
/* Two-dimensional reference diagrams retain a readable canvas and local pan. */
.nf-os-concept,.nf-consult-growth{overflow-x:auto;overscroll-behavior-x:contain}
.nf-os-concept svg,.nf-consult-growth svg{min-width:520px}
@media(max-width:1100px){.nf-os-environment-story{grid-template-columns:1fr!important}.nf-os-environment-story>figure{order:1!important}}
@media(max-width:760px){
 .nf-os-concept::after,.nf-consult-growth::after{content:'도해를 좌우로 이동해 살펴보세요';display:block;position:sticky;left:0;padding:14px 16px;font-size:16px;color:#405A74;text-align:center}
}
/* Education inset: four short labels retain their size at narrow widths. */
.nf-dx-art text{font-size:24px}
@media(max-width:1100px){.nf-template-preview .nf-content-workflow-desktop{display:none}.nf-template-preview .nf-content-workflow-mobile{display:block;width:100%;max-width:520px;margin:auto}}

@layer nf-readability{.nf-setup-rows article>span{font-size:var(--nf-reading-meta)!important;line-height:1.6!important}.btn{height:auto!important}}
/* Diagnosis labels use the SVG’s 22-unit type, fitted inside each face. */

@layer nf-readability{.stk span{font-size:var(--nf-reading-meta)!important}}
.rh-scenario.sc-commerce{color:white}
@media(max-width:600px){
 .nf-page .nf-martech-areas .nf-area-context{row-gap:4px!important}
 .nf-page .nf-martech-areas .nf-area-context .nf-object-icon-wrap{grid-row:1 / span 2}
 .nf-page .nf-martech-areas h3{grid-row:2!important;margin:0!important}
 .nf-page .nf-martech-areas .nf-area-context p{grid-row:3}
}
@media(max-width:360px){.nf-page .nf-martech-areas .nf-area-tools{grid-template-columns:1fr}.nf-page .nf-martech-areas .nf-tool-brand{flex-direction:row;min-height:48px}.nf-page .nf-martech-areas .nf-area-tools>li{min-height:120px}}
@media(max-width:1100px){.nf-guide-page .nf-content-workflow-desktop{display:none}.nf-guide-page .nf-content-workflow-mobile{display:block;width:100%;max-width:520px;margin:auto}}

@layer nf-readability{.stk b{font-size:var(--nf-reading-meta)!important}}
@media(max-width:1100px){.nf-content-workflow-desktop{display:none!important}.nf-content-workflow-mobile{display:block!important;width:100%;max-width:520px;margin-inline:auto}}
@media(max-width:360px){.suites h3,.nf-steps h3,.nf-os-build-options dd{text-wrap:balance!important}}

.rh-mini-review{top:290px}
.rh-loop-human{left:298px;top:270px}

.rh-feedback-label{top:284px}
/* MEMORY is centered in the exposed band: middle ends at 201, bottom spans 142–238. */
.rh-foundation-layer.l-bottom>span{position:absolute;left:21px;top:76.5px;transform:translateY(-50%);line-height:1.25}
.rh-foundation-layer.l-top>span{display:none}

/* Keep short words intact in the smallest home preview. */
.os-brief{width:270px;padding:17px 19px}
.rh-loop-human{left:340px}

/* The consulting inset uses the same compact knowledge object as home. */
.nf-consulting .rh-foundation-layer.l-top>strong{font-size:max(28px,calc(16px / var(--rh-scale,1)));line-height:1.1}
.nf-consulting .rh-foundation-layer>span,.nf-consulting .rh-foundation-layer.l-top>small{font-size:max(14px,calc(12px / var(--rh-scale,1)));line-height:1.25}

/* Korean prose reflows by word; short headings balance their lines.
   Keep these rules outside the SVG/HTML illustration typography. */
:is(.nf-page,body[data-identity=light]) :is(main,footer) :is(h1,h2,h3,h4):not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *)){word-break:keep-all;overflow-wrap:normal;text-wrap:balance!important}
:is(.nf-page,body[data-identity=light]) :is(main,footer) :is(p,dd):not(:where(.os-scene *,.identity-scene *,.rh-scene *,.nf-art-stage *,.nf-small-scene *,.cf-motion *)){word-break:keep-all;overflow-wrap:break-word;text-wrap:pretty}
.nf-os-lead-sentence,.nf-merch-page .nf-hero-copy>p>span,.nf-consult-expansion .nf-expansion-sentence,.nf-os-why .nf-section-head p>span,.nf-os-knowledge-sentence,.nf-os-example .nf-section-head p>span{text-wrap:pretty}
.nf-os-build-options p>span,.nf-os-flow p>span{display:inline;text-wrap:pretty}

/* Short process labels and comparison captions use balanced lines. */
.nf-education .nf-process p,.nf-consulting .nf-consult-stats p{text-wrap:balance}

/* CTA tiers: auto height permits text zoom; padding prevents the former 44px collapse. */
@layer nf-readability {
 body .btn{box-sizing:border-box;min-height:48px!important;padding:9px 20px!important;line-height:1.5!important;max-width:100%;flex-shrink:0}
 body .btn.lg{min-height:56px!important;padding:13px 28px!important;font-size:18px!important;gap:12px}
 body .btn.lime .arw{width:28px!important;height:28px!important;flex:none}
 @media(max-width:700px){
  body .btn.lg{min-height:52px!important;padding:13px 22px!important;font-size:16px!important}
  body .btn.lime .arw{width:24px!important;height:24px!important}
  body :is(.hero .cta,.nf-actions){gap:12px}
  body :is(.hero .cta,.nf-actions)>.btn{width:100%}
 }
}

@layer nf-readability {
 body :is(.nf-hero-copy,.nf-contact>.nf-container>.nf-section-head) .nf-eyebrow{font-size:13px!important;line-height:1.5!important}
 body .nf-hero-caption,body .nf-hero-caption>p,body .nf-hero-caption>span{font-size:14px!important;line-height:1.65!important}
 @media(max-width:700px){
  body :is(.nf-hero-copy,.nf-contact>.nf-container>.nf-section-head) .nf-eyebrow{font-size:12px!important}
 }
}

@layer nf-readability {body[data-dress="home"] .suites .cell .identity-link{font-size:18px!important;line-height:1.5!important}}
