/* 한결, 돌아오는 곳 — 분양 홈페이지 제작 샘플(가상 현장) 스타일
   색: 한결 디자인토큰(먹·아이보리·금) + 밤 남색. 글꼴: 마루부리 · Pretendard · Italianno(OFL) */

:root{
  --ink:#282828; --paper:#f0eae2; --mist:#e2d9cc; --gold:#ba8f71; --gold-soft:#998170; --night:#0e1726;
  --bg:var(--paper); --fg:var(--ink); --line:rgba(40,40,40,.18);
  --serif:'MaruBuri','Noto Serif KR',serif; --sans:'Pretendard',system-ui,sans-serif; --script:'Italianno',cursive;
  --pad:clamp(20px,4vw,64px);
}
body[data-time="night"]{ --bg:var(--night); --fg:#ece6dc; --paper:#121c2e; --mist:#18243a; --line:rgba(236,230,220,.2); }

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:300;line-height:1.7;word-break:keep-all;overflow-x:hidden;transition:background .8s,color .8s}
/* Lenis 1.3.21 기본 CSS (공식 dist/lenis.css 그대로, MIT) */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}
.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}
img{display:block;width:100%;height:100%;object-fit:cover}
figure{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.tone-paper{background:var(--paper);color:var(--fg);transition:background .8s,color .8s}
.tone-mist{background:var(--mist);color:var(--fg);transition:background .8s,color .8s}
.tone-ink{background:var(--ink);color:#f0eae2}
.tone-night{background:var(--night);color:#ece6dc}

.big{font-family:var(--serif);font-weight:700;font-size:clamp(88px,15vw,260px);line-height:.95;letter-spacing:-.04em}
.script{font-family:var(--script);font-weight:400;color:var(--gold);letter-spacing:0}
.eyebrow{font-size:12px;letter-spacing:.3em;color:var(--gold-soft);margin-bottom:28px}
.note{font-size:12px;color:var(--gold-soft);padding:0 var(--pad);margin-top:28px}
[data-split] .ch{display:inline-block;will-change:transform}

/* 큰 제목 — 줄바꿈 금지, 칸보다 넓으면 main.js의 fitText가 글자 크기를 줄임 (폰 글자 크기 설정 대응) */
[data-fit]{white-space:nowrap}

/* 가로 넘침 방지 — clip은 스크롤 영역을 만들지 않아 sticky가 유지됨 */
main{overflow-x:clip}

/* 장 표시 — 01 사업개요 … 05 관심고객 (원래 한결 사이트 장 순서) */
.chap{display:flex;align-items:baseline;gap:.6em;font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.14em;color:var(--gold-soft)}
.chap i{font-style:normal;font-family:'Instrument Serif',var(--serif);font-size:1.9em;letter-spacing:0;color:var(--gold)}
.loc__chap{position:absolute;left:3vw;top:3vw;z-index:2}
.units__chap{position:absolute;left:3vw;top:3vw;z-index:2}
.dev__chap{margin-bottom:2vw}
.foot__chap{justify-content:flex-start;color:#48617a}
.foot__chap i{color:#1f4466}
.dev__addr{position:relative;margin-top:2.4vw;font-size:14px;line-height:1.7;color:var(--gold-soft)}

/* 01 조감도 전면 — 화면 꽉 채움 */
.jogam{position:relative;z-index:2;height:170vh;background:var(--night)}
.jogam__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.jogam__blur{position:absolute;inset:-6%;filter:blur(38px) brightness(.72) saturate(1.1)}
.jogam__img{position:absolute;inset:0;display:flex;justify-content:center;will-change:transform}
.jogam__img img{width:auto;height:100%;object-fit:contain}
.jogam__txt{position:absolute;left:3vw;bottom:6vh;z-index:2;color:#f7f2ea;max-width:30vw}
.jogam__txt .chap{color:#e6d6c2}
.jogam__txt .chap i{color:#f0d9b8}
.jogam__title{margin-top:1.2vw;font-family:var(--serif);font-weight:400;font-size:5vw;line-height:1.05;letter-spacing:-.02em}
.jogam__cap{margin-top:1.4vw;font-size:12px;line-height:1.5;opacity:.85}

/* 02 하루 동선 카드 (가로 트랙 안) */
.hz__cards{position:absolute;left:134vw;top:9vh;width:194vw;display:flex;gap:2.2vw}
.hz__card{flex:0 0 22vw;display:flex;flex-direction:column;gap:1.1vw}
.hz__card img{height:46vh;width:100%;object-fit:cover}
.hz__card figcaption{display:flex;flex-direction:column;gap:.5vw}
.hz__card figcaption b{font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em;color:var(--gold)}
.hz__card figcaption span{font-family:var(--serif);font-size:1.55vw;line-height:1.22;letter-spacing:-.01em}
.hz__card figcaption small{font-size:11px;line-height:1.5;color:var(--gold-soft)}
.hz__cards-note{position:absolute;left:0;bottom:-6vh;font-size:11px;color:var(--gold-soft)}

/* 관심고객 등록 배지 — ERA 원형 배지 실측(PC 163px · 폰 100px · 약 12.4초 1바퀴): 배경 없이 글자만 돌고, 흰색 + 차이(difference) 합성으로 배경 따라 반전 */
.ask{position:fixed;right:calc(23px + env(safe-area-inset-right,0px));bottom:calc(23px + env(safe-area-inset-bottom,0px));z-index:70;width:clamp(112px,11.3vw,163px);aspect-ratio:1;display:grid;place-items:center;color:#fff;transition:opacity .4s,transform .4s,color .5s;filter:drop-shadow(0 1px 6px rgba(14,23,38,.35))}
.ask.on-light{color:var(--ink);filter:none}
.ask:focus-visible{outline:1px solid #fff;outline-offset:4px;border-radius:50%}
.ask__ring{position:absolute;inset:0;width:100%;height:100%;fill:currentColor;animation:askSpin 12.4s linear infinite}
.ask:hover .ask__ring{animation-duration:5s}
.ask__ring text{font-family:'Archivo','Noto Sans KR',var(--sans);font-stretch:125%;font-weight:700;font-size:11px;letter-spacing:.3em;text-transform:uppercase}
.ask__mark{width:27%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;transition:transform .5s}
.ask:hover .ask__mark{transform:scale(1.08)}
.ask.is-hidden{opacity:0;pointer-events:none;transform:scale(.85)}
@keyframes askSpin{to{transform:rotate(360deg)}}

/* 헤더 */
.top{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:28px;padding:18px var(--pad);color:#f0eae2;mix-blend-mode:difference}
.top__logo{font-family:var(--serif);font-weight:700;font-size:22px;line-height:1;display:flex;flex-direction:column;transition:opacity .4s}
/* 로고는 첫 화면에서만 — 지나면 사라져 섹션 글자와 겹치지 않음 (배우님 0929) */
.top.is-past .top__logo{opacity:0;pointer-events:none}
.top__logo small{font-family:var(--sans);font-size:9px;letter-spacing:.35em;margin-top:4px;font-weight:400}
.top__time{display:flex;gap:8px;align-items:center;font-size:13px;letter-spacing:.1em}
.top__time button{opacity:.5;transition:opacity .3s}
.top__time button.is-on{opacity:1;text-decoration:underline;text-underline-offset:5px}
.top__nav{margin-left:auto;display:flex;gap:26px;font-size:14px}
.top__cta{border:1px solid currentColor;border-radius:999px;padding:6px 16px}
.top__menu{display:none;width:34px;height:34px;flex-direction:column;justify-content:center;gap:7px;margin-left:auto}
.top__menu span{display:block;height:1.5px;background:currentColor}
.draft{position:fixed;left:12px;bottom:12px;z-index:60;font-size:11px;letter-spacing:.12em;background:rgba(14,23,38,.78);color:#f0eae2;padding:6px 10px;border-radius:3px}

/* 1. 첫 화면 — ERA 실측(1440×900): 구간 5,220 · 제목 12vw/0.87/-0.024em top 43 · 필기 7.5vw top 300 · 줄 36px top 459 */
.hero{height:580vh;position:relative}
.hero__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;z-index:0}
.hero__media{position:absolute;inset:0}
.hero__zoom{position:absolute;left:0;top:0;width:100%;height:max(100%,89.1vw);transform-origin:50% 0;will-change:transform}
.hero__img{position:absolute;inset:0;transition:opacity 1s}
.hero__img--night{opacity:0}
body[data-time="night"] .hero__img--night{opacity:1}
/* 가운데 은은한 어둠(배우님 0930 B안) — 카피가 창 불빛에 묻힘(흰 글자 대비 폰 2.0:1) → 폰 5.7:1 · PC 9.4:1 실측. 무대에 고정이라 사진이 확대돼도 글자 뒤에 남음 */
.hero__veil{position:absolute;inset:0;background:radial-gradient(ellipse 70% 42% at 50% 44%,rgba(14,23,38,.5),rgba(14,23,38,0) 100%),linear-gradient(180deg,rgba(14,23,38,.32),rgba(14,23,38,0) 45%)}
.spot{position:absolute;left:var(--x);top:var(--y);width:2.15vw;height:2.15vw;min-width:22px;min-height:22px;transform:translate(-50%,-50%);transition:opacity .6s,visibility .6s}
body[data-time="day"] .spot[data-t="night"],body[data-time="night"] .spot[data-t="day"]{opacity:0;visibility:hidden;pointer-events:none}
/* + 아이콘 — 카드가 열리면 45° 돌아 × */
.spot i{position:absolute;inset:0;border-radius:50%;background:linear-gradient(#282828,#282828) center/40% 1.5px no-repeat,linear-gradient(#282828,#282828) center/1.5px 40% no-repeat,rgba(255,255,255,.92);transition:transform .35s}
.spot.is-open i{transform:rotate(45deg)}
.spot i::after{content:'';position:absolute;inset:-35%;border-radius:50%;border:1px solid rgba(255,255,255,.8);animation:pulse 2.4s ease-out infinite}
.spot.is-open i::after{animation:none;opacity:0}
.spot__card{position:absolute;left:50%;bottom:calc(100% + 14px);width:250px;padding:18px 20px 16px;border-radius:4px;background:#f0eae2;color:#282828;text-align:left;box-shadow:0 10px 30px rgba(14,23,38,.25);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .3s,transform .3s,visibility .3s;pointer-events:none}
.spot__card b{display:block;font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;letter-spacing:-.01em}
.spot__card em{display:block;margin-top:10px;font-style:normal;font-size:13px;line-height:1.6}
.spot__card small{display:block;margin-top:10px;font-size:11px;line-height:1.5;color:var(--gold-soft)}
.spot:hover .spot__card,.spot:focus-visible .spot__card,.spot.is-open .spot__card{opacity:1;visibility:visible;transform:translate(-50%,0)}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.6);opacity:0}}
.hero__title{position:absolute;left:0;right:0;top:3vw;z-index:1;text-align:center;color:#fff;will-change:transform}
.hero__h1{font-family:'Instrument Serif',var(--serif);font-weight:400;font-size:12vw;line-height:.87;letter-spacing:-.024em;text-transform:uppercase}
.hero__h1 > span{display:block}
.hero__script{position:absolute;left:0;right:0;top:17.8vw;font-size:7.5vw;line-height:1;color:#fff}
.hero__row{display:grid;grid-template-columns:21vw 13.4vw 21vw;width:55.4vw;margin:11.3vw auto 0;align-items:center}
.hero__side{font-family:var(--serif);font-size:2.2vw;line-height:1;letter-spacing:-.01em}
.hero__side:first-child{text-align:left}
.hero__side:last-child{text-align:right}
.hero__time{display:flex;justify-content:space-between;padding:0 .6vw}
.hero__time button{font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:max(8px,.5625vw);letter-spacing:.32em;color:#fff;opacity:.55}
.hero__time button.is-on{opacity:1}
.hero__cta{display:none}
.hero__cap{position:absolute;left:var(--pad);top:calc(100vh - 62px);z-index:1;font-size:11px;color:#fff;opacity:.85}

/* 2. 아치 — ERA 실측: 높이·반지름 = 가로폭의 1/2, 첫 화면 끝에서 1,620px(1.8화면) 겹침 */
.arch{position:relative;z-index:2;height:50vw;margin-top:-180vh;border-radius:50vw 50vw 0 0;overflow:hidden;display:flex;flex-direction:column;align-items:center}
.arch__ring{position:absolute;left:50%;top:3.2vw;width:62vw;transform:translateX(-50%);overflow:visible;fill:var(--fg)}
.arch__ring text{font-family:'Instrument Serif',var(--serif);font-size:30px;letter-spacing:.5em}
.arch__logo{display:grid;grid-template-columns:1fr 3vw 1fr;align-items:center;gap:2vw;width:100%;padding:0 3vw;margin-top:20vw;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.3em}
.arch__logo span:first-child{text-align:right}
.arch__mark{width:3vw;height:3vw;fill:none;stroke:var(--gold);stroke-width:1.6}
.arch__line{width:1px;height:13vw;margin-top:3.33vw;background:var(--fg);clip-path:inset(0 0 100% 0)}
.arch__tag{margin-top:3.33vw;font-family:var(--serif);font-size:15px;letter-spacing:.1em}

/* 3-1. 입지 — ERA 실측(1440×900) */
/* 0930 배우님 "글자 너무 크고 무슨 내용인지 안 들어와" + "주변 환경이랑 겹친다" + "세 가지로, 스크롤 정확하게" → 사업 자체 3장 · 들어오면 멈추고 쓸기 한 번 = 한 장(main.js)
   위에서부터 쌓음: 이유 표시(19vh) → 제목 6vw(전 12vw = 1640px 화면에서 197px) → 사진 26vw×13vw → 설명. 전부 한 화면 안 */
.loc{position:relative;z-index:2;height:calc(100vh + 240px);height:calc(100svh + 240px);text-align:center;--lt:calc(19vh + 48px + 1.2vw);--lh:calc(6vw * 1.15)}  /* 화면 한 장 + 붙잡는 여유 240px(빠른 쓸기가 한 프레임에 못 건너뛰게) */  /* 제목 글자 상자가 줄높이(1.05)보다 위로 약 .12em 튀어나옴 → 표시와 안 닿게 1.2vw 더 */
.loc__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.loc__num{position:absolute;left:3vw;top:calc(3vw + 44px);display:flex;gap:10px;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em;z-index:2}
.loc__num span{opacity:.35;transition:opacity .4s}
.loc__num span.is-on{opacity:1}
.loc__slide{position:absolute;inset:0;pointer-events:none}
.loc__slide.is-on{pointer-events:auto}
.loc__lab{position:absolute;left:0;right:0;top:19vh;font-size:15px;font-weight:500;letter-spacing:.18em;color:var(--gold-soft);opacity:0;transition:opacity .25s}
.loc__lab b{font-family:'Instrument Serif',var(--serif);font-weight:400;font-size:1.7em;letter-spacing:0;color:var(--gold);vertical-align:-.08em}
.loc__title{position:absolute;left:0;right:0;top:var(--lt);font-family:var(--serif);font-weight:400;font-size:6vw;line-height:1.05;letter-spacing:-.03em;overflow:hidden;padding-bottom:.1em}
.loc__title .ch{transform:translateY(130%)}
.loc__slide.is-on .loc__title .ch{transform:none}
.loc__img{position:absolute;left:50%;top:calc(var(--lt) + var(--lh) + 5vh);width:26vw;height:13vw;transform:translateX(-50%);clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.7,0,.2,1)}
.loc__slide.is-on .loc__img{clip-path:inset(0 0 0 0);transition-delay:.25s}
.loc__txt{position:absolute;left:0;right:0;top:calc(var(--lt) + var(--lh) + 5vh + 13vw + 4vh);font-size:15px;line-height:1.6;opacity:0;transition:opacity .25s}  /* 나갈 땐 빨리 */
.loc__txt small{display:block;margin-top:6px;font-size:11px;color:var(--gold-soft)}
.loc__slide.is-on .loc__txt,.loc__slide.is-on .loc__lab{opacity:1;transition:opacity .6s .45s}

/* 3-2. 인용 */
.quote{position:relative;z-index:2;height:74.2vw;overflow:hidden;color:#f7f2ea}
.quote__bg{position:absolute;inset:-8% 0;will-change:transform}
.quote__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,23,38,0) 35%,rgba(14,23,38,.55))}
.quote__txt{position:absolute;left:50vw;right:3vw;top:55.3vw;z-index:1}
.quote__txt p{font-family:var(--serif);font-size:2.5vw;line-height:1.2;letter-spacing:-.01em}
.quote__txt cite{display:block;margin-top:1.4vw;font-style:normal;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em}

/* 4~5. 컨셉 + 가로 트랙 — ERA 실측(1440×900): 섹션 4,514 · 화면 안쪽 여백 43px(3vw) · 트랙 4,471(310.5vw) */
.hz{position:relative;z-index:3;height:501.6vh}
.hz__screen{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;padding:0 3vw}
.hz__track{position:relative;width:310.5vw;height:100%;will-change:transform}
.hz__prop{position:absolute;width:50vw;height:50vw;max-width:720px;max-height:720px;display:grid;place-items:center;border:1px dashed var(--gold-soft);color:var(--gold-soft);font-size:12px}
.hz__prop--1{left:-7vw;top:-8.4vh}
.hz__prop--2{left:80vw;top:45.3vh}
.hz__prop--3{left:267.5vw;top:-14.4vh}
.hz__intro{position:absolute;left:4.3vw;width:85.3vw;top:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform-origin:50% 50%}
.hz__lab{font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em}
.hz__title{margin-top:2.2vw;max-width:42vw;font-family:var(--serif);font-weight:400;font-size:3.94vw;line-height:1.1;letter-spacing:-.016em}
.hz__txt{margin-top:2vw;font-size:13px;line-height:1.55;color:var(--gold-soft)}
.hz__tag{position:absolute;left:92vw;top:47vh;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.3em}
.hz__words{position:absolute;left:100vw;top:18vh;font-family:var(--serif);font-weight:400;font-size:9vw;line-height:.95;letter-spacing:-.04em}
.hz__words span{display:block}
.hz__words span:nth-child(2){margin-left:7vw}
.hz__words span:nth-child(3){margin-left:2vw}
.hz__photo{position:absolute;left:141.5vw;top:4.8vh;width:37vw;height:90.4vh}
.hz__note{position:absolute;left:181.5vw;top:60vh;width:24vw}
.hz__note-t{margin-top:1vw;font-family:var(--serif);font-size:2.2vw;line-height:1.2}
.hz__map{position:absolute;left:226vw;width:75vw;top:0;height:100%;text-align:center}
.hz__map-t{position:absolute;left:0;right:0;top:27vh;font-family:var(--serif);font-weight:400;font-size:4.4vw;line-height:1.1}
.hz__map-t .script{display:block;font-size:1.3em;line-height:.6;margin:.05em 0 .15em}
.hz__map .line__map{position:absolute;left:0;top:55vh;width:100%;height:auto;margin:0}
.hz__map .hz__txt{position:absolute;left:0;right:0;top:84vh;margin:0;font-size:11px}
.hz__dots{display:none}
.line__map{overflow:visible}
.line__path{fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:round}
.line__st{opacity:0}
.line__st circle{fill:var(--paper);stroke:var(--fg);stroke-width:2;transition:fill .8s}
.line__st.is-main circle{fill:var(--gold);stroke:var(--gold)}
.line__st text{fill:var(--fg);font-family:var(--serif);font-size:22px;text-anchor:middle}
.line__st.is-main text{font-size:30px;font-weight:700}

/* 5-2. 하루 동선 8장면 — v6 화면 실측(1440×900): 카드 폭 118px(8.2vw)·간격 31px(2.15vw)·높이 54~64vh·윗변 17~31vh·3초에 80px 흐름 */
.scn{position:relative;z-index:3;height:100vh;height:100svh;min-height:600px;overflow:hidden}
.scn__bg{position:absolute;inset:-4%;opacity:.16;filter:grayscale(1) blur(2px)}
.scn__rail{position:absolute;inset:0}
.scn__track{position:absolute;left:0;top:0;height:100%;display:flex;gap:2.15vw;padding-left:2.15vw;will-change:transform}
.scn__card{position:relative;flex:0 0 8.2vw;height:var(--h);margin-top:var(--t);overflow:hidden;background:#222;cursor:pointer;padding:0}
.scn__card img{position:absolute;inset:-3.5%;width:107%;height:107%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .7s}
.scn__card:hover img,.scn__card:focus-visible img{filter:grayscale(0);transform:scale(1.04)}
.scn__card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.scn__no{position:absolute;left:0;right:0;bottom:12px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:8px;letter-spacing:.2em;color:#fff}
.scn__no b{font-size:11px;letter-spacing:.05em;color:var(--gold)}
.scn__head{position:absolute;left:50%;top:31.3vh;width:43.3vw;transform:translateX(-50%);text-align:center;z-index:2;pointer-events:none}
.scn__head::before{content:'';position:absolute;inset:-9vh -8vw;z-index:-1;background:radial-gradient(closest-side,var(--paper) 55%,rgba(240,234,226,0));transition:background .8s}
.scn__eyebrow{font-weight:600;font-size:14px;letter-spacing:.3em;color:var(--gold-soft)}
.scn__title{display:flex;align-items:flex-end;justify-content:center;gap:1.4vw;margin-top:2.2vh;font-family:var(--serif);font-weight:500;font-size:5.1vw;line-height:.9;letter-spacing:-.02em;color:var(--fg)}
.scn__title span{text-align:left}
.scn__title b{font-family:'Instrument Serif',var(--serif);font-weight:400;font-size:1.55em;line-height:.8}
.scn__sub{margin-top:4.5vh;font-weight:600;font-size:16px}
.scn__line{margin-top:.8vh;font-family:var(--serif);font-size:1.45vw;line-height:1.4}
.scn__note{margin-top:2vh;font-size:11px;color:var(--gold-soft)}

/* 8장면 상세 */
.scd{position:fixed;inset:0;z-index:90;display:grid;grid-template-columns:55vw 1fr;background:var(--paper);color:var(--fg)}
.scd[hidden]{display:none !important}
.scd__img{position:relative;height:100%;overflow:hidden}
.scd__img img{height:100%;width:100%;object-fit:cover}
.scd__txt{display:flex;flex-direction:column;justify-content:center;padding:8vh 5vw}
.scd__eyebrow{font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:11px;letter-spacing:.24em;color:var(--gold)}
.scd__title{margin-top:2vh;font-family:var(--serif);font-weight:400;font-size:3.2vw;line-height:1.15;letter-spacing:-.02em}
.scd__desc{margin-top:3vh;font-size:15px;line-height:1.75}
.scd__side{display:flex;flex-direction:column;gap:6px;margin-top:4vh;padding-top:2.4vh;border-top:1px solid var(--line)}
.scd__st{font-family:var(--serif);font-weight:600;font-size:18px}
.scd__sd{font-size:13px;color:var(--gold-soft)}
.scd__nav{display:flex;align-items:center;gap:22px;margin-top:5vh}
.scd__nav button{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;font-size:18px}
.scd__nav button:hover{border-color:var(--gold)}
.scd__count{font-family:'Instrument Serif',var(--serif);font-size:22px}
.scd__count b{font-weight:400;color:var(--gold)}
.scd__legal{margin-top:4vh;font-size:11px;color:var(--gold-soft)}
.scd__close{position:absolute;right:calc(3vw + env(safe-area-inset-right,0px));top:calc(22px + env(safe-area-inset-top,0px));font-size:13px;letter-spacing:.1em;border:1px solid var(--line);border-radius:999px;padding:8px 16px;background:var(--paper)}
body.is-detail{overflow:hidden}

/* 6. 전경 — ERA 실측(1440×900): 섹션 1,247(86.6vw) · 구름 띠 540px(37.5vw) 경계 위로 83px 걸침 */
.aerial{position:relative;z-index:4;height:86.6vw;color:#f7f2ea;overflow-x:clip}
.aerial__img{position:absolute;inset:0;overflow:hidden}
.aerial__img img{height:118%;will-change:transform}
.aerial__cloud{position:absolute;left:-20vw;right:-20vw;top:-12vw;height:37.5vw;pointer-events:none;will-change:transform;
  background:
   radial-gradient(28vw 9vw at 12% 55%,#fff 0,rgba(255,255,255,.85) 40%,rgba(255,255,255,0) 72%),
   radial-gradient(24vw 8vw at 34% 40%,#fff 0,rgba(255,255,255,.8) 42%,rgba(255,255,255,0) 72%),
   radial-gradient(30vw 10vw at 58% 58%,#fff 0,rgba(255,255,255,.85) 40%,rgba(255,255,255,0) 72%),
   radial-gradient(22vw 8vw at 80% 42%,#fff 0,rgba(255,255,255,.8) 42%,rgba(255,255,255,0) 72%),
   radial-gradient(26vw 9vw at 96% 60%,#fff 0,rgba(255,255,255,.85) 40%,rgba(255,255,255,0) 72%),
   linear-gradient(180deg,var(--paper) 0,var(--paper) 22%,rgba(240,234,226,0) 60%)}
.aerial__lab{position:absolute;left:68.75vw;top:62vw;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em;line-height:1.8}
.aerial__lab span{font-family:var(--serif);font-weight:400;font-size:14px;letter-spacing:.05em}

/* 6-2. 필름 — 세로 영상: PC는 가운데 전체 높이 + 흐린 배경, 폰은 화면 가득 */
.film{position:relative;z-index:4;height:190vh;background:var(--night)}
.film__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.film__blur{position:absolute;inset:-6%;filter:blur(40px) brightness(.55) saturate(1.1)}
.film__frame{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);height:100%;aspect-ratio:9/16;max-width:100%;overflow:hidden;box-shadow:0 0 80px rgba(0,0,0,.35)}
.film__video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.film__txt{position:absolute;left:3vw;bottom:7vh;z-index:2;color:#f7f2ea;max-width:26vw}
.film__txt .chap{color:#e6d6c2}
.film__txt .chap i{color:#f0d9b8}
.film__title{margin-top:1.2vw;font-family:var(--serif);font-weight:400;font-size:4.4vw;line-height:1.05;letter-spacing:-.02em}
.film__cap{margin-top:1.4vw;font-size:12px;line-height:1.6;opacity:.85}
.film__replay{margin-top:2vw;color:#f7f2ea;border:1px solid rgba(247,242,234,.5);border-radius:999px;padding:9px 18px;font-size:13px;letter-spacing:.06em}
.film__replay:hover{border-color:var(--gold);color:#f0d9b8}

/* 7. 세대 */
/* 0930: 고정 구간 = 타입당 한 화면(02 입지와 같은 방식). 부모에 overflow:hidden이 있으면 sticky가 안 되므로 가림은 무대에 */
.units{position:relative;z-index:4;height:300vh;height:300svh;text-align:center}
.units__stage{position:sticky;top:0;height:100vh;height:100svh;min-height:62.5vw;overflow:hidden}
.units__card{position:absolute;left:50%;top:17.4vh;width:27.5vw;height:36.7vw;margin-left:-13.75vw;transform-origin:50% 0;background:#fff}
.units__img{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path .9s cubic-bezier(.7,0,.2,1)}
.units__img.is-on{clip-path:inset(0 0 0 0)}
.units__img img{object-fit:contain;padding:8%}
.units__title{position:absolute;left:0;right:0;top:76.8vh;font-family:var(--serif);font-weight:400;font-size:8.5vw;line-height:.9;letter-spacing:-.03em;height:1em;overflow:hidden}
.units__title > span{position:absolute;left:0;right:0}
.units__side{position:absolute;top:44vh;font-size:12px;letter-spacing:.1em}
.units__side--l{left:3vw;text-align:left}
.units__side--l b{display:block;font-family:var(--serif);font-weight:400;font-size:3vw;letter-spacing:-.02em;line-height:1}
.units__side--l b small{font-size:.45em}
.units__side--r{right:3vw;border:1px solid currentColor;border-radius:999px;padding:9px 20px}
.units__note{position:absolute;left:0;right:0;bottom:2.5vh;font-size:11px;color:var(--gold-soft)}
/* 74A / 74B 버튼 (0930) — PC: 카드 위 가운데 */
.units__tabs{position:absolute;left:50%;top:calc(17.4vh - 54px);transform:translateX(-50%);z-index:2;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px}
.units__tabs button{min-width:68px;padding:8px 16px;border-radius:999px;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:11px;letter-spacing:.14em;color:var(--fg);opacity:.55;transition:background .3s,color .3s,opacity .3s}
.units__tabs button.is-on{background:var(--fg);color:var(--mist);opacity:1}
.units__tabs button:focus-visible{outline:1px solid var(--gold);outline-offset:2px}

/* 8. 세대 요약 */
.range{position:relative;z-index:4;height:59.4vw;text-align:center;padding-top:14vw}
.range__prop{position:absolute;left:-4vw;top:28vw;width:50vw;height:50vw;max-width:720px;max-height:720px;display:grid;place-items:center;border:1px dashed var(--gold-soft);color:var(--gold-soft);font-size:12px;pointer-events:none}
.range__txt{position:relative;max-width:56vw;margin:0 auto;font-family:var(--serif);font-size:3.94vw;line-height:1.1;letter-spacing:-.016em}
.range__line{width:1px;height:9vw;margin:3vw auto 0;background:var(--fg);clip-path:inset(0 0 100% 0)}
.range__lab{margin-top:2vw;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em}

/* 9. 야경 — ERA 실측(1440×900) */
.night{position:relative;height:330vh;z-index:4}
.night__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--night)}
.night__zoom{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform;color:#f7f2ea}
.night__zoom::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,23,38,.1),rgba(14,23,38,.45))}
.night__lab{position:absolute;left:68.75vw;top:12vh;z-index:1;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em;line-height:1.8}
.night__lab span{font-family:var(--serif);font-weight:400;font-size:2.5vw;letter-spacing:-.01em;line-height:1.2}
.night__txt{position:absolute;left:21.9vw;top:79.2vh;z-index:1;font-family:var(--serif);font-size:2.5vw;line-height:1.15;letter-spacing:-.01em}

/* 10. 두 번째 아치 · 공간 */
.space{position:relative;z-index:5;height:205.8vw;margin-top:-180vh;border-radius:50vw 50vw 0 0;overflow:hidden;padding:0}
.space__title{position:absolute;left:0;right:0;top:15vw;text-align:center;font-family:var(--serif);font-weight:400;font-size:7vw;line-height:.95;letter-spacing:-.03em}
.space__title > span{display:block;overflow:hidden}
.space__title em{display:block;font-size:1.25em;line-height:.7;margin-top:-.05em;font-style:normal}
.space__txt{position:absolute;left:43vw;top:52vw;width:40vw;font-family:var(--serif);font-size:2.2vw;line-height:1.25}
.space__box{position:absolute;left:0;top:67.8vw;width:39.6vw;height:39.6vw;background:var(--night);overflow:visible}
.space__in{position:absolute;left:8.5vw;top:13.2vw;width:22.6vw;height:30.1vw;overflow:hidden}
.space__tr{position:absolute;left:59.4vw;top:60.3vw;width:39.6vw;height:29.7vw}
.space__big{position:absolute;left:21.8vw;top:147.6vw;width:77.2vw;height:48.3vw;overflow:hidden}
.space__slide{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1)}
.space__slide.is-on{clip-path:inset(0 0 0 0)}
.space__slide:first-child{clip-path:inset(0 0 0 0)}
.space__note{position:absolute;left:21.8vw;top:198vw;font-size:11px;color:var(--gold-soft)}
.space figure img{will-change:transform}

/* 11. 건축 — ERA 실측(1440×900) */
.archi{position:relative;z-index:5;height:373.6vh}
.archi__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.archi__photo{position:absolute;left:12.4vw;top:0;width:74.2vw;height:81.3vw;will-change:width,height,left}
.archi__photo img{will-change:transform}
.archi__prop{position:absolute;display:grid;place-items:center;color:var(--gold-soft);font-size:12px;border:1px dashed rgba(153,129,112,.45);transform-origin:50% 50%;will-change:transform}
.archi__prop--l{left:-18.1vw;top:15vh;width:68.3vw;height:68.3vw}
.archi__prop--r{left:46.7vw;top:16.4vh;width:66.5vw;height:66.5vw}
.archi__word{position:absolute;left:0;right:0;top:3vw;text-align:center;font-family:'Instrument Serif',var(--serif);font-size:18vw;line-height:.9;letter-spacing:-.02em;color:#fff;z-index:2;overflow:hidden}
.archi__word .ch{transform:translateY(110%)}
.archi__para{position:relative;z-index:3;margin-top:226.3vh;padding:0 0 0 12.4vw;width:49vw}
.archi__para p:first-child{font-family:var(--serif);font-size:2.5vw;line-height:1.2;letter-spacing:-.01em;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.35)}
.archi__cap{margin-top:1.4vw;font-size:11px;color:#fff;opacity:.85}

/* 12. 사업주체 */
.dev{position:relative;z-index:5;height:56.8vw;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.dev__prop{position:absolute;left:48.6vw;top:-10vw;width:70.7vw;height:70.7vw;display:grid;place-items:center;border:1px dashed var(--gold-soft);color:var(--gold-soft);font-size:12px}
.dev__lab{font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em;margin-bottom:2vw}
.dev__txt{position:relative;font-family:var(--serif);font-weight:400;font-size:6vw;line-height:.95;letter-spacing:-.03em}
.dev__txt > span{display:block;overflow:hidden}

/* 13. 상담 */
.contact{position:relative;z-index:5;height:108.5vw;overflow:hidden;color:#fff;text-align:center}
.contact__bg{position:absolute;left:0;right:0;top:-20vw;height:151.8vw;will-change:transform}
.contact__bg::after{content:'';position:absolute;inset:0;background:rgba(14,23,38,.25)}
.contact__big{position:absolute;left:0;right:0;top:23vw;font-family:var(--serif);font-weight:400;font-size:12vw;line-height:.87;letter-spacing:-.04em;overflow:hidden;z-index:1}
.contact__sub{position:absolute;left:0;right:0;top:36vw;z-index:1;font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10px;letter-spacing:.2em}
.contact__txt{position:absolute;left:0;right:0;bottom:8vw;z-index:1;font-family:var(--serif);font-size:1.6vw;line-height:1.5}

/* 14. 푸터 — 관심고객 등록: v6 등록 화면 모양(화면 확인 0929)을 새 코드로 */
/* 0929 배우님: "등록하고 싶은 시원한 색감" → 맑은 청회색(ERA 청회 계열) + 남색 버튼 */
.foot{position:relative;z-index:6;margin-top:-16vw;background:linear-gradient(180deg,#d9e6ee 0%,#c7d9e4 100%);color:#12233a;padding:14vh var(--pad) 6vh}
.foot__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:6vw;max-width:1280px;margin:0 auto;align-items:start}
.foot__form{order:2}
.foot__info{order:1;padding-top:6px}
.foot__chap{margin-bottom:1.6vh}
.foot__big{font-family:var(--serif);font-weight:500;font-size:clamp(26px,2.2vw,34px);line-height:1.2;letter-spacing:-.02em}
.foot .form{display:flex;flex-direction:column;gap:12px;margin-top:3.4vh}
.foot .form__field{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:12px}
.foot .form__field span{font-size:13px;font-weight:500;color:#34506a}
.foot .form__field input{height:44px;padding:0 14px;border:1px solid #adc3d2;border-radius:4px;background:#ffffff;color:#12233a;font:inherit;font-size:16px;outline:none;transition:border-color .25s,background .25s}
.foot .form__field input::placeholder{color:#9db1c0}
.foot .form__field input:focus{border-color:#12304f;box-shadow:0 0 0 3px rgba(18,48,79,.12)}
.foot .form__agree{display:flex;align-items:flex-start;gap:10px;margin-left:76px;cursor:pointer;font-size:12px;line-height:1.55;color:#48617a}
.foot .form__agree b{font-weight:600;color:#12233a}
.foot .form__agree input{position:absolute;opacity:0;width:1px;height:1px}
.foot .form__agree i{flex:0 0 15px;height:15px;margin-top:2px;border:1px solid #7f9bb0;border-radius:2px;background:#fff;position:relative;transition:.2s}
.foot .form__agree input:checked + i{background:#0e1726;border-color:#0e1726}
.foot .form__agree input:checked + i::after{content:'';position:absolute;left:4.5px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.foot .form__agree input:focus-visible + i{outline:1px solid var(--gold);outline-offset:3px}
.foot .form__btn{align-self:flex-start;margin:8px 0 0 76px;padding:14px 34px;border-radius:999px;background:#0e1726;color:#fff;box-shadow:0 8px 22px rgba(14,23,38,.22);font-size:14px;font-weight:600;letter-spacing:.04em;transition:background .3s}
.foot .form__btn:hover,.foot .form__btn:focus-visible{background:#1f4466}
.foot .form__note{margin-left:76px;font-size:11px;color:#6b8397}
.foot .form__msg{margin-left:76px;min-height:1.4em;font-size:13px;color:#12304f}
.foot__logo{font-family:var(--serif);font-weight:700;font-size:24px;line-height:1;display:flex;flex-direction:column;gap:6px}
.foot__logo small{font-family:var(--sans);font-weight:500;font-size:9px;letter-spacing:.35em}
.foot__biz{margin-top:3vh;font-size:12px;line-height:1.8;color:#34506a}
.foot__legal{list-style:none;margin-top:2.4vh;display:grid;gap:4px;font-size:11.5px;line-height:1.6;color:#56708a}
.foot__copy{margin-top:3vh;font-size:11px;color:#6b8397;display:flex;gap:18px;flex-wrap:wrap}
.foot__top{border-bottom:1px solid currentColor}

/* 모바일 */
@media (max-width:760px){
  .top{gap:14px}
  .top__nav{display:none}
  .top__menu{display:flex}
  .top.is-open .top__nav{display:flex;flex-direction:column;position:fixed;inset:64px 16px auto;background:var(--night);color:#f0eae2;padding:24px;gap:18px;border-radius:6px}
  .top.is-open{mix-blend-mode:normal}
  /* ERA 실측(390×844): 구간 2,727 · 제목 23vw/0.91 top 143 · 필기 17.3vw top 279 · 줄 6.73vw top 381 · CTA top 694 */
  .hero{height:323vh}
  .hero__zoom{height:100%}
  /* 제목 고정 = CSS sticky (JS로 끌어내리면 터치 스크롤에서 떨림, 0930). 흐름상 사진 무대(100svh) 뒤라 그만큼 끌어올림 */
  .hero__title{position:sticky;top:36.7vw;margin-top:calc(36.7vw - 100svh)}
  .hero__h1{font-size:23vw;line-height:.91}
  .hero__script{top:35vw;font-size:17.3vw}
  .hero__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:auto;margin:8.5vw 5.9vw 0}
  .hero__time{display:none}
  .spot{display:none}
  .hero__side{font-size:6.73vw}
  .hero__cta{display:block;position:absolute;left:0;right:0;top:calc(82.2vh - 36.7vw);font-family:'Archivo',var(--sans);font-stretch:125%;font-weight:700;font-size:10.3px;letter-spacing:.048em;text-transform:uppercase}
  .arch{height:128.7vw;margin-top:-123vh}
  .arch__ring{width:92vw;top:6vw}
  .arch__logo{margin-top:29vw;grid-template-columns:1fr 11.5vw 1fr}
  .arch__mark{width:11.5vw;height:11.5vw}
  .arch__line{height:42vw;margin-top:7.7vw}
  .loc__title{font-size:16vw;top:18vw}
  .loc__img{width:70vw;height:35vw;top:38%}
  .loc__txt{font-size:13px;top:70%;padding:0 5.9vw}
  .quote{height:140vw}
  .quote__txt{left:5.9vw;right:5.9vw;top:auto;bottom:10vw}
  .quote__txt p{font-size:6vw}
  .hz__track{width:520vw}
  .hz__intro{width:94vw;left:0}
  .hz__title{max-width:none;font-size:7.5vw}
  .hz__words{left:108vw;font-size:22vw}
  .hz__tag{left:104vw}
  .hz__photo{left:200vw;width:80vw;height:70vh;top:15vh}
  .hz__note{left:290vw;width:70vw;top:30vh}
  .hz__note-t{font-size:7vw}
  .hz__map{left:432vw;width:88vw}
  .hz__map-t{font-size:10vw}
  .hz__prop--2{left:150vw} .hz__prop--3{left:440vw}
  .concept__collage{height:auto;display:grid;gap:24px}
  .concept__collage .c1,.concept__collage .c2{position:relative;left:auto;right:auto;top:auto;width:100%}
  .concept__collage .c1{width:64%}
  .concept__word{position:relative;top:auto;margin-top:-.4em}
  .aerial{height:140vw}
  .aerial__lab{left:5.9vw;top:auto;bottom:10vw}
  .units__card{width:62vw;height:82vw;margin-left:-31vw;top:14vh}
  .units__title{font-size:20vw;top:auto;bottom:12vh}
  .units__side{top:auto;bottom:4vh}
  .units__side--l b{font-size:8vw}
  .range{height:auto;padding:30vw 5.9vw 24vw}
  .range__txt{max-width:none;font-size:7.5vw}
  .night__lab{left:5.9vw;top:14vh}
  .night__lab span{font-size:7vw}
  .night__txt{left:5.9vw;top:auto;bottom:14vh;font-size:7vw}
  .space{height:330vw;margin-top:-123vh}
  .space__title{top:30vw;font-size:17vw}
  .space__txt{left:5.9vw;top:95vw;width:88vw;font-size:6vw}
  .space__box{top:130vw;width:70vw;height:70vw}
  .space__in{left:14vw;top:22vw;width:42vw;height:56vw}
  .space__tr{left:40vw;top:210vw;width:60vw;height:45vw}
  .space__big{left:0;top:265vw;width:100vw;height:62vw}
  .space__note{left:5.9vw;top:322vw}
  .archi__photo{left:5.9vw;width:88.2vw;height:118vw;top:12vh}
  .archi__word{font-size:17vw;top:18vw}
  .archi__para{width:auto;padding:0 5.9vw;margin-top:226.3vh}
  .archi__para p:first-child{font-size:6vw}
  .dev{height:auto;padding:28vw 5.9vw}
  .dev__txt{font-size:11vw}
  .contact{height:160vw}
  .contact__bg{height:200vw}
  .contact__big{font-size:20vw;top:40vw}
  .contact__sub{top:62vw}
  .contact__txt{font-size:4.2vw;padding:0 5.9vw}
  .line__map{width:150%;margin-left:-25%}
  .line__st text{font-size:40px}
  .line__st.is-main text{font-size:52px}
  .line__path{stroke-width:6}

  /* ── 폰 글꼴 기준 (2026-09-29 확정) — ERA 390px 실측 비율 + 한글 본문 보정. 
     넘칠 때만 main.js fitText가 줄임(폰 글자 확대 대응). 아래 값이 기준이다. */
  :root{
    /* 제목 단계는 폰 글자 확대 배율(--tz, main.js가 감지)로 나눠 화면 비율을 지킨다 */
    --m-d1:calc(23.1vw / var(--tz,1));  /* 대제목   ERA 90px    */
    --m-d2:calc(17.6vw / var(--tz,1));  /* 섹션제목 ERA 68.4px  */
    --m-d3:calc(13.5vw / var(--tz,1));  /* 중제목   ERA 52.5px  */
    --m-h:calc(9.6vw / var(--tz,1));    /* 문장제목 ERA 37.5px  */
    --m-m:calc(6.7vw / var(--tz,1));    /* 중간글   ERA 26.25px */
    --m-s1:calc(17.3vw / var(--tz,1));  /* 필기체 큰 ERA 67.5px */
    --m-s2:calc(11.5vw / var(--tz,1));  /* 필기체 작 ERA 45px   */
    --m-body:15px;  /* 본문   (ERA 12.2px 영문 → 한글 보정) */
    --m-cap:12px;   /* 작은 설명·고지 */
    --m-label:10.3px; /* 굵은 영문 대문자 라벨 ERA 10.3px */
    --m-input:16px; /* 입력칸 (16px 미만이면 아이폰 입력 시 확대) */
  }
  .hero__h1{font-size:var(--m-d1);line-height:.91}
  .hero__script{font-size:var(--m-s1)}
  .hero__side{font-size:var(--m-m)}
  .hero__cta,.hz__lab,.hz__tag,.dev__lab,.range__lab,.aerial__lab,.night__lab,.contact__sub,.loc__lab,.loc__num,.quote__txt cite{font-size:var(--m-label)}
  .loc__title,.units__title,.space__title,.contact__big{font-size:var(--m-d2)}
  .archi__word{font-size:var(--m-d1)}
  .dev__txt,.hz__map-t{font-size:var(--m-d3)}
  .hz__words{font-size:var(--m-d2)}
  .hz__title,.range__txt{font-size:var(--m-h);line-height:1.12}
  .quote__txt p,.hz__note-t,.space__txt,.night__txt,.night__lab span,.archi__para p:first-child,.units__side--l b{font-size:var(--m-m);line-height:1.25}
  .loc__txt,.contact__txt,.hz__txt{font-size:var(--m-body);line-height:1.6}
  .hz__map .hz__txt,.units__note,.space__note,.archi__cap,.foot__legal,.hero__cap,.note{font-size:var(--m-cap);line-height:1.5}
  .foot .form label{font-size:var(--m-cap)}
  .foot .form input:not([type=checkbox]){font-size:var(--m-input)}
  .aerial__lab span{font-size:var(--m-body)}

  /* 한글 큰 제목 — 가림(overflow) 안에서 받침이 잘리지 않게 */
  .loc__title,.units__title,.contact__big,.foot__big{line-height:1.02;padding-bottom:.1em}
  .dev__txt > span,.space__title > span{line-height:1.02;padding-bottom:.08em}
  /* 세대: 카드 → 제목 → 면적·버튼 → 안내문 순서로, 서로 겹치지 않게 */
  /* 평면도 크게 (배우님 0930 폰 캡처 2회) — 큰 74A/74B 제목은 빼고(글자 아래 잘림), 그 자리에 면적·안내문.
     장 표시 줄 오른쪽에 74A/74B 버튼 → 여백 자른 평면(_t) 카드 94vw×80vw(안쪽 여백 3%) → 면적 → 안내문 순서로 위에서부터 쌓음 */
  .units__tabs{left:auto;right:5.9vw;transform:none;top:calc(58px + env(safe-area-inset-top,0px))}
  .units__card{top:calc(108px + env(safe-area-inset-top,0px));width:94vw;height:80vw;margin-left:-47vw}
  .units__img img{padding:3%}
  .units__title{display:none}
  .units__side{top:auto;bottom:calc(3vh + 34px)}
  .units__side--r{padding:7px 16px}
  .units__note{bottom:2vh;padding:0 5.9vw}
  /* 옥상정원: 아래 문장이 푸터(위로 16vw 겹침)에 가리지 않게 */
  .contact__txt{bottom:26vw}


  /* ── ERA 폰 전환지도 반영 (2026-09-29, tmap_m.json · 390×844 기준) ── */
  /* 인용: ERA 폰은 글 없이 정사각 사진 띠(390px = 100vw) */
  .quote{height:100vw}
  .quote__txt{display:none}
  /* 컨셉·하루 동선: 가로 이동 없이 세로로 쌓임 (ERA 섹션 2,241px) */
  /* 02 입지 — 폰: 세로로 쓸면 가로로 한 장씩 넘어감 (배우님 0929 "가로 스크롤 스위칭")
     5장(소개·큰 단어·사진·설명·노선도) × 100vw, 고정 구간 400vh → 한 단계 스크롤(100vh)마다 정확히 한 장 */
  .hz{height:500vh;padding:0}
  .hz__screen{position:sticky;top:0;height:100svh;overflow:hidden;padding:0}
  .hz__track{display:flex;flex-direction:row;width:500vw;height:100%}
  .hz__track > *{position:relative;left:auto;top:auto;flex:0 0 100vw;width:100vw;height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 7vw}
  .hz__prop,.hz__tag{display:none !important}
  .hz__intro{align-items:center;text-align:center}
  .hz__words{align-items:flex-start;justify-content:center;padding-left:12vw}
  .hz__photo{align-items:center;justify-content:center}
  .hz__photo img{width:78vw;height:min(104vw,68svh);object-fit:cover}
  .hz__note{text-align:left}
  .hz__map{text-align:center}
  .hz__map-t{position:relative;top:auto}
  .hz__map .line__map{position:relative;top:auto;width:100%;margin:8vw 0 0}
  .hz__map .hz__txt{position:relative;top:auto;margin-top:4vw}
  .hz__dots{position:absolute;left:0;right:0;bottom:calc(26px + env(safe-area-inset-bottom,0px));z-index:3;display:flex;justify-content:center;gap:10px;pointer-events:none}
  .hz__dots i{width:6px;height:6px;border-radius:50%;background:var(--fg);opacity:.22;transition:opacity .3s,transform .3s}
  .hz__dots i.is-on{opacity:.85;transform:scale(1.35)}
  /* 전경: ERA 폰 683px = 175vw */
  .aerial{height:175vw}
  /* 야경: ERA 폰 고정 약 1,350px → 구간 260vh, 두 번째 아치 겹침 928px(110vh) */
  .night{height:260vh}
  .space{margin-top:-110vh}
  /* 건축: ERA 폰은 고정·확장 없이 큰 단어 + 세로로 긴 사진 한 장 (1,035px = 265vw) */
  .archi{height:265vw}
  .archi__stage{position:absolute;inset:0;height:100%}
  .archi__photo{left:0;top:0;width:100%;height:100%}
  .archi__prop{display:none}
  .archi__word{top:9vw}
  .archi__para{position:absolute;left:0;right:0;bottom:12vw;margin:0;padding:0 5.9vw;width:auto}
  /* 사업주체 583px ≈ 150vw · 상담 1,035px = 265vw */
  .dev{height:150vw;padding:0 5.9vw}
  .contact{height:265vw}
  .contact__bg{top:-10vw;height:300vw}
  .contact__big{top:34vw}
  .contact__sub{top:calc(34vw + var(--m-d2) * 1.25)}


  /* ── 스토리 재구성 (0929) — 폰 ── */
  .loc__chap,.units__chap{left:5.9vw;top:calc(64px + env(safe-area-inset-top,0px))}
  .jogam{height:150vh}
  .jogam__blur{display:none}
  .jogam__img img{width:100%;height:100%;object-fit:cover}
  .jogam__txt{left:5.9vw;right:5.9vw;bottom:7vh;max-width:none}
  .jogam__title{font-size:var(--m-d3);margin-top:3vw}
  .jogam__cap{font-size:var(--m-cap);margin-top:3vw}
  .hz__cards{order:4;position:relative;left:auto;top:auto;width:auto;display:grid;grid-template-columns:1fr 1fr;gap:9vw 4vw}
  .hz__card{gap:2vw}
  .hz__card img{height:52vw}
  .hz__card figcaption span{font-size:calc(5.2vw / var(--tz,1))}
  .hz__card figcaption b{font-size:var(--m-label)}
  .hz__card figcaption small{font-size:var(--m-cap)}
  .hz__cards-note{grid-column:1/-1}
  .hz__cards-note{position:relative;bottom:auto;font-size:var(--m-cap)}
  .dev__addr{font-size:var(--m-cap);margin-top:5vw}
  .dev__chap{margin-bottom:5vw}


  /* ── 8장면 — v6 폰 실측(390×844): 제목 위쪽(14vh) · 카드 폭 117px(30vw) · 높이 363px(43vh) · 윗변 41~46vh ── */
  .scn__track{gap:4.4vw;padding-left:4.4vw}
  .scn__card{flex:0 0 30vw;height:43vh;margin-top:calc(41vh + (var(--t) - 17.3vh) * .35)}
  .scn__head{top:13.5vh;width:auto;left:5.9vw;right:5.9vw;transform:none}
  .scn__head::before{inset:-6vh -6vw}
  .scn__eyebrow{font-size:var(--m-label);letter-spacing:.24em}
  .scn__title{font-size:calc(12vw / var(--tz,1));gap:3vw;margin-top:2vh}
  .scn__sub{margin-top:2.4vh;font-size:var(--m-body)}
  .scn__line{font-size:var(--m-body)}
  .scn__note{font-size:var(--m-cap)}
  .scd{grid-template-columns:1fr;grid-template-rows:42vh 1fr;overflow-y:auto}
  .scd__txt{justify-content:flex-start;padding:5vw 5.9vw calc(8vw + env(safe-area-inset-bottom,0px))}
  .scd__title{font-size:var(--m-h)}
  .scd__desc{font-size:var(--m-body)}
  .scd__nav{margin-top:6vw}


  /* 문의 배지 — ERA 폰 배지 100px */
  .ask{width:100px;right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .ask__ring text{font-size:13px;letter-spacing:.26em}

  .hero__cap{top:calc(100svh - 126px);right:124px;line-height:1.5}


  /* 필름 — 폰은 세로 영상이 화면 가득 */
  .film{height:160vh}
  .film__blur{display:none}
  .film__frame{left:0;transform:none;width:100%;aspect-ratio:auto}
  /* 영상 안 자막과 겹치지 않게 — 표시·버튼만 화면 위쪽으로, 설명 문구는 숨김(AI 고지는 영상에 포함) */
  .film__txt{left:5.9vw;right:5.9vw;top:calc(66px + env(safe-area-inset-top,0px));bottom:auto;max-width:none;display:flex;align-items:center;justify-content:space-between;gap:4vw;text-shadow:0 1px 10px rgba(0,0,0,.5)}
  .film__cap{display:none}
  .film__replay{margin-top:0;padding:6px 12px;font-size:var(--m-cap);background:rgba(14,23,38,.35)}


  /* 원형 배지(오른쪽 아래 100px)와 멈춤 지점에서 겹치지 않게 (0929 자동 검사) */
  .loc__num{left:5.9vw;top:calc(64px + env(safe-area-inset-top,0px) + 48px)}
  .jogam__txt{bottom:calc(128px + env(safe-area-inset-bottom,0px))}
  .units__side--r{display:none}
  .units__note{padding-right:118px;text-align:left;left:5.9vw}
  .night__txt{max-width:62vw}
  .film__txt{justify-content:flex-start}


  /* 관심고객 등록 — 폰: 폼 먼저, 사업 정보 아래 */
  .foot{padding:12vh 5.9vw calc(6vh + 20px)}
  .foot__grid{grid-template-columns:1fr;gap:10vh}
  .foot__form{order:1}
  .foot__info{order:2}
  .foot__big{font-size:calc(7.2vw / var(--tz,1))}
  .foot .form__field{grid-template-columns:56px 1fr}
  .foot .form__agree,.foot .form__note,.foot .form__msg{margin-left:0}
  .foot .form__btn{margin-left:0;align-self:stretch;text-align:center}

  /* 사업개요 슬라이드 — 장 표시·번호(위) 아래로 큰 제목을 내림 (0929 폰 캡처) */
  .loc__title{top:calc(64px + env(safe-area-inset-top,0px) + 84px)}

  /* 세대안내 (0930) — 큰 제목 자리에 면적·안내문: 카드(108px + 80vw) 바로 아래부터 */
  .units__side.units__side--l{top:calc(108px + env(safe-area-inset-top,0px) + 80vw + 24px);bottom:auto;left:5.9vw}
  .units__note{top:calc(108px + env(safe-area-inset-top,0px) + 80vw + 24px + 68px);bottom:auto;left:0;right:0;padding:0 118px 0 5.9vw}

}

/* 첫 화면 카피 한 줄 (0930) — 저녁·노을 버튼이 빠진 자리. 두 말을 가운데로 붙여 한 문장으로 읽히게 */
.hero__row.hero__row--one{display:flex;justify-content:center;width:auto}
.hero__row--one .hero__side{flex:1 1 auto;text-align:center}  /* 칸 전체 폭 → fitText가 괜히 줄이지 않게 */
/* 폰: 가운데로 모으면 필기체 Gaon의 g·p 꼬리가 글자를 긁음(0930 실측, 상자 19px 겹침) → 꼬리 아래로 내림.
   배우님 0930 "두 파트로 보이게 조금 더 밑으로" → 24vw(필기체와 간격 41px @390). PC는 내리면 밝은 창 위(흰 글자 대비 7.0→1.9:1)라 유지 */
@media (max-width:760px){ .hero__row.hero__row--one{margin-top:24vw} .hero__row--one .hero__side{text-shadow:0 1px 14px rgba(14,23,38,.6),0 0 3px rgba(14,23,38,.35)} }

/* 사업개요 폰 (0930): PC와 같은 방식 · 장 표시·번호 아래부터 표시 → 제목(약 43px) → 사진 84vw×52vw → 설명 */
@media (max-width:760px){
  .loc{--lt:calc(64px + env(safe-area-inset-top,0px) + 84px + 46px);--lh:calc(11vw / var(--tz,1) * 1.15)}
  .loc__lab{top:calc(64px + env(safe-area-inset-top,0px) + 84px);font-size:13px}
  .loc__title{top:var(--lt);font-size:calc(11vw / var(--tz,1))}
  .loc__img{top:calc(var(--lt) + var(--lh) + 6vw);width:84vw;height:52vw}
  .loc__txt{top:calc(var(--lt) + var(--lh) + 6vw + 52vw + 6vw);padding:0 5.9vw}
}

@media (prefers-reduced-motion:reduce){
  .hero,.grow{height:auto}
  .hero__stage,.grow__stage{position:relative}
  .grow__frame{clip-path:none}
  .grow__list li,.line__st{opacity:1;transform:none}
  .concept__lead .w{opacity:1}
  .arch__dome{transform:none}
  .space__arch{clip-path:none}
  .hero__img--entry{display:none}
  .archi__word .ch{transform:none}
  .ask__ring{animation:none}
}

/* 배경음악 버튼 (기본 꺼짐) */
.top__sound{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.18em;opacity:.75;transition:opacity .3s}
.top__sound:hover,.top__sound[aria-pressed="true"]{opacity:1}
.top__bars{display:flex;align-items:flex-end;gap:2px;height:12px}
.top__bars i{display:block;width:2px;height:3px;background:currentColor;transition:height .3s}
.top__sound[aria-pressed="true"] .top__bars i{animation:sndBar 1s ease-in-out infinite alternate}
.top__sound[aria-pressed="true"] .top__bars i:nth-child(2){animation-delay:-.35s}
.top__sound[aria-pressed="true"] .top__bars i:nth-child(3){animation-delay:-.7s}
.top__sound[aria-pressed="true"] .top__bars i:nth-child(4){animation-delay:-.15s}
@keyframes sndBar{from{height:3px}to{height:12px}}
@media (max-width:760px){.top__sound{margin-left:auto;min-width:40px;min-height:40px;justify-content:center}.top__sound + .top__menu{margin-left:0}.top__snd{display:none}.top__bars{height:14px;gap:3px}.top__bars i{width:2.5px}}
@media (prefers-reduced-motion:reduce){.top__sound[aria-pressed="true"] .top__bars i{animation:none;height:9px}}
