/* One type scale for /luvoca/: label 13, small 14, body 16, lead 20, title 40 to 64. The wordmark is the only larger size. */
:root{--t-label:13px;--t-small:14px;--t-body:16px;--t-lead:20px;--t-title:clamp(40px,4.6vw,64px)}
.hero h1{font-size:clamp(72px,10vw,144px)}
h2,.learn h2,.play-copy h2,.campaign h2,.members h2,.archive h2,.news h2,.fandom h2{font-size:var(--t-title);line-height:1.02}
.hero-korean{font-size:var(--t-lead)}
.hero-korean small{font-size:var(--t-body);text-wrap:balance}
.eyebrow,.nav-links,.nav-company,.hero-index,.photo-label,.blue-rule,.image-number,.portrait-index,.campaign-foot,.tabs button,.archive-caption span,.news-category,.footer-bottom,.footer-note,.sample-label,.inline-caption,.inline-members button{font-size:var(--t-label);letter-spacing:.04em}
.text-link,.member-meta,.member-hint,.archive-caption,.footer-biz,.store-note,.game-status,.footer-brand{font-size:var(--t-small)}
.campaign-copy p,.campaign-layout p,.members-intro,.news-list details p,.dialog-copy p,.fandom-copy p,.fandom-copy small,.app-link .app-title span,.news-title{font-size:var(--t-body);line-height:1.6}
.play-primary,.hero-play,.inline-continue{font-size:15px}

/* LEARN with the app sample */
.learn-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:clamp(40px,7vw,110px);align-items:center}
.learn h2{margin:0 0 28px}
.learn-steps{list-style:none;counter-reset:s;margin:0 0 32px;padding:0;display:block;border:0}
.learn-steps li{counter-increment:s;display:flex;align-items:baseline;gap:14px;padding:14px 0;border-top:1px solid #10111326;font-size:var(--t-lead);font-weight:700}
.learn-steps li:before{content:'0' counter(s);font:600 var(--t-label) var(--display);color:var(--blue)}
.learn .play-primary{min-width:230px}
.learn .game-status{color:#5b5c62;margin:10px 0 0}
.learn .play-inline{justify-self:end;max-width:420px;padding:14px;background:#101113;color:var(--paper);border-radius:28px}
.learn .play-sample{border-radius:16px}
.learn .inline-caption{color:#b2b3b6}
@media(max-width:760px){
.learn-layout{grid-template-columns:minmax(0,1fr);gap:28px}
.learn-copy{display:contents}
.learn h2{order:1;margin:0}
.learn .play-inline{order:2;justify-self:stretch;max-width:none}
.learn-steps{order:3;margin:0}
.learn .play-primary{order:4;width:100%}
.learn .game-status{order:5;margin:0}
}

/* Remaining small text */
.text-link,.campaign-video-toggle,.image-number,.campaign-members button,.pixel-float,.sample-name,.eyebrow.dim{font-size:var(--t-small)}
@media(max-width:760px){
.hero-meta .dim,.hero-index{display:none}
.blue-rule span:not(:first-child){display:none}
}
html body .text-link,html body .image-number,html body .eyebrow,html body .hero-meta span,html body .photo-label,html body .hero-portraits span{font-size:var(--t-label)}
.text-link,.image-number,.eyebrow.dim{font-size:var(--t-label)!important}

/* 44px touch targets. Text size stays, only the hit area grows. */
html body .brand,html body .nav-links a,html body .text-link,html body .footer-bottom a,html body .footer-biz a{display:inline-flex;align-items:center;min-height:44px}
html body .nav-links a{justify-content:center;min-width:44px}
html body .lang-pick select{min-height:44px}
html body .inline-members button,html body .campaign-members button,html body .tabs button,html body .campaign-video-toggle{min-width:44px;min-height:44px}
html body .footer-bottom{align-items:center;row-gap:0}
