/* smaxh brand site (brand.smaxh.com). Mirrors Figma "26-11 브랜드 사이트 (초안)".
   Breakpoint 960px. Mobile gutter 24 · section 56 / desktop gutter 48 (80 from 1200px) · section 88.
   Content max 1200px. Purple (--join) is only for the app CTA and the Vision band. */
:root{--ink:#111;--paper:#fff;--sub:#555;--mute:#767676;--line:#e3e3e3;--tile:#f2f2f2;
--join:#600AFF;--join-press:#4b00d4;--green:#00D28A;
--g:24px;--sec:56px;--max:1200px;--hd1:56px;--hd2:46px;--r:20px;
--body:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;
--num:'Montserrat','Pretendard Variable',Pretendard,system-ui,sans-serif;
--ease:cubic-bezier(.16,.84,.3,1)}
@media (min-width:960px){:root{--g:48px;--sec:88px;--hd1:64px;--hd2:50px}}
@media (min-width:1200px){:root{--g:80px}}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;touch-action:manipulation;scroll-behavior:smooth;scroll-padding-top:calc(var(--hd2) + 64px)}
body{background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--body);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word;padding-bottom:env(safe-area-inset-bottom)}
@media (min-width:960px){body{padding-bottom:0}}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
p{text-wrap:pretty}
h1,h2,h3{text-wrap:balance}
a:focus-visible,button:focus-visible{outline:2px solid var(--join);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:fixed;top:8px;left:16px;z-index:300;padding:12px 18px;background:var(--paper);color:var(--ink);border-radius:8px}
.skip-link:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--g));margin:0 auto;padding:0 var(--g)}
@media (max-width:959px){.d-only{display:none!important}}
@media (min-width:960px){.m-only{display:none!important}}

/* ---------- type */
.eyebrow{font:800 14px/20px var(--num);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.eyebrow--green{color:var(--green)}
.h1{font-weight:800;font-size:32px;line-height:1.3;letter-spacing:-.035em}
.h2{font-weight:800;font-size:26px;line-height:1.35;letter-spacing:-.03em}
.h3{font-weight:700;font-size:20px;line-height:1.45;letter-spacing:-.02em}
.lead{font-size:16px;line-height:1.65;color:var(--sub);margin-top:14px;max-width:640px}
.body{font-size:15px;line-height:1.65;color:var(--sub);margin-top:8px}
.note{font-size:14px;line-height:1.6;color:var(--mute);margin-top:24px}
.trust{font-size:14px;line-height:20px;color:var(--sub);margin-top:16px}
html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .h1,html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .h2{font-family:var(--num);letter-spacing:-.025em;font-weight:800}
html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .h1{font-size:30px;line-height:1.2}
html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .h2{font-size:24px;line-height:1.25}
html:is([lang="de"],[lang="ru"],[lang="fr"]) .h1{font-size:27px}
html:is([lang="de"],[lang="ru"],[lang="fr"]) .h2{font-size:22px}
@media (min-width:960px){
 .eyebrow{margin-bottom:16px}
 .h1{font-size:48px}
 .h2{font-size:36px;line-height:1.3}
 .h3{font-size:22px}
 .lead{font-size:18px;margin-top:18px}
 .body{font-size:16px}
 html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .h1{font-size:44px}
 html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .h2{font-size:34px}
 html:is([lang="de"],[lang="ru"],[lang="fr"]) .h1{font-size:42px}
 html:is([lang="de"],[lang="ru"],[lang="fr"]) .h2{font-size:32px}
}

/* ---------- buttons & links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 28px;border-radius:999px;font:700 16px/1 var(--body);letter-spacing:-.01em;text-decoration:none;white-space:nowrap;transition:background-color .15s,color .15s,transform .1s}
.btn:active{transform:scale(.98)}
.btn--join{background:var(--join);color:#fff}
.btn--line{border:1.5px solid var(--ink);color:var(--ink)}
.btn--sm{height:44px;padding:0 20px;font-size:15px}
.arrow{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-weight:700;font-size:15px;line-height:22px;text-decoration:none}
.arrow::after{content:"→";transition:transform .2s var(--ease)}
.chip{display:inline-block;vertical-align:middle;margin-left:6px;padding:3px 10px;border-radius:999px;background:var(--tile);font-size:14px;line-height:20px;font-weight:600;color:var(--sub);letter-spacing:0}

/* ---------- header: row 1 scrolls away, row 2 (brand menu) stays */
.hd{position:sticky;top:calc(-1 * var(--hd1));z-index:50;background:rgba(255,255,255,.96);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px)}
.hd__top{height:var(--hd1);display:flex;align-items:center;justify-content:space-between}
.hd__logo{display:block;width:88px;line-height:0}
.hd__logo .logo{width:100%;height:auto}
.hd__util{display:flex;align-items:center;gap:18px;font-size:14px;font-weight:600}
.hd__discover{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.hd__lang{display:inline-flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}
.hd__lang::-webkit-details-marker{display:none}
.lang{position:relative}
.lang__chev{transition:transform .2s}
.lang[open] .lang__chev{transform:rotate(180deg)}
.lang__menu{position:absolute;right:0;top:calc(100% + 4px);z-index:70;min-width:200px;max-height:min(70vh,560px);overflow-y:auto;overscroll-behavior:contain;padding:6px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 32px rgba(0,0,0,.12)}
@media (min-width:960px){.lang__menu{display:grid;grid-template-columns:repeat(2,minmax(176px,1fr));column-gap:4px;max-height:none}}
.lang__opt{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 12px;white-space:nowrap;border-radius:10px;font-size:15px;font-weight:600;text-decoration:none;color:var(--sub)}
.lang__opt[aria-current]{color:var(--ink)}
.lang__opt[aria-current]::after{content:"";width:14px;height:10px;border:solid var(--ink);border-width:0 0 2px 2px;transform:translateY(-2px) rotate(-45deg)}
.hd__nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hd__tabs{display:flex;gap:22px;height:var(--hd2);overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.hd__tabs::-webkit-scrollbar{display:none}
@media (max-width:959px){.hd__tabs{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 28px),transparent 100%)}}
.hd__tabs a{display:flex;align-items:center;height:100%;font-size:15px;font-weight:600;color:var(--mute);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.hd__tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
@media (min-width:960px){.hd__logo{width:100px}.hd__util{gap:24px;font-size:15px}.hd__tabs{gap:32px}}
.logo .logo__w{fill:#600AFF}
.logo--neg .logo__w{fill:#fff}
.logo.logo--mono path,.logo--mono .logo__w{fill:#000}

/* ---------- sections */
.sec{padding:var(--sec) 0}
.sec--tight{padding:40px 0}
.sec--top0{padding-top:0}
.sec--gray{background:var(--tile)}
.sec--dark{background:#000;color:#fff}
.sec--dark .lead,.sec--dark .body,.sec--dark .trust{color:rgba(255,255,255,.72)}
.sec--dark .btn--line{border-color:#fff;color:#fff}
.sec--rule{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.shead{margin-bottom:28px}
.shead--link{display:flex;flex-direction:column}
.shead__link{margin-top:14px;align-self:flex-start}
@media (min-width:960px){
 .sec--tight{padding:56px 0}
 .shead{margin-bottom:44px}
 .shead--link{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:32px}
 .shead__link{margin-top:0;flex:none}
}
.sub-block{margin-top:64px}
@media (min-width:960px){.sub-block{margin-top:96px}}

/* ---------- hero */
.hero--photo{position:relative;display:flex;align-items:flex-end;min-height:min(500px,calc(100svh - var(--hd1) - var(--hd2)));color:#fff;background:#000;overflow:hidden}
@media (max-width:959px){.hero--photo .hero__media{bottom:auto;height:58%}.hero--photo .hero__media img{object-position:50% 30%}.hero--photo .hero__media::after{background:linear-gradient(180deg,rgba(0,0,0,0) 45%,#000 100%)}.hero--photo .hero__in{padding-top:min(52vw,230px)}}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.35) 32%,rgba(0,0,0,.8) 100%)}
.hero__in{position:relative;padding-top:120px;padding-bottom:28px}
.hero--photo .lead,.hero--photo .trust{color:rgba(255,255,255,.86)}
.hero--photo .btn--line{border-color:#fff;color:#fff}
.hero__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.hero--photo .hero__cta{margin-top:20px}
@media (min-width:960px){
 .hero--photo{min-height:clamp(560px,calc(100vh - var(--hd1) - var(--hd2)),700px)}
 .hero__in{padding-bottom:64px}
 .hero__media::after{background:linear-gradient(90deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,0) 70%),linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%)}
 .hero--photo .hero__in > *{max-width:640px}
 .hero__cta,.hero--photo .hero__cta{margin-top:32px}
}
.hero--split{padding:28px 0 var(--sec)}
.split{display:grid;gap:32px}
.split--hero{gap:28px}
.hero__ph img,.split__media img{width:100%;aspect-ratio:13/12;object-fit:cover;border-radius:var(--r)}
.hero__stats{margin-top:40px}
@media (min-width:960px){
 .hero--split{padding:64px 0 var(--sec)}
 .split{grid-template-columns:1fr 1fr;align-items:center;gap:64px}
 .split--hero{gap:64px}
 .hero__stats{margin-top:72px}
}

/* Seoul: the words sit on the photo's white sky, the Peace Gate stands under them */
.hero--sky{position:relative;padding-top:28px;overflow:hidden}
.sky__text{position:relative;z-index:1;text-align:center}
.sky__text .lead{max-width:600px;margin-left:auto;margin-right:auto}
.sky__text .hero__cta{justify-content:center}
.sky__ph{position:relative;z-index:0;margin-top:4px}
.sky__ph img{display:block;width:100%;height:clamp(260px,56vw,680px);object-fit:cover;object-position:var(--op,50% 100%)}
.sky__ph::before{content:"";position:absolute;inset:0 0 auto;height:30%;z-index:1;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 100%);pointer-events:none}
/* desktop: tall enough that the wings never reach the faded top; past the content width the photo stops growing and its sides fade out */
/* Phones: a city can zoom its landmark band (--mz) and set the band height (--mh) so the skyline, not the foreground, fills the screen. */
@media (max-width:959px){.sky__ph{overflow:hidden}.sky__ph img{width:calc(100% * var(--mz,1));max-width:none;margin-left:calc(50% - 50% * var(--mz,1));height:var(--mh,clamp(260px,56vw,680px))}}
@media (min-width:960px){.hero--sky{padding-top:64px}.sky__ph{max-width:var(--max);margin:-120px auto 0}.sky__ph img{height:clamp(400px,42vw,504px)}}
@media (min-width:1201px){.sky__ph{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%)}}

/* ---------- stats */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:28px 16px}
.stat__n{font:900 32px/1.1 var(--num);letter-spacing:-.02em;white-space:nowrap}
.stat__l{font-size:14px;line-height:1.5;color:var(--sub);margin-top:6px}
.stats--dark .stat__l{color:rgba(255,255,255,.7)}
@media (min-width:960px){.stats{grid-template-columns:repeat(var(--n),1fr);gap:32px}.stat__n{font-size:48px}.stat__l{font-size:15px;margin-top:10px}}
.stats--chap{margin-top:32px}

/* ---------- origin: old logo → today */
.logo-evo{display:flex;align-items:center;justify-content:center;gap:20px;padding:44px 20px;border-radius:var(--r);background:var(--tile)}
.logo-evo figure{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;min-width:0}
.logo-evo img{width:min(100%,180px);height:auto}
.logo-evo__now{width:min(100%,180px);height:auto}
.logo-evo figcaption{font-size:14px;color:var(--sub)}
.logo-evo__arrow{font-size:22px;color:var(--mute)}
@media (min-width:960px){.logo-evo{padding:88px 40px;gap:32px}.logo-evo img,.logo-evo__now{width:200px}}

/* ---------- carousels (phone): center snap, in-place fade only — the shared landing pattern */
.row{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:0 var(--g);padding:0 var(--g);margin:0 calc(-1 * var(--g));scrollbar-width:none;overscroll-behavior-x:contain}
.row::-webkit-scrollbar{display:none}
.row>*{flex:0 0 78%;min-width:0;scroll-snap-align:center}
.js-anim .row [data-r]{transform:none;transition:opacity .7s var(--ease)}
.dots{display:flex;justify-content:center;gap:6px;margin-top:18px}
.dots i{width:6px;height:6px;border-radius:50%;background:#c9c9c9;transition:background-color .2s,width .2s}
.dots i.on{width:18px;border-radius:3px;background:var(--ink)}
.sec--dark .dots i,.whyx .dots i{background:#555}.sec--dark .dots i.on,.whyx .dots i.on{background:#fff}
@media (min-width:960px){
 .row{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:24px;overflow:visible;margin:0;padding:0}
 .row>*{min-width:0}
 .row--2{--n:2}.row--3{--n:3}.row--4{--n:4}.row--5{--n:5}
 .dots{display:none}
}

/* ---------- hub timeline preview */
.tl__card{display:flex;flex-direction:column;text-decoration:none}
.tl__year{font:900 40px/1 var(--num);color:#8a8a8a;letter-spacing:-.02em;margin-bottom:16px}
.tl__year.is-now{color:var(--ink)}
.tl__media{display:block;border-radius:14px;overflow:hidden;background:#ddd}
.tl__media img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .5s var(--ease)}
.tl__meta{font-size:14px;color:var(--sub);margin-top:14px}
.tl__t{font-size:17px;line-height:1.45;margin-top:4px}
.tl__p{font-size:14px;line-height:1.6;color:var(--sub);margin-top:6px}
@media (min-width:960px){.tl__year{font-size:44px}}

/* ---------- cities */
.cities{display:grid;gap:40px}
.city__media{border-radius:var(--r);overflow:hidden;margin-bottom:20px;background:#ddd}
.city__media img{width:100%;aspect-ratio:13/12;object-fit:cover}
@media (min-width:960px){.cities{grid-template-columns:1fr 1fr;gap:24px}.city__media img{aspect-ratio:4/3}}

/* ---------- crew (dark) */
.crew__photos{display:grid;gap:16px;margin-bottom:40px}
.crew__ph img{width:100%;aspect-ratio:13/12;object-fit:cover;object-position:var(--op,50% 50%);border-radius:var(--r)}
.crew__ph figcaption{font-size:14px;color:rgba(255,255,255,.7);margin-top:10px}
@media (min-width:960px){.crew__photos{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:64px}.crew .stats{grid-template-columns:repeat(2,minmax(0,280px))}}

/* ---------- wide photo */
.wide img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.wide--hero{position:relative;margin-top:32px}
.wide__cap{font-size:14px;color:var(--sub);margin-top:10px}
@media (min-width:960px){.wide img{aspect-ratio:12/5;object-position:50% 70%}.wide--hero{margin-top:48px}}

/* ---------- vision band */
.vision{position:relative;overflow:hidden;background:var(--join);color:#fff;text-align:center;padding:88px 0}
.vision__in{position:relative}
.vision__mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);font:900 34vw/1 var(--num);letter-spacing:-.04em;color:rgba(0,0,0,.14);pointer-events:none;white-space:nowrap}
.vision__t{position:relative;font-weight:800;font-size:22px;line-height:1.5;letter-spacing:-.03em}
.vision__slogan{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:36px}
.vision__slogan img{width:min(78%,360px)}
.vision__logo{width:84px}
html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .vision__t{font-family:var(--num);font-size:20px;line-height:1.45}
@media (min-width:960px){.vision{padding:150px 0}.vision__t{font-size:34px}.vision__mark{font-size:300px}.vision__slogan{margin-top:56px}.vision__slogan img{width:420px}.vision__logo{width:100px}html:is([lang="en"],[lang="es"],[lang="fr"],[lang="de"],[lang="id"],[lang="ms"],[lang="vi"],[lang="ru"]) .vision__t{font-size:32px}}

/* ---------- final CTA */
.final__in{text-align:center;display:flex;flex-direction:column;align-items:center}
.final__in .lead{margin-left:auto;margin-right:auto}
.final__in--left{text-align:left;align-items:flex-start}
.final__in--left .lead{margin-left:0}
.final__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px}
.final__in--left .final__cta,.final__cta--left{justify-content:flex-start}
@media (max-width:959px){.br-d{display:none}}
.paths{display:grid;gap:12px;margin-top:48px}
.paths__i{display:flex;flex-direction:column;justify-content:space-between;padding:22px 22px 20px;border-radius:16px;background:var(--tile)}
.paths__i p{font-weight:700;font-size:16px;line-height:1.5}
.paths__i .arrow{margin-top:12px;font-size:14px}
@media (min-width:960px){.final__cta{margin-top:36px}.paths{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:72px}.paths__i{min-height:150px;padding:26px}}

/* ---------- moment posts */
.post{display:flex;flex-direction:column;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.post__loc{font-size:14px;line-height:20px;padding:12px 16px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post__media{position:relative;background:var(--tile)}
.post__media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.post__body{padding:14px 16px 18px}
.post__cap{font-size:15px;line-height:1.6}
.post__tags{font-size:14px;line-height:20px;color:var(--sub);margin-top:6px}
.post__date{font-size:14px;line-height:20px;color:var(--mute);margin-top:4px}
.post__media--fit{display:flex;align-items:center;aspect-ratio:4/5;background:#f5f5f5}
.post__media--fit img{aspect-ratio:auto;height:auto;object-fit:contain}
@media (min-width:960px){.row--posts{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- history */
.intro{padding-top:48px}
@media (min-width:960px){.intro{padding-top:88px}}
.ynav{position:sticky;top:var(--hd2);z-index:40;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.ynav__in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px}
.ynav__years{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.ynav__years::-webkit-scrollbar{display:none}
.ynav__years a{flex:none;padding:12px 12px;border-radius:999px;font:800 15px/20px var(--num);color:var(--mute);text-decoration:none}
.ynav__years a.on{background:var(--ink);color:#fff}
@media (max-width:959px){.ynav__in{height:52px}.ynav__years{margin:0 -8px}.ynav__years a{padding:8px 12px}}
@media (min-width:960px){.ynav__in{height:64px}.ynav__years{gap:8px}.ynav__years a{padding:8px 14px;font-size:16px}}
.chap{padding:64px 0 var(--sec)}
.chap--gray{background:var(--tile)}
.chap__head{display:grid;gap:28px;margin-bottom:40px}
.chap__year{font:900 64px/1 var(--num);letter-spacing:-.03em;margin-bottom:18px}
.chap__cover img{width:100%;aspect-ratio:13/10;object-fit:cover;border-radius:var(--r)}
.brandbox{display:grid;place-items:center;aspect-ratio:13/12;border-radius:var(--r);background:#000}
.brandbox__logo{width:min(46%,260px);height:auto}
@media (min-width:960px){.brandbox{aspect-ratio:auto;height:543px}}
.chap--dark .logo-evo{background:#1a1a1a}
@media (min-width:960px){
 .chap{padding:var(--sec) 0}
 .chap__head{grid-template-columns:1fr 1fr;align-items:center;gap:64px;margin-bottom:64px}
 .chap__year{font-size:104px}
}
.chap .row--posts,.chap .why,.chap .whyx,.chap .zone,.chap .also{margin-top:40px}
.chap__head + .row--posts{margin-top:0}
@media (min-width:960px){.chap .row--posts,.chap .why,.chap .whyx,.chap .zone,.chap .also{margin-top:56px}.chap__head + .whyx,.chap__head + .row--posts{margin-top:0}}
[data-city][hidden]{display:none!important}

/* why boxes */
.why{display:grid;gap:24px;padding:28px 24px;border-radius:var(--r);background:var(--tile);color:var(--ink)}
.chap--gray .why{background:#fff}
.chap--dark .why{background:#161616;color:#fff}
.chap--dark .why .body{color:rgba(255,255,255,.72)}
.why__tag{font:800 14px/20px var(--num);letter-spacing:.06em;text-transform:uppercase;color:var(--sub);margin-bottom:12px}
.chap--dark .why__tag{color:var(--green)}
/* Tier Match: the steps as swipe cards, then the campaigns */
.tm__t{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;margin:8px 0 14px}
.tm__t img{width:24px;height:auto}
.tm__camps{margin-top:0}
.tm__ph{overflow:hidden;border-radius:14px;background:#ddd}
.tm__camp img{width:100%;aspect-ratio:4/5;object-fit:cover}
.tm__camp figcaption{margin-top:10px;font-size:15px;font-weight:700;line-height:1.4}
.tm__camp .tm__d{display:block;font:700 14px/1.6 var(--num);color:var(--mute)}
.tm__lg img{width:100%;height:auto;aspect-ratio:13/12;object-fit:cover;border-radius:16px}
.tm__lg figcaption{margin-top:10px;font-size:15px;font-weight:700;line-height:1.4}
@media (min-width:960px){.why{padding:44px 48px}.tm__camps{gap:16px}.tm__logo{gap:16px}}
.chap .why + .why{margin-top:16px}
/* a why card with a photo (History 2026: New York's launch party) */
.why__ph{overflow:hidden;border-radius:16px}
.why__ph img{width:100%;aspect-ratio:13/12;object-fit:cover}
@media (min-width:960px){.why--img{grid-template-columns:460px 1fr;gap:48px;align-items:center}}
/* Tier Match (2025): one screen — the why and what the badge means on top, four photo posters in one row */
.tier{padding:28px 24px;border-radius:var(--r);background:var(--tile);min-width:0}
.chap--gray .tier{background:#fff}
.chap .tier{margin-top:40px}
.tier__logo{margin-top:28px}
.tier__camps{margin-top:32px}
.tier .tm__camp figcaption{font-size:14px}
@media (min-width:960px){
 .chap .tier{margin-top:56px}
 .tier{padding:40px 48px}
 .tier__top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:start}
 .tier__why{max-width:520px}
 .tier__logo{margin-top:0}
 .tier__logo .tm__t{margin-top:0}
 .tier__logo .tm__logo{grid-template-columns:repeat(2,176px);gap:16px}
 .tier__camps{margin-top:32px}
 .tier__camps .tm__camps{gap:16px}
}

/* WHY X (dark box) */
.whyx{padding:32px 24px;border-radius:var(--r);background:#000;color:#fff}
.whyx .body{color:rgba(255,255,255,.75)}
.whyx__top{display:grid;gap:28px}
/* app icon change: 2022 two circles → X */
.era{display:flex;align-items:flex-start;justify-content:center;gap:16px}
.era__i{flex:0 1 200px;display:flex;flex-direction:column;align-items:center;text-align:center}
.era__i img{width:min(100%,128px);height:auto}
.era__i figcaption{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.era__t{font-size:14px;color:var(--green);font-weight:600}
.era__c{font-size:15px;font-weight:700;text-wrap:balance}
.era__arrow{align-self:center;margin-top:-56px;font:800 24px/1 var(--num)}
.whyx--brand .era{margin-top:40px}
@media (min-width:960px){.era{gap:40px}.era__i img{width:168px}.era__c{font-size:16px}.whyx--brand .era{margin-top:56px}}
.whyx .arrow{color:#fff}
.whyx__kv img{width:100%;border-radius:14px}
.whyx__kv figcaption{font-size:14px;color:rgba(255,255,255,.6);margin-top:10px}
.whyx__cap{font-size:14px;color:rgba(255,255,255,.6);margin:36px 0 14px}
.boards{margin-top:0}
.board img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
.sec--dark .row,.whyx .row{scrollbar-width:none}
@media (min-width:960px){.whyx{padding:56px}.whyx__top{grid-template-columns:1fr 1fr;align-items:center;gap:56px}.whyx--brand .whyx__top{grid-template-columns:6fr 5fr}.boards{gap:12px}}

/* numbered points */
.points{display:grid;gap:24px;margin-top:32px}
.point{padding-top:18px;border-top:1px solid var(--line)}
.whyx .point,.sec--dark .point{border-top-color:#3a3a3a}
.point__n{font:800 14px/20px var(--num);color:var(--sub);letter-spacing:.04em}
.whyx .point__n{color:var(--green)}
.point__tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid currentColor;font-size:14px;line-height:18px}
.point__t{font-weight:700;font-size:17px;line-height:1.45;margin-top:8px}
.point__p{font-size:15px;line-height:1.65;color:var(--sub);margin-top:6px}
.whyx .point__p{color:rgba(255,255,255,.72)}
@media (min-width:960px){.points{margin-top:48px;gap:32px}.points--2{grid-template-columns:1fr 1fr}.points--3{grid-template-columns:repeat(3,1fr)}.points--4{grid-template-columns:repeat(4,1fr)}}

/* smaxh zone */
.zone{padding:24px;border-radius:var(--r);background:var(--tile)}
.chap--gray .zone{background:#fff}
.chap--dark .zone{background:#161616;color:#fff}
.chap--dark .zone .body,.chap--dark .zone .point__p{color:rgba(255,255,255,.72)}
.chap--dark .zone .point__n{color:rgba(255,255,255,.55)}
.chap--dark .zone--camp .zone__img{border-color:#2c2c2c}
.zone__top{display:grid;gap:24px}
.zone__main img{width:100%;aspect-ratio:13/12;object-fit:cover;border-radius:16px}
.h3--lg{font-size:24px;line-height:1.4}
/* NYC OPEN app cards, same as NYC OPEN 2 (BREAK): light card, art at its own size (1.21x on phones), title inside. */
.fcards{margin-top:32px}
.fcard{background:#f7f7f8;color:#111;border-radius:24px;padding:28px 20px 24px;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;overflow:hidden}
.fcard__art{flex:1;display:flex;align-items:center;justify-content:center}
.fcard__art img{max-width:100%;height:auto}
.fcard__t{font-size:20px;font-weight:600;line-height:1.2;letter-spacing:-.01em}
/* Card art is trimmed to the app card and its shadow, shown at real size (about 250px wide): readable on phones, short cards on desktop. */
@media (max-width:959px){.fcards>*{flex-basis:90%}.fcard{padding:22px 0;gap:18px}.fcard__art{min-height:0;width:100%}.fcard__art img{flex:none}}
@media (min-width:960px){.fcards{margin-top:40px}.zone--camp.zone--art .zone__main img{aspect-ratio:2/1}}
.zone__pts{margin-top:32px}
.zone__img{overflow:hidden;border-radius:14px}
.zone__img img{width:100%;aspect-ratio:13/12;object-fit:cover;object-position:var(--op,50% 50%)}
.zone__pt figcaption{margin-top:14px}
.zone__pt .point__t{margin-top:4px}
.zone--camp .zone__main img{aspect-ratio:3/2}
.zone--camp .why__tag{text-transform:none}
.zone--camp .zone__img{border:1px solid var(--line,#e5e5e5)}
/* Instagram posts shown whole (lessons 2026): 3:4 with their own type, never cropped */
.insta{display:grid;gap:24px}
.zone--insta .insta__posts{margin-top:4px}
.insta .zone__img img{aspect-ratio:3/4;object-fit:cover}
@media (min-width:960px){
 .zone--insta .insta{grid-template-columns:minmax(0,1fr) 744px;gap:48px;align-items:center}
 .zone--insta .insta__posts{margin-top:0;gap:24px}
}
@media (min-width:960px){
 .zone{padding:64px}
 .zone__top{grid-template-columns:468px 1fr;align-items:center;gap:56px}
 .zone--camp .zone__top{grid-template-columns:560px 1fr}
 .h3--lg{font-size:32px;line-height:1.35}
 .zone__pts{margin-top:48px;gap:24px}
}

/* also this year */
.also__t{font-weight:700;font-size:15px;margin-bottom:8px}
.also li{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.6}
.chap--dark .also li{border-color:#2c2c2c}
.also__d{font:700 14px/1.7 var(--num);color:var(--mute)}
@media (min-width:960px){.also li{grid-template-columns:140px 1fr;font-size:16px}}

/* ---------- tiles */
.tiles{display:grid;gap:12px}
.tile{padding:26px 24px;border-radius:var(--r);background:var(--tile)}
.sec--gray .tile{background:#fff}
.tile__t{font-weight:700;font-size:18px;line-height:1.45;margin-top:8px}
.tile__big{font-weight:800;font-size:24px;letter-spacing:-.03em}
.tile__p{font-size:15px;line-height:1.7;color:var(--sub);margin-top:10px}
@media (min-width:960px){.tiles{gap:20px}.tiles--2{grid-template-columns:1fr 1fr}.tiles--3{grid-template-columns:repeat(3,1fr)}.tile{padding:36px}}

/* seoul app features */
.feat__media{display:flex;align-items:center;justify-content:center;height:330px;padding:28px 18px;border-radius:var(--r);background:var(--tile);overflow:hidden}
/* app list screen drawn in text, laid out at the Figma size (336 wide) and scaled to its box like the old image;
   --u is one design pixel. Every line is one line and ends in "…" when too long. */
.feat__media{container-type:inline-size}
.appcard{--u:min(1px,calc(100cqw / 336));width:calc(336 * var(--u));margin:0;border-radius:calc(16 * var(--u));background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06),0 12px 32px rgba(0,0,0,.10);overflow:hidden;text-align:left;color:#111;letter-spacing:-.01em;line-height:1.4}
.appcard__tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:calc(46 * var(--u));border-bottom:1px solid #ececec}
.appcard__tab{display:flex;justify-content:center;align-items:stretch;min-width:0;padding:0 calc(6 * var(--u));font-size:calc(15 * var(--u));font-weight:600;color:#9b9b9b}
.appcard__tab>span{display:flex;align-items:center;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-bottom:calc(2 * var(--u)) solid transparent;margin-bottom:-1px}
.appcard__tab.is-on{color:#111}.appcard__tab.is-on>span{border-bottom-color:#111}
.appcard__list{display:grid;gap:calc(22 * var(--u));padding:calc(20 * var(--u)) calc(16 * var(--u)) calc(22 * var(--u)) calc(20 * var(--u))}
.appcard__row{display:grid;grid-template-columns:calc(92 * var(--u)) minmax(0,1fr);gap:calc(14 * var(--u));align-items:center}
.appcard__th{position:relative;width:calc(92 * var(--u));height:calc(92 * var(--u));border-radius:calc(12 * var(--u));overflow:hidden;background:var(--tile)}
.appcard__th img{display:block;width:100%;height:100%;object-fit:cover}
.appcard__badge{position:absolute;left:calc(5 * var(--u));top:calc(5 * var(--u));max-width:calc(82 * var(--u));padding:calc(2 * var(--u)) calc(8 * var(--u));border-radius:999px;background:#fff;font-size:calc(11 * var(--u));line-height:1.3;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appcard__in{display:grid;min-width:0}
.appcard__in>span{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appcard__who{display:flex!important;align-items:center;gap:calc(5 * var(--u));font-size:calc(12 * var(--u));color:#555}
.appcard__who img{flex:none;width:calc(18 * var(--u));height:calc(18 * var(--u));border-radius:50%;object-fit:cover}
.appcard__nm{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.appcard__t{font-size:calc(15 * var(--u));font-weight:700}
.appcard__s{font-size:calc(13 * var(--u));color:#8c8c8c}
.appcard__p{font-size:calc(14 * var(--u));font-weight:700}
.appcard__u{font-size:calc(12 * var(--u));font-weight:400;color:#8c8c8c}
.feat__n{font:800 14px/20px var(--num);color:var(--sub);margin-top:20px}
.feat .h3{margin-top:6px}
.feat__why{font-size:14px;line-height:1.6;font-weight:700;margin-top:12px}
.zlink{margin-top:40px}
@media (min-width:960px){.feat__media{height:400px;padding:44px 28px}.zlink{margin-top:56px}}

/* ---------- brand page */
.vm__i + .vm__i{margin-top:40px}
.vm__vision{font-weight:800;font-size:22px;line-height:1.5;letter-spacing:-.03em;max-width:900px}
.vm__mission{font-weight:600;font-size:17px;line-height:1.7;max-width:900px}
@media (min-width:960px){.vm__vision{font-size:32px}.vm__mission{font-size:20px}.vm__i + .vm__i{margin-top:56px}}
.versions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.ver__box{display:grid;place-items:center;aspect-ratio:4/3;padding:20%;border-radius:16px;border:1px solid var(--line);background:#fff}
.ver--negative .ver__box{background:#000;border-color:#000}
.ver__logo{width:100%;height:auto}
.ver__sym{width:46%;height:auto}
.ver figcaption{font-size:14px;color:var(--sub);margin-top:10px}
@media (min-width:960px){.versions{grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px}}
.swatches{display:grid;grid-template-columns:1fr;gap:12px}
.sw{display:flex;flex-direction:column;justify-content:space-between;min-height:180px;padding:20px;border-radius:16px;background:var(--sw);color:#fff}
.sw--ink{color:var(--ink)}
.sw--white{border:1px solid var(--line)}
.sw__name{font-weight:800;font-size:17px}
.sw__codes{font-size:14px;line-height:1.6;font-weight:600;letter-spacing:0;margin-top:24px;font-variant-numeric:tabular-nums}
.sw__copy{align-self:flex-start;margin-top:14px;padding:10px 14px;border-radius:999px;border:1px solid currentColor;font-size:14px;font-weight:600}
@media (min-width:960px){.swatches{grid-template-columns:repeat(4,1fr);gap:20px}.sw{min-height:300px;padding:26px}}
.spec__name{font-size:14px;color:var(--sub);font-weight:600}
.spec__sample{font-size:40px;line-height:1.2;margin-top:22px;letter-spacing:-.03em}
.spec__sample--en{font-family:'Gilroy',var(--num);font-weight:900}
.spec__sample--ko{font-family:var(--body);font-weight:800}
@media (min-width:960px){.spec__sample{font-size:52px}}
.slogan{display:flex;flex-direction:column;align-items:center;gap:18px;padding:64px 24px;border-radius:var(--r);background:var(--tile)}
.slogan img{width:min(88%,560px)}
.slogan__logo{width:96px}
@media (min-width:960px){.slogan{padding:110px 40px}}
.art__ph img{width:100%;aspect-ratio:13/12;object-fit:cover;border-radius:14px}
.art__i figcaption{margin-top:14px}
.art__i strong{display:block;font-size:17px}
.art__i span{display:block;font-size:14px;line-height:1.6;color:var(--sub);margin-top:4px}
/* lookbook: one large photo, four small, then a row of three (phones: large, pairs, large) */
.lookbook{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lb{position:relative;margin:0;overflow:hidden;border-radius:14px;background:#ddd}
.lb img{width:100%;height:100%;aspect-ratio:173/197;object-fit:cover;transition:transform .6s var(--ease)}
.lb:first-child,.lb:last-child{grid-column:span 2}
.lb:first-child img,.lb:last-child img{aspect-ratio:13/10}
.lb figcaption{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);padding:3px 8px;letter-spacing:-.02em;border-radius:999px;font-size:14px;line-height:1.4;font-weight:600;color:#fff;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@media (min-width:960px){
 .lookbook{grid-template-columns:repeat(12,1fr);gap:16px}
 .lb{grid-column:span 3}
 .lb img{aspect-ratio:290/263}
 .lb:first-child{grid-column:span 6;grid-row:span 2}
 .lb:first-child img{position:absolute;inset:0;aspect-ratio:auto}
 .lb:nth-child(n+6),.lb:last-child{grid-column:span 4}
 .lb:nth-child(n+6) img,.lb:last-child img{aspect-ratio:389/360}
 .lb figcaption{left:12px;bottom:12px;padding:4px 10px;letter-spacing:0}
}
.teamx__img img{width:100%;max-width:560px;margin:0 auto}
/* slogan: then → now, and where it shows up */
.sl2{display:grid;gap:28px}
.sl2__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;aspect-ratio:588/300;padding:24px;border-radius:var(--r)}
.sl2__card--then{background:#600AFF}
.sl2__card--then img{width:min(76%,400px);height:auto}
.sl2__card--now{background:var(--tile)}
.sl2__slogan{width:min(72%,400px);height:auto}
.sl2__logo{width:min(20%,110px);height:auto}
.sl2__i figcaption{margin-top:14px}
.sl2__era{display:block;font-size:14px;color:var(--sub)}
.sl2__i strong{display:block;font-size:16px;margin-top:2px}
.sl2__where{margin:48px 0 18px}
.sl2__ph,.sl2__app{overflow:hidden;border-radius:16px}
.sl2__ph img{width:100%;aspect-ratio:384/354;object-fit:cover}
.sl2__app{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;aspect-ratio:384/354;background:#5621F8}
.sl2__applogo{width:39%;height:auto}
.sl2__app img{width:47%;height:auto}
.sl2__tile figcaption{margin-top:12px;font-size:15px;font-weight:600}
@media (min-width:960px){.sl2{grid-template-columns:1fr 1fr;gap:24px}.sl2__i strong{font-size:17px}.sl2__where{margin:72px 0 22px}}
/* XO: chat stickers and the keyring */
.xo{margin-top:48px;padding:28px 24px;border-radius:var(--r);background:var(--tile)}
.xo__top{display:grid;gap:24px}
.xo__emos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:320px}
.xo__emo{aspect-ratio:1;border-radius:16px;background:#fff;display:grid;place-items:center}
.xo__emo img{width:88%;height:auto}
.xo__goods{font-weight:700;font-size:16px;margin:32px 0 14px}
.xo__key{overflow:hidden;border-radius:16px;background:#fff}
.xo__key img{width:100%;aspect-ratio:260/240;object-fit:cover}
@media (min-width:960px){.xo{margin-top:64px;padding:56px}.xo__top{grid-template-columns:1fr 280px;align-items:center;gap:48px}.xo__emos{gap:10px}.xo__goods{margin:48px 0 18px;font-size:17px}.xo__keys{gap:16px}}

/* ---------- team */
.quote blockquote{max-width:880px}
.quote__t{font-weight:800;font-size:22px;line-height:1.5;letter-spacing:-.03em}
.quote__by{font-size:15px;font-weight:700;margin-top:22px}
@media (min-width:960px){.quote__t{font-size:32px}}
.person{display:flex;flex-direction:column}
.person__ph{border-radius:16px;overflow:hidden;background:var(--tile);margin-bottom:18px}
.person__ph img{width:100%;aspect-ratio:384/413;object-fit:cover;object-position:50% 20%}
.leads{margin-top:8px}
.lead-card__ph{border-radius:16px;overflow:hidden;background:var(--tile)}
.lead-card__ph img{width:100%;aspect-ratio:384/440;object-fit:cover;object-position:50% 20%}
.lead-card figcaption{margin-top:14px}
.lead-card strong{display:block;font-size:18px}
.lead-card span{display:block;font-size:14px;color:var(--sub);margin-top:2px}
.person__role{font-size:15px;font-weight:600;margin-top:2px}
.person__prev{font-size:14px;color:var(--mute);margin-top:12px}

/* ---------- press */
.boiler__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.boiler__lang{font-weight:700}
.chip-btn{padding:11px 16px;border-radius:999px;border:1px solid var(--ink);font-size:14px;font-weight:600}
.boiler .tile__p{color:var(--ink);font-size:16px}
.facts{display:grid;border-top:1px solid var(--ink)}
.facts__r{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:14px;font-weight:700;color:var(--sub);line-height:1.7}
.facts dd{font-size:15px;line-height:1.7}
@media (min-width:960px){.facts{grid-template-columns:1fr 1fr;column-gap:48px}.facts__r{grid-template-columns:140px 1fr;padding:20px 0}.facts dd{font-size:16px}}
.ceo__ph img{width:100%;aspect-ratio:13/12;object-fit:cover;border-radius:var(--r)}
@media (min-width:960px){.ceo{grid-template-columns:5fr 7fr}}
.dl{border-top:1px solid var(--ink)}
.dl__r{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.dl__name{font-weight:700;font-size:16px}
.dl__meta{font-size:14px;color:var(--sub);margin-top:2px}
.sum{display:grid;border-top:1px solid var(--ink)}
.sum li{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid #d9d9d9}
.sum__y{font:900 18px/1.5 var(--num);text-decoration:none}
.sum p{font-size:15px;line-height:1.7}
@media (min-width:960px){.sum li{grid-template-columns:160px 1fr;padding:24px 0}.sum__y{font-size:24px}.sum p{font-size:17px}}
.contact{margin-top:20px}
.contact a{font:800 22px/1.3 var(--num);text-decoration:none;border-bottom:2px solid var(--ink)}
@media (min-width:960px){.contact a{font-size:32px}}

/* ---------- footer */
.ft{border-top:1px solid var(--line);padding:48px 0 32px;background:#fff}
.ft__top{display:grid;gap:36px}
.ft__logo{display:block;width:96px}
.ft__cols{display:grid;grid-template-columns:1fr 1fr;gap:28px 16px}
.ft__h{font-size:14px;font-weight:700;margin-bottom:10px}
.ft__col li + li{margin-top:0}
.ft__link{display:inline-block;padding:7px 0;font-size:14px;color:var(--sub);text-decoration:none}
.ft__legal{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;line-height:1.75;color:var(--mute)}
.ft__legal a{color:inherit}
@media (min-width:960px){.ft{padding:72px 0 40px}.ft__top{grid-template-columns:1fr auto;gap:48px}.ft__cols{grid-template-columns:repeat(4,auto);gap:64px}.ft__logo{width:110px}}


/* ---------- QR modal (desktop app handoff) */
.qr{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px}
.qr[hidden]{display:none}
.qr__dim{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.qr__box{position:relative;width:min(100%,520px);padding:40px 36px 36px;border-radius:24px;background:#fff;text-align:center;color:var(--ink)}
.qr__x{position:absolute;top:14px;right:14px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%}
.qr__t{font-weight:800;font-size:22px;letter-spacing:-.03em}
.qr__p{font-size:15px;line-height:1.6;color:var(--sub);margin-top:10px}
.qr__codes{display:flex;justify-content:center;gap:28px;margin-top:28px}
.qr__code{width:150px;height:150px;padding:10px;border:1px solid var(--line);border-radius:14px}
.qr__code svg{width:100%;height:100%}
.qr__fig figcaption{font-size:14px;color:var(--sub);margin-top:10px}
/* image viewer (boards, posters): dark backdrop, the picture as large as the screen allows */
.zoom{display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:zoom-in;border-radius:inherit}
.zoom img{display:block}
.zbox{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:56px 16px 64px}
.zbox[hidden]{display:none}
.zbox__dim{position:absolute;inset:0;background:rgba(0,0,0,.88)}
.zbox__fig{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:100%}
.zbox__img{display:block;max-width:min(100%,1200px);max-height:calc(100svh - 150px);width:auto;height:auto;border-radius:10px;background:#111}
.zbox__cap{font-size:14px;line-height:20px;color:rgba(255,255,255,.75);text-align:center}
.zbox__x{position:absolute;top:12px;right:12px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.12)}
.zbox__nav{position:absolute;top:50%;width:48px;height:48px;margin-top:-24px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.12)}
.zbox__nav--prev{left:12px}.zbox__nav--next{right:12px}
.zbox.is-single .zbox__nav{display:none}
@media (max-width:959px){.zbox__nav{top:auto;bottom:8px;margin-top:0}}
.zbox__n{position:absolute;left:0;right:0;bottom:20px;text-align:center;font:700 14px/20px var(--num);color:rgba(255,255,255,.75)}
@media (hover:hover){.zbox__x:hover,.zbox__nav:hover{background:rgba(255,255,255,.24)}.zoom:hover img{opacity:.9}}
@media (min-width:960px){.zbox{padding:64px 96px 72px}.zbox__nav--prev{left:28px}.zbox__nav--next{right:28px}.zbox__x{top:20px;right:20px}}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:210;transform:translateX(-50%);padding:10px 18px;border-radius:999px;background:#111;color:#fff;font-size:14px;font-weight:600}
@media (min-width:960px){.toast{bottom:32px}}

/* ---------- motion (opted in by motion.js; reduced motion and ?static stay still)
   Start states use opacity .001, never 0: iOS treats opacity 0 as hidden, and a link that turns visible
   during a tap (a reveal near the screen edge) makes Safari read the tap as hover and drop the click.
   Reading aids only: things appear in reading order, numbers count to their value, photos settle. */
.js-anim [data-r]{opacity:.001;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js-anim [data-r].in{opacity:1;transform:none}
@keyframes rise{from{opacity:.001;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes settle{from{transform:scale(1.08)}to{transform:none}}
@keyframes fade{from{opacity:.001}to{opacity:1}}
/* hero: copy enters line by line, photo settles */
.js-anim .hero__in>*,.js-anim .hero--split .split__text>*{animation:rise .8s var(--ease) both}
.js-anim .hero__in>:nth-child(2),.js-anim .hero--split .split__text>:nth-child(2){animation-delay:.08s}
.js-anim .hero__in>:nth-child(3),.js-anim .hero--split .split__text>:nth-child(3){animation-delay:.16s}
.js-anim .hero__in>:nth-child(4),.js-anim .hero--split .split__text>:nth-child(4){animation-delay:.24s}
.js-anim .hero__in>:nth-child(n+5),.js-anim .hero--split .split__text>:nth-child(n+5){animation-delay:.32s}
.js-anim .hero__media img{animation:settle 1.8s var(--ease) both}
.js-anim .sky__text>*{animation:rise .8s var(--ease) both}.js-anim .sky__text>:nth-child(2){animation-delay:.08s}.js-anim .sky__text>:nth-child(3){animation-delay:.16s}.js-anim .sky__text>:nth-child(n+4){animation-delay:.24s}
.js-anim .sky__ph img{animation:settle 1.8s var(--ease) both;transform-origin:50% 100%}
.js-anim .hero__ph{animation:fade 1s var(--ease) .1s both}
.js-anim .hero__ph img,.js-anim .wide__ph img{animation:settle 1.6s var(--ease) both}
/* large photos settle as they scroll in */
.js-anim .wide:not(.wide--hero) img,.js-anim .chap__cover img,.js-anim .zone__main img,.js-anim .split__media img,.js-anim .ceo__ph img{transform:scale(1.06);transition:transform 1.4s var(--ease)}
.js-anim .wide.in img,.js-anim .in .wide img,.js-anim .chap__cover.in img,.js-anim .zone__main.in img,.js-anim .split__media.in img,.js-anim .ceo__ph.in img{transform:none}
.wide:not(.wide--hero),.wide__ph,.chap__cover,.zone__main,.split__media,.ceo__ph,.hero__ph{overflow:hidden;border-radius:var(--r)}
/* Tier Match trail reads top to bottom */
/* header lifts once the page moves */
.hd{transition:box-shadow .25s,transform .3s var(--ease)}
.ynav{transition:transform .3s var(--ease)}
.nav-hide .hd{transform:translateY(calc(-1 * var(--hd2) - 1px))}
/* phones keep the year menu at the top (it follows the brand menu up while reading down) */
@media (max-width:959px){.nav-hide .ynav{transform:translateY(calc(-1 * var(--hd2) - 1px))}}
.scrolled .hd{box-shadow:0 1px 0 var(--line),0 8px 24px rgba(0,0,0,.06)}
/* history reading progress under the year menu */
.ynav{position:sticky}
.ynav__bar{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);transform-origin:0 50%;transform:scaleX(var(--p,0))}
/* desktop: no year bar over the page (it covered the content). Wide screens get a quiet rail of years in the left
   margin, shown only while the chapters are on screen; narrower desktops just scroll. */
@media (min-width:960px) and (max-width:1319px){.ynav{display:none}}
@media (min-width:1320px){
 .ynav{position:fixed;top:50%;left:max(12px,calc((100vw - var(--max)) / 4 - 34px));z-index:40;transform:translateY(-50%);background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:0;pointer-events:none;transition:opacity .3s}
 .yrail-on .ynav{opacity:1;pointer-events:auto}
 .ynav__in{display:block;width:auto;max-width:none;height:auto;padding:0}
 .ynav__years{flex-direction:column;gap:2px;overflow:visible}
 .ynav__years a{padding:6px 12px;font-size:14px;text-align:center}
 .ynav__bar{display:none}
 .yrail-dark .ynav__years a{color:rgba(255,255,255,.55)}
 .yrail-dark .ynav__years a.on{background:#fff;color:#000}
}
/* hover feedback (mouse only): iOS keeps :hover after a tap, so every hover state lives here */
@media (hover:hover){
 .btn--join:hover{background:var(--join-press)}
 .btn--line:hover{background:var(--ink);color:#fff}
 .arrow:hover::after{transform:translateX(4px)}
 .arrow:hover{text-decoration:underline;text-underline-offset:4px}
 .hd__discover:hover{text-decoration:underline;text-underline-offset:4px}
 .lang__opt:hover{background:var(--tile);color:var(--ink)}
 .hd__tabs a:hover{color:var(--ink)}
 .sec--dark .btn--line:hover{background:#fff;color:#000}
 .hero--photo .btn--line:hover{background:#fff;color:#111}
 .tl__card:hover .tl__media img{transform:scale(1.03)}
 .ynav__years a:not(.on):hover{color:var(--ink)}
 .yrail-dark .ynav__years a:not(.on):hover{color:#fff}
 .lb:hover img{transform:scale(1.03)}
 .chip-btn:hover{background:var(--ink);color:#fff}
 .ft__link:hover{color:var(--ink);text-decoration:underline}
 .qr__x:hover{background:var(--tile)}
 .paths__i:hover{transform:translateY(-3px);background:#e8e8e8}
 .post:hover{box-shadow:0 12px 32px rgba(0,0,0,.09)}
 .city:hover .city__media img{transform:scale(1.03)}
 .paths__i{transition:transform .25s var(--ease),background-color .25s}
 .post{transition:box-shadow .3s var(--ease)}
 .city__media img{transition:transform .6s var(--ease)}
 .tile{transition:background-color .25s}
}
/* components move a little, like NYC OPEN 2: app cards pop in then float; the logo story plays; the trail line draws */
@keyframes pop{from{opacity:.001;transform:translateY(22px) scale(.94)}to{opacity:1;transform:none}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
.js-anim .feat .feat__media .appcard{opacity:.001}
.js-anim .feat.in .feat__media .appcard{animation:pop .9s var(--ease) .1s both,float 6s ease-in-out 1.2s infinite}
.js-anim .feat:nth-child(2).in .feat__media .appcard{animation-delay:.2s,1.8s}
.js-anim .feat:nth-child(3).in .feat__media .appcard{animation-delay:.3s,2.4s}
.js-anim .logo-evo figure:first-child{opacity:.001;transform:translateX(-12px);transition:opacity .6s var(--ease) .1s,transform .6s var(--ease) .1s}
.js-anim .logo-evo .logo-evo__arrow{opacity:.001;transition:opacity .4s .5s}
.js-anim .logo-evo figure:last-child{opacity:.001;transform:scale(.9);transition:opacity .7s var(--ease) .8s,transform .7s var(--ease) .8s}
.js-anim .logo-evo.in figure:first-child,.js-anim .logo-evo.in figure:last-child{opacity:1;transform:none}
.js-anim .logo-evo.in .logo-evo__arrow{opacity:1;animation:nudge 2.4s ease-in-out 1.4s infinite}
.js-anim .era .era__i:first-child{opacity:.001;transform:translateX(-12px);transition:opacity .6s var(--ease) .15s,transform .6s var(--ease) .15s}
.js-anim .era .era__arrow{opacity:.001;transition:opacity .4s .55s}
.js-anim .era .era__i:last-child{opacity:.001;transform:scale(.88);transition:opacity .7s var(--ease) .8s,transform .7s var(--ease) .8s}
.js-anim .era.in .era__i:first-child,.js-anim .era.in .era__i:last-child{opacity:1;transform:none}
.js-anim .era.in .era__arrow{opacity:1;animation:nudge 2.4s ease-in-out 1.4s infinite}
.js-anim .stats .stat{opacity:.001;transform:translateY(10px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js-anim .stats.in .stat{opacity:1;transform:none}
.js-anim .stats.in .stat:nth-child(2){transition-delay:.1s}
.js-anim .stats.in .stat:nth-child(3){transition-delay:.2s}
.js-anim .stats.in .stat:nth-child(4){transition-delay:.3s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* ---------- languages
   Korean keeps Pretendard and keep-all. The Korean Pretendard subset has no Cyrillic, Vietnamese, Ä, Ö or ñ,
   so every other Latin/Cyrillic page loads Pretendard Std (same design, full European coverage) and Thai
   uses it for Latin only. Japanese uses Pretendard JP. Chinese keeps the native system fonts (PingFang,
   Microsoft YaHei/JhengHei): Pretendard's Han glyphs are Korean/Japanese shapes. */
:root{--std:'Pretendard Std Variable','Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,'Noto Sans',sans-serif}
:lang(en),:lang(vi),:lang(id),:lang(ms),:lang(ru),:lang(es),:lang(fr),:lang(de){--body:var(--std);--num:'Montserrat',var(--std)}
:lang(ja){--body:'Pretendard JP Variable','Pretendard JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans','Hiragino Kaku Gothic ProN','Noto Sans JP','Yu Gothic',Meiryo,sans-serif}
:lang(zh-Hant){--body:-apple-system,BlinkMacSystemFont,'PingFang TC','Noto Sans TC','Microsoft JhengHei',sans-serif}
:lang(zh-Hans){--body:-apple-system,BlinkMacSystemFont,'PingFang SC','Noto Sans SC','Microsoft YaHei',sans-serif}
:lang(th){--body:'Pretendard Std Variable',-apple-system,BlinkMacSystemFont,'Sukhumvit Set','Noto Sans Thai','Leelawadee UI',Tahoma,sans-serif}
[lang="ko"]{--body:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo','Noto Sans KR',sans-serif}
/* ja/zh: the build puts <wbr> between phrases (BudouX), so wrap only there; break-word = last resort for a phrase wider than its box */
html:lang(ja) body,html:lang(zh-Hant) body,html:lang(zh-Hans) body{word-break:keep-all;overflow-wrap:break-word;line-break:strict;letter-spacing:0}
html:lang(th) body{word-break:normal;letter-spacing:0;line-height:1.75}
html:lang(de) body,html:lang(fr) body,html:lang(es) body,html:lang(ru) body,html:lang(id) body,html:lang(ms) body,html:lang(vi) body{word-break:normal}
/* de/ru: hyphenate long words in running text only; headings, quotes and labels keep whole words */
html:is(:lang(de),:lang(ru)) :is(p,li,dt){-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4}
html:is(:lang(de),:lang(ru)) :is(.vision__t,.vm__vision,.vm__mission,.quote__t,.why__tag,.stat__l,figcaption *){-webkit-hyphens:manual;hyphens:manual}
html:lang(th) :is(h1,h2,h3){line-height:1.35}

/* ---------- desktop fit: a section should sit on one laptop screen (1440–1512 × ~900). Blocks that ran past it
   are about 10% shorter here; blocks that already fit keep their size. */
@media (min-width:960px){
 .post__media img{aspect-ratio:1/1;object-position:50% 40%}
 .post__media--fit{aspect-ratio:1/1}
 .feat__media{height:336px;padding:20px 28px}
 .city__media img{aspect-ratio:16/10}
 .crew__ph img{aspect-ratio:16/9}
 .chap__cover img{aspect-ratio:3/2}
 .brandbox{height:auto;aspect-ratio:3/2}
 .crew__photos{margin-bottom:48px}
 .person__ph img{aspect-ratio:384/372}
 .lead-card__ph img{aspect-ratio:384/396}
 .lb img{aspect-ratio:290/236}
 .lb:nth-child(n+6) img,.lb:last-child img{aspect-ratio:389/324}
 .zone{padding:32px 48px}
 .zone__top{grid-template-columns:320px 1fr}
 /* point photos are shorter here; each point says where its crop holds (data: points[i][5] → --op) */
 .zone__img img{aspect-ratio:4/3}
 .zone:not(.zone--camp) .zone__img img{aspect-ratio:3/2}
 .zone--camp .zone__top{grid-template-columns:460px 1fr}
 .zone__pts{margin-top:28px}
 .whyx{padding:48px}
 .era__i img{width:132px}
 .whyx--brand .era{margin-top:36px}
 .whyx__cap{margin:28px 0 12px}
}
