/* 장면은 실제 문서 스크롤 위에 놓인다. sticky 조상에는 overflow/transform을
   주지 않아 역방향·터치·앵커 이동도 같은 좌표계로 동작하게 한다. */
.journey-site{--journey-paper:#f0f1e8;--journey-ink:#10251e;--journey-silver:#d4dfc4;--journey-line:#94ac8e4d;background:var(--journey-paper)}
/* 문서 스크롤은 유지하고 루트 스크롤바만 감춘다. 폼/팝업 내부 스크롤에는 적용하지 않는다. */
html:has(body.journey-site){scrollbar-width:none;-ms-overflow-style:none}
html:has(body.journey-site)::-webkit-scrollbar{display:none;width:0}
.journey-site main{overflow:clip}
.journey-site .section{scroll-margin-top:0}
.hero-passage{position:relative;height:145svh;background:var(--journey-paper)}
.journey-site .hero-passage .hero{position:sticky;top:0;transform-origin:50% 55%;transform:scale(var(--cover-scale,1));clip-path:inset(0 round var(--cover-radius,0px));will-change:transform}
.hero-passage:after{content:'THE FIRST IMPRESSION IS ONLY THE BEGINNING.';position:absolute;bottom:20px;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:.2em;color:#657957;opacity:var(--cover-out,0)}
.journey-site .hero-passage .hero-bottom{opacity:var(--cover-info,1)}
.journey-site .brand-ribbon{background:#10251e;color:#c9d7bb;border-color:#b4c7a32b;padding:30px 0}
.journey-site .brand-ribbon em{font-size:clamp(22px,3vw,48px)}
.journey-site .difference{background:var(--journey-paper);padding:60px 7vw 0;display:block}
.journey-site .difference-heading{max-width:none;margin-bottom:32px;padding-bottom:25px;border-bottom:1px solid #a4b39b65}
.journey-site .difference-heading h2{font-size:clamp(34px,4.4vw,68px);font-weight:500;letter-spacing:-.065em}
.journey-site .comparison-pinned{top:90px;backface-visibility:hidden;will-change:transform}
.journey-site .comparison-scroll{--comparison-travel:80svh}
.journey-site .difference-stage{width:100%;max-width:1225px;transform-origin:50% 20%}
.journey-site .compare-frame{border-radius:2px;box-shadow:0 16px 55px #183d2012}
.journey-site .comparison-benefits{padding-bottom:28px}
.journey-site .comparison-benefits .benefit-no{color:#526b48}
.journey-site .brand-film{height:260svh;background:#071914;margin-top:0}
/* 빛/글자의 화면 밖 시작점이 내부 스크롤 영역을 만들지 않게 한다.
   장면 버튼 포커스 시 브라우저가 이 컨테이너까지 스크롤하면 전경 전체가 밀린다. */
.journey-site .film-sticky{height:100svh;min-height:540px;overflow:clip}
.journey-site .film-word.is-current b,.journey-site .film-word.is-current p,.journey-site .film-word.is-current .film-word-index,.journey-site .film-word.is-current .film-word-rule,.journey-site .film-word.is-current .film-plus{animation:none}
.journey-site .film-word{transform:translateY(var(--word-y,0px)) scale(var(--word-scale,1))!important}
.journey-site .film-word.is-current{opacity:var(--word-opacity,1)!important}
.journey-site .film-word b{letter-spacing:-.085em;font-size:clamp(90px,19vw,300px)}
.journey-site .film-word-2 b{font-size:clamp(65px,15vw,230px)}
.journey-site .film-word-index{font-size:11px;letter-spacing:.22em}
.journey-site .film-word p{font-size:clamp(17px,2vw,25px)}
.journey-site .film-video-mount{transform:scale(var(--film-scale,1));transform-origin:50% 45%}
.journey-site .film-chapters{bottom:48px}
.journey-site .film-chapters button{font-size:11px}
.journey-site .film-caption{bottom:125px}
.journey-site .film-kicker{font-size:10px}

/* 02: 고정된 전시 안내와 깊이를 가진 작품 스택. 카드의 원래 링크·확대 기능 유지. */
.journey-site .works{padding:100px 7vw 80px;overflow:visible;background:#10251e!important;color:#edf1e3}
/* 기존 세로 타이포와 대비는 유지한다. 왕복 끝에서 감속해 루프의 위치 점프를 피한다. */
.journey-site .works-watermark{animation:works-watermark-drift 36s -9s ease-in-out infinite alternate;animation-play-state:paused}
.journey-site .works.is-watermark-live .works-watermark{animation-play-state:running}
.journey-static .works-watermark,.motion-paused .works-watermark{animation-play-state:paused!important}
@keyframes works-watermark-drift{from{translate:0 70px}to{translate:0 -70px}}
@media(prefers-reduced-motion:reduce){.journey-site .works-watermark{animation:none;translate:none}}
.works-exhibition{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.4fr);gap:7vw;align-items:start}
.works-guide{position:sticky;top:125px;padding-bottom:40px}
.works-guide .section-heading{display:block;margin:0 0 35px}
.works-guide .section-heading:before{display:none}
.works-guide .section-heading h2{font-size:clamp(35px,3.9vw,62px);line-height:1.2;letter-spacing:-.065em}
.works-guide .section-heading>p{margin-top:27px;font-size:14px!important;line-height:1.9}
.works-guide .work-filters{flex-wrap:wrap;gap:0 20px;margin:0}
.works-guide .work-filters button{font-size:13px;min-height:44px;color:#a5b79b}
.works-guide .works-narrative{margin:25px 0 0;padding:24px 26px;gap:22px;align-items:flex-start;border-bottom:0}
.works-guide .works-narrative-index{min-width:60px;font-size:12px;flex-shrink:0;padding-top:2px;font-variant-numeric:tabular-nums}
.works-guide .works-narrative-category{font-size:10px;line-height:1.7;letter-spacing:.12em}
.works-guide .works-narrative-title{font-size:19px;line-height:1.5;word-break:keep-all}
.works-guide .works-narrative-plus{display:none}
.works-dock{display:grid;place-items:center;width:90px;height:90px;border:1px solid #b4c7a34a;border-radius:50%;font-size:35px;font-weight:200;color:#cfdec1;margin-top:35px}
.journey-site .works .work-grid{display:block;perspective:1600px}
.journey-site .works .work-card{position:sticky;top:110px;margin:0 0 85px;padding:20px;background:#172e25;border:1px solid #afc9ad45;box-shadow:0 20px 60px #03160b55;transform-origin:50% 0;transition:none;opacity:1;filter:none;transform:translate3d(0,var(--card-lift,0px),0) scale(var(--card-scale,1)) rotateX(var(--card-tilt,0deg));will-change:transform}
.journey-site .works .work-card:nth-child(even){margin-top:0}
.journey-site .work-overline{padding-bottom:12px;margin-bottom:14px}
.journey-site .work-overline>span{font-size:10px;letter-spacing:.1em;color:#a9bd9a}
.journey-site .work-overline>i{font-size:11px}
.journey-site .works .work-image{aspect-ratio:1.7;box-shadow:none;border:0}
.journey-site .works .work-caption{padding-top:18px}
.journey-site .works .work-caption p{font-size:10px}
.journey-site .works .work-caption h3{font-size:clamp(21px,2vw,30px)}
.journey-site .works .work-description{font-size:14px;color:#bac9ae;max-width:95%;margin-bottom:8px}
.journey-site .works .section-note{font-size:12px;line-height:1.8;color:#a7b79d;margin-top:0}
.journey-site .works-atmosphere{overflow:clip}

/* 03: 읽는 순서 자체가 신호의 경로. 큰 원과 등록→알림→관리 세 지점이 연결된다. */
.journey-site .connection{display:block;padding:0;overflow:visible;height:210svh;background:#10251e}
.journey-site .connection:before{display:none}
.connection-stage{position:sticky;top:0;height:100svh;min-height:650px;display:block;padding:110px 8vw 60px;isolation:isolate;overflow:hidden}
.connection-field{position:absolute;z-index:-1;width:min(70vw,80svh);height:min(70vw,80svh);left:50%;top:65%;transform:translate(-50%,-50%);pointer-events:none}
.connection-field>svg{width:100%;height:100%;fill:none;stroke:#c4d7b728;stroke-width:.6}
.connection-field .connection-route{stroke:#d5e5c4;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--signal,0))}
.connection-core{position:absolute;inset:44%;display:grid;place-items:center;border:1px solid #b1c9a750;border-radius:50%;color:#e1edc9;font-size:50px;font-weight:200;background:#173a2c}
.connection-coordinate{position:absolute;left:42%;top:35%;font-size:9px;letter-spacing:.15em;line-height:1.8;color:#9cb292}
.journey-site .connection-copy{text-align:center}
.journey-site .connection h2{font-size:clamp(36px,4vw,62px);line-height:1.2;letter-spacing:-.065em}
.journey-site .connection h2 br{display:none}
.journey-site .connection h2>span{color:#ceddb6}
.journey-site .connection-copy>p:not(.eyebrow){font-size:15px;line-height:1.9;margin-top:18px}
.journey-site .connection-copy>p:not(.eyebrow) br{display:none}
.journey-site .connection-copy .text-link{position:absolute;bottom:35px;right:8vw;font-size:13px}
.journey-site .connection .eyebrow{font-size:10px;letter-spacing:.16em;line-height:1.8;color:#c6d6b2;margin-bottom:20px}
.journey-site .flow-demo{position:absolute;inset:40% 8vw 100px;display:block}
.journey-site .demo-label{position:absolute;top:-26px;font-size:11px;color:#a5b9a1;margin:0}
.journey-site .flow-connector{display:none}
.journey-site .flow-step{position:absolute;width:36%;background:#16382fe8;backdrop-filter:blur(15px);border-color:#afc6a94a;padding:24px;transform:translateY(var(--flow-x,0px));transition:background .35s,border-color .35s;box-shadow:0 12px 35px #04170e22}
.journey-site .flow-step:nth-of-type(1){left:0;top:0}
.journey-site .flow-step:nth-of-type(3){right:0;top:28%}
.journey-site .flow-step:nth-of-type(5){left:24%;bottom:0}
.journey-site .flow-step.is-signal{background:#d5e1c4;color:#17382b;border-color:#d5e1c4}
.journey-site .flow-step small{font-size:10px;color:#aec3a4}
.journey-site .flow-step h3{font-size:20px}
.journey-site .flow-step p{font-size:13px;line-height:1.6;color:#a9bda2}
.journey-site .flow-step.is-signal small,.journey-site .flow-step.is-signal p,.journey-site .flow-step.is-signal .step-icon{color:#3c5945}
.journey-site .flow-step .step-icon{color:#d6e4c2}

/* 04: 도면의 세 면이 펼쳐져 선택 가능한 가격표로 정착한다. */
.journey-site .packages{padding:95px 7vw 90px;background:#e9ecdf;color:#152d23;overflow:clip;position:relative;z-index:2;clip-path:inset(0 var(--plan-inset,0px) 0 round var(--plan-radius,0px));margin-top:-40px}
.plan-heading{display:grid;grid-template-columns:1fr 1.2fr;gap:5vw;align-items:center;margin-bottom:45px}
.plan-outline{font-size:clamp(65px,12vw,185px);line-height:.82;letter-spacing:-.075em;font-weight:500;color:transparent;-webkit-text-stroke:1px #698164;transform:translateY(var(--plan-type-y,0px))}
.plan-heading .section-heading{margin:0}
.plan-heading .section-heading:before{display:none}
.plan-heading .section-heading h2{font-size:clamp(32px,4vw,60px);line-height:1.22}
.plan-heading .section-heading>p{font-size:15px;line-height:1.8;margin-top:24px}
.journey-site .launch-offer{background:transparent;border:0;border-block:1px solid #647e5860;padding:20px 0;margin-bottom:55px}
.journey-site .package-grid{gap:0;perspective:1800px;align-items:stretch}
.journey-site .package-card{border:1px solid #a6b79c;background:#f2f3ea;border-radius:0;box-shadow:none;padding:35px 30px 25px;transform-origin:center bottom;transform:translateY(var(--plan-y,0px)) rotateY(var(--plan-angle,0deg));transition:background .3s}
.journey-site .package-card:first-child{border-right:0}
.journey-site .package-card:last-child{border-left:0}
.journey-site .package-card.featured{background:#1b3a2c;color:#e5edd8;border-color:#365541}
.journey-site .package-card:not(.featured) :is(.package-name,.package-price strong,.package-price strong span,.package-spec b,.button){color:#193e2d}
.journey-site .package-card:not(.featured) :is(h3,li,.package-cost,.package-price small,.package-price del,.package-spec){color:#52674a}
.journey-site .package-card:not(.featured) :is(.package-name>span,li>span,.button>span){color:#547344}
.journey-site .package-card:not(.featured) .button{border-color:#69855a;background:transparent}
.journey-site .package-card:not(.featured) .button:hover{background:#dfe7d2}
.journey-site .package-card .package-price{border-color:#9eae9060}
.journey-site .package-card.featured .package-price strong{color:#d5e2ba}
.journey-site .package-card.featured .package-price small,.journey-site .package-card.featured .package-cost,.journey-site .package-card.featured h3,.journey-site .package-card.featured li{color:#bbcdb0}
.journey-site .package-pick{border-radius:0;background:#c4d7a9;color:#17362a;top:0;transform:translateY(-100%);font-size:10px;letter-spacing:.1em}
.journey-site .package-name{font-size:clamp(18px,2vw,27px);letter-spacing:-.04em}
.journey-site .package-price strong{font-size:clamp(60px,7vw,100px);font-weight:450;letter-spacing:-.07em}
.journey-site .package-card ul{margin-bottom:30px}
.journey-site .package-card li{font-size:14px;line-height:1.7}
.journey-site .package-cost{font-size:12px;line-height:1.8}
.journey-site .package-card .button{border-radius:0;min-height:52px;font-size:13px}
.journey-site .package-card.featured .button{background:#d5e1bc;color:#17362a}
.journey-site .package-notes{margin:36px 0 0}
.journey-site .package-notes p{font-size:13px;line-height:1.9}

/* 05: 분양에서 거래로, 지평선이 열린 뒤 하나의 사이트가 두 문의로 분기된다. */
.journey-site .conversion-service{padding:0;background:#e9ecdf;overflow:visible}
.conversion-stage{background:#10291f;clip-path:ellipse(var(--horizon-open,350%) var(--horizon-height,200%) at 50% 100%)}
.conversion-stage{position:relative;padding:70px 7vw 75px;isolation:isolate;overflow:hidden}
.conversion-horizon{position:absolute;z-index:-1;top:-42vw;left:-10%;width:120%;height:80vw;border:1px solid #cee2b45c;border-radius:50%;transform:translateY(var(--horizon-y,0px));box-shadow:0 30px 0 -29px #cee2b430,0 100px 0 -99px #cee2b41c;pointer-events:none}
.journey-site .conversion-title{padding:50px 0;gap:35px;align-items:center}
.journey-site .conversion-title h2{font-size:clamp(42px,5.6vw,85px);letter-spacing:-.065em;line-height:1.13}
.journey-site .conversion-title h2 em{color:#d2deb8}
.journey-site .conversion-title>p{font-size:16px;line-height:1.9}
.journey-site .conversion-title>span{font-size:90px;font-weight:200;color:#c4d6ad}
.journey-site .conversion-board{border:0;background:transparent;grid-template-columns:minmax(0,1fr) 280px;gap:35px}
.journey-site .conversion-network{border:1px solid #c4d6ad40;background:radial-gradient(ellipse at center,#25543d66,transparent 70%);min-height:420px;transform:perspective(1600px) rotateX(var(--network-tilt,0deg));transform-origin:50% 100%}
.journey-site .conversion-ticket{border:0;border-top:1px solid #cee1b65c;background:transparent;padding:25px 0}
.journey-site .conversion-ticket dd strong{font-size:90px;font-weight:400}
.journey-site .conversion-ticket>a{font-size:15px}
.journey-site .conversion-ticket-label,.journey-site .conversion-ticket>p{font-size:14px}
.journey-site .conversion-details{gap:0;border-top:1px solid #c4d6ad40;margin-top:36px;padding-top:28px}
.journey-site .conversion-details span{font-size:11px}
.journey-site .conversion-details p{font-size:14px}

/* 06: 네 단계 동안 한 장의 건축 도면이 완성된다. */
.journey-site .process{height:265svh;padding:0;background:#e9ecdf;overflow:visible}
.process-stage{position:sticky;top:0;height:100svh;min-height:650px;padding:105px 8vw 65px;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;overflow:hidden}
.process-blueprint{position:relative;aspect-ratio:1.15;align-self:center}
.process-blueprint>svg{width:100%;height:100%;overflow:visible;fill:none;stroke:#526f55;stroke-width:1;transform:translateY(var(--blueprint-y,0px))}

.process-blueprint .blueprint-ground{stroke:#8c9e7d}
.process-blueprint .blueprint-detail{stroke-width:.7}
.process-blueprint .blueprint-survey{stroke:#829879;opacity:1;transition:opacity .65s}
.process-blueprint:not([data-phase="0"]) .blueprint-survey{opacity:.12}
.blueprint-survey .blueprint-measure{stroke:#98a68a;stroke-dasharray:4 5}
.process-blueprint .blueprint-layer{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1)}
.blueprint-layer>path[pathLength]{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .85s cubic-bezier(.22,1,.36,1)}
.process-blueprint:not([data-phase="0"]) [data-build="1"],.process-blueprint[data-phase="2"] [data-build="2"],.process-blueprint[data-phase="3"] :is([data-build="2"],[data-build="3"]){opacity:1;transform:none}
.process-blueprint:not([data-phase="0"]) [data-build="1"]>path,.process-blueprint:is([data-phase="2"],[data-phase="3"]) [data-build="2"]>path,.process-blueprint[data-phase="3"] [data-build="3"]>path{stroke-dashoffset:0}
.process-blueprint .blueprint-face{fill:#65875b21;stroke:none}
.process-blueprint .blueprint-live{stroke:#3c6846;stroke-width:1.5}
.blueprint-live .blueprint-node{fill:#426849;stroke:#e9ecdf;stroke-width:3}
.blueprint-live .blueprint-pulse{fill:none;stroke:#709659;stroke-width:1;transform-box:fill-box;transform-origin:center;opacity:0}
.blueprint-power{stroke:none;opacity:.9}
.blueprint-power-floor{stroke:#88a55c;stroke-width:2;fill:none}
.blueprint-windows path{fill:#91af70;stroke:#adca8d;stroke-width:.7;opacity:.3}
.process-blueprint .blueprint-status{stroke:none;font-family:inherit;filter:drop-shadow(0 7px 10px #24453216)}
.blueprint-status .status-surface{fill:#183c30;stroke:#6b8d6e;stroke-width:.7}
.blueprint-status .status-corner{fill:none;stroke:#b3c99c;stroke-width:.7}
.blueprint-status .status-meta{fill:#a2b99a;font-size:8px;letter-spacing:.12em}
.blueprint-status .status-title{fill:#edf2df;font-size:16px;font-weight:500;letter-spacing:-.04em}
.blueprint-status .status-live{fill:#cce4a2;font-size:9px;letter-spacing:.09em}
.blueprint-status .status-icon{stroke:#d5e8b4;stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.blueprint-status .status-track{stroke:#627e614f;stroke-width:1}
.blueprint-status .status-meter{stroke:#c5db9f;stroke-width:1.2;stroke-dasharray:25 140;stroke-dashoffset:0}
.blueprint-live .blueprint-packet{stroke:#a8c87c;stroke-width:2.5;stroke-dasharray:.05 .95;stroke-dashoffset:1;fill:none}
/* 가동 상태는 강한 점멸 대신 창의 순차 점등·상승하는 빛·전송 신호로 표현한다.
   화면 밖/숨긴 탭/정지 모드에서는 반복하지 않는다. 4단계에 재진입하면 다시 시작한다. */
.process-blueprint[data-phase="3"] .blueprint-power-sweep{animation:blueprint-power-rise 4.8s linear infinite}
.process-blueprint[data-phase="3"] .blueprint-windows path{animation:blueprint-window-on 3.8s calc(var(--cell)*.38s) ease-in-out infinite}
.process-blueprint[data-phase="3"] .blueprint-pulse{animation:blueprint-live-pulse 3s var(--pulse-delay,0s) ease-out infinite}
.process-blueprint[data-phase="3"] .status-meter{animation:blueprint-meter 3.2s var(--status-delay,0s) linear infinite}
.process-blueprint[data-phase="3"] .blueprint-packet{animation:blueprint-packet 3.2s linear infinite}
.process-blueprint:not(.is-live-visible) :is(.blueprint-power-sweep,.blueprint-windows path,.blueprint-pulse,.status-meter,.blueprint-packet){animation-play-state:paused!important}
@keyframes blueprint-power-rise{0%{transform:translateY(110px);opacity:0}15%{opacity:1}80%{opacity:.8}100%{transform:translateY(-430px);opacity:0}}
@keyframes blueprint-window-on{0%,100%{opacity:.2}40%,65%{opacity:.95}}
@keyframes blueprint-live-pulse{0%{transform:scale(.4);opacity:.8}80%,100%{transform:scale(1.8);opacity:0}}
@keyframes blueprint-meter{to{stroke-dashoffset:-165}}
@keyframes blueprint-packet{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.process-graphic-caption b{display:block;font-size:15px;font-weight:500;letter-spacing:-.02em;color:#365940;margin-bottom:5px}
.process-graphic-caption span{display:block;font-size:9px}
.process-dial{position:absolute;left:0;top:-30px;font-size:clamp(80px,12vw,180px);line-height:1;font-weight:200;letter-spacing:-.09em;color:#65815c40}
.process-blueprint>small{position:absolute;bottom:-30px;left:0;font-size:10px;line-height:1.8;letter-spacing:.15em;color:#5f7854}
.process-content .section-heading{display:block;margin:0 0 35px}
.process-content .section-heading:before{display:none}
.process-content .section-heading h2{font-size:clamp(34px,4.2vw,60px);line-height:1.2}
.process-content .section-heading>p{font-size:14px;line-height:1.8;margin-top:20px}
.journey-site .process-list{display:block;position:relative;border-top:1px solid #9aaa8e}
.journey-site .process-list:before{display:none}
.journey-site .process-list li{position:relative;display:grid;grid-template-columns:34px 1fr;gap:0 18px;border:0;border-bottom:1px solid #a4b19770;padding:17px 0;opacity:1;transform:none}
.journey-site .process-list li>span{font-size:14px;color:#819477;align-self:center}
.journey-site .process-list h3{font-size:19px;letter-spacing:-.04em;margin:0;line-height:1.6;font-weight:500}
.journey-site .process-list p{grid-column:2;font-size:14px;line-height:1.8;max-height:0;overflow:hidden;opacity:0;margin:0;transition:max-height .4s,opacity .4s,margin .4s}
.journey-site .process-list li.is-process-current p{max-height:120px;opacity:1;margin-top:10px}
.journey-site .process-list li.is-process-current>span{color:#213e27}
.journey-site .process-list li:after{content:'';position:absolute;top:auto;right:auto;bottom:-1px;height:1px;left:0;width:100%;background:#466c39;transform:scaleX(var(--step-fill,0));transform-origin:left}

/* 07: 파트너의 이름을 중심에 둔 편집 구성에서 마지막 상담의 원으로 수렴한다. */
.journey-site .studio{padding:100px 8vw 105px;background:#e9ecdf;border-top:1px solid #b1bea6;overflow:clip}
.studio-seal{position:relative;width:145px;height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #91a77e;border-radius:50%;margin:0 auto 35px;color:#3b5936;transform:rotate(var(--seal-turn,0deg))}
.studio-seal>span{font-size:55px;font-weight:200;line-height:1}
.studio-seal>small{font-size:9px;letter-spacing:.14em;margin-top:12px}
.journey-site .studio>.eyebrow{text-align:center;font-size:11px;letter-spacing:.2em}
.journey-site .studio-layout{display:block;max-width:none;margin-top:35px}
.journey-site .studio-layout h2{text-align:center;font-size:clamp(40px,6.2vw,96px);line-height:1.18;letter-spacing:-.065em;max-width:1100px;margin:0 auto 65px;transform:perspective(1100px) rotateX(var(--manifesto-angle,0deg));transform-origin:50% 100%}
.journey-site .studio-layout h2 br{display:none}
.journey-site .studio-layout h2>span{color:#6d8960}
.journey-site .studio-layout>div{display:grid;grid-template-columns:1fr 1fr;gap:15px 7vw;max-width:1000px;margin:auto;border-top:1px solid #9dae90;padding-top:30px}
.journey-site .studio-name{grid-column:1;grid-row:1;font-size:18px;margin:0}
.journey-site .studio-layout h3{grid-column:1;grid-row:2;font-size:30px;margin:0}
.journey-site .studio-layout>div>p:not(.studio-name){grid-column:2;font-size:16px;line-height:1.9;margin:0}
.journey-site .studio-layout>div>p:nth-of-type(2){grid-row:1/3}
.journey-site .studio-layout dl{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px 45px;padding-top:28px;margin-top:20px;border-top:1px solid #b0bca2;font-size:14px}
.journey-site .studio-layout dl>div{display:flex;gap:15px;margin:0}
.journey-site .studio-watermark{display:none}
.journey-site .faq{padding:65px 8vw 100px;background:#e9ecdf;grid-template-columns:.7fr 1.3fr;gap:7vw}
.journey-site .faq>div:first-child{position:sticky;top:120px;align-self:start}
.journey-site .faq h2{font-size:clamp(32px,3.6vw,54px);line-height:1.2}
.journey-site .faq-list summary{font-size:16px}
.journey-site .faq-list details>p{font-size:14px;line-height:1.9}
.journey-site .consultation{position:relative;padding:110px 8vw 90px;background:radial-gradient(ellipse at 84% 45%,#1c403430,transparent 64%),#0e271f;color:#e5edd8;gap:7vw;overflow:clip;isolation:isolate}
.consultation-signal-field{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.consultation-arrival{display:flex;justify-content:flex-start;align-items:center;gap:14px;padding:0;position:absolute;top:36px;left:8vw;right:8vw;min-width:0;z-index:1}
.consultation-arrival>span{font-size:9px;font-weight:400;letter-spacing:.22em;color:#91b29b}
.consultation-arrival>i{display:grid;place-items:center;width:25px;height:25px;flex:none;border:1px solid #bcd6ad60;border-radius:50%;font-size:18px;font-style:normal;font-weight:200;color:#d4e3bc}
.journey-site .consultation-copy{z-index:1}
.journey-site .consultation h2{font-size:clamp(42px,4.6vw,72px);line-height:1.2;letter-spacing:-.06em}
.journey-site .consultation h2 .consultation-title-accent{color:#d2deb5;font-style:normal}
.journey-site .consultation h2 .consultation-title-line,.journey-site .consultation h2 [data-consultation-reveal]{color:inherit}
.consultation-title-line{display:block;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.consultation-title-line>span{display:block}
.journey-site .consultation-copy>p:not(.eyebrow){font-size:16px;line-height:1.9}
.journey-site .consultation-art{display:none}
.journey-site .consultation-form-wrap{padding:32px;border:1px solid #9ebea05c;background:linear-gradient(145deg,#1b3c30f5,#102c25fa 72%);box-shadow:0 24px 75px #04181040,inset 0 1px #d5e6bd0d;transition:border-color .3s,box-shadow .3s}
.journey-site .consultation-form-wrap:before{content:'';position:absolute;left:-1px;right:-1px;top:-1px;height:1px;background:linear-gradient(90deg,#daebbf, #99b89f40 40%,transparent)}
.journey-site .consultation-form-wrap:after{content:'';position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(#d6e6bf,#d6e6bf) top left/19px 1px no-repeat,linear-gradient(#d6e6bf,#d6e6bf) top left/1px 19px no-repeat,linear-gradient(#98bca5,#98bca5) bottom right/19px 1px no-repeat,linear-gradient(#98bca5,#98bca5) bottom right/1px 19px no-repeat}
.journey-site .consultation-form-wrap:focus-within{border-color:#bbd2a993;box-shadow:0 24px 75px #04181040,0 0 35px #b4d4a30a}
.journey-site .consultation input:not([type=checkbox]):not([type=hidden]),.journey-site .consultation select,.journey-site .consultation textarea{background:#102a21;border:1px solid #8da57d60;color:#edf2e4;font-size:16px;border-radius:0;padding:13px 14px}
.journey-site .consultation input::placeholder,.journey-site .consultation textarea::placeholder{color:#91a88a;font-size:14px}
.journey-site .consultation select option{background:#153529;color:#edf2e4}
.journey-site .consultation label{color:#c8d8bb}
.journey-site .consultation label>input:not([type=checkbox]):not([type=hidden]),.journey-site .consultation label>select,.journey-site .consultation label>textarea{margin-top:11px}
.journey-site .consultation input:focus,.journey-site .consultation select:focus,.journey-site .consultation textarea:focus{border-color:#cee3ad;background:#17372b;outline:1px solid #bfd5a63d;outline-offset:2px}
.consultation-convergence{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.consultation-native-arrival{position:fixed;inset:0;z-index:64;pointer-events:none;overflow:hidden}
.consultation-stage-space{width:100%;pointer-events:none;overflow-anchor:none}
/* 공간은 처음부터 확보하고 폼 전체만 감춘다. 제목 일부 노출·완료 시 높이 이동을 막는다. */
html.consultation-motion .consultation:not(.is-consultation-assembled)>.consultation-form-wrap{opacity:0;pointer-events:none}
/* 투명한 폼/제목이 드러나며 스크롤 앵커로 선택돼도 문서 위치를 보정하지 않는다.
   공간은 처음부터 유지하고 종료 시 높이·padding·position을 바꾸지 않는다. */
.journey-site .consultation{overflow-anchor:none}
html.consultation-motion .consultation:not(.is-consultation-assembled) [data-consultation-reveal]{opacity:0;pointer-events:none}
.consultation.is-consultation-assembling [data-consultation-reveal]{will-change:transform,opacity}
.journey-site .consultation-form-wrap:before{animation:none!important;transform:none!important}
.consultation-piece{position:absolute;overflow:hidden;border:1px solid #b9cfa788;background:linear-gradient(145deg,#1b3c30f5,#102c25fa 72%);box-shadow:0 20px 65px #00120c66,0 0 25px #cbe9a715;transform-origin:center;pointer-events:none;will-change:transform,opacity}
.consultation-piece-bar{height:25px;padding:8px 12px;color:#cee0b5;background:#17392e;border-bottom:1px solid #a2bc7d4d;font-size:8px;letter-spacing:.12em;opacity:var(--piece-content,1)}
.consultation-piece-content{position:absolute;inset:25px 0 0;overflow:hidden;opacity:var(--piece-content,1)}
.consultation-piece-content>img{width:100%;height:100%;object-fit:cover;filter:brightness(.8)}
.consultation-piece-content>strong{position:absolute;left:18px;bottom:22px;right:15px;color:#e4edcf;font-size:28px;font-weight:450;line-height:1.12;letter-spacing:-.045em;text-shadow:0 2px 12px #00170f}
.consultation-piece--0 strong{font-family:Georgia,serif;font-style:italic;font-size:36px}
.consultation-piece--1 strong{font-size:15px;letter-spacing:.12em}
.consultation-piece .consultation-package-copy{width:340px;padding:24px!important;transform:scale(.82)!important;transform-origin:top left;opacity:1!important;visibility:visible!important;transition:none!important}
.consultation-piece .consultation-package-copy .package-price{font-size:74px}
.consultation-convergence{z-index:4}
.journey-site .consultation .submit-button{background:#cfddb5;color:#173426;border-radius:0}
.journey-site .form-footnote,.journey-site .consent-summary{color:#a8bc9e}
.journey-site .consultation-phone strong{font-size:clamp(24px,2.8vw,39px)}
.journey-site .site-footer{background:#10291f;border-top:1px solid #acbf9640}

/* 원하는 장면으로 바로 이동하는 보조 목차. 전환 연출과 분리하여 접근성을 유지한다. */
.journey-index{position:fixed;z-index:70;left:22px;bottom:28px;display:flex;flex-direction:column;gap:12px;padding:15px 12px;background:#10291fe8;color:#d0dfbc;border:1px solid #aec39a40;backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;overflow:hidden}
.journey-index.is-visible{opacity:1;visibility:visible}
.journey-index a{font-size:11px;color:#a4b998;display:flex;gap:9px;align-items:center;min-height:22px}
.journey-index a span{font-size:9px;color:#859d79}
.journey-index a[aria-current=step]{color:#f0f4e5}
.journey-index a[aria-current=step] span{color:#d6e4bd}
.journey-index>i{position:absolute;bottom:0;left:0;height:2px;width:100%;background:#c4d7ac;transform:scaleX(var(--journey-progress,0));transform-origin:left}
.journey-site .section [data-reveal]{opacity:1;transform:none;filter:none}

@media(max-width:1100px){
 .journey-index{display:none}.works-exhibition{gap:4vw;grid-template-columns:.8fr 1.3fr}.works-guide .section-heading h2{font-size:35px}.journey-site .works .work-card{padding:15px}.journey-site .work-overline>span{font-size:9px}
 .connection-stage{padding-inline:7vw;gap:6%}.journey-site .flow-step{padding:19px;gap:14px}.journey-site .flow-step h3{font-size:17px}.journey-site .package-card{padding-inline:20px}.journey-site .package-card li{font-size:13px}.journey-site .conversion-board{grid-template-columns:minmax(0,1fr) 230px;gap:25px}.journey-site .conversion-title>p{font-size:14px}.process-stage{gap:5vw;padding-inline:6vw}
}
@media(max-width:850px){
 .journey-site .package-grid{display:grid;grid-template-columns:1fr;gap:24px}.journey-site .package-card{display:grid;transform:none!important;border:1px solid #a6b79c!important}.journey-site .package-card.featured{margin-top:20px}.journey-site .package-notes{display:block}
 .journey-site .consultation{display:block}.journey-site .consultation-copy{padding-bottom:35px}.journey-site .studio-layout dl{gap:15px 25px}
 .journey-site .conversion-title>span{font-size:55px}.journey-site .conversion-title h2{font-size:46px}.journey-site .conversion-board{grid-template-columns:1fr}.journey-site .conversion-ticket dl{display:flex;gap:40px}.journey-site .conversion-ticket dl>div+div{margin:0;border:0;padding:0}.journey-site .conversion-ticket{display:grid;grid-template-columns:1fr 1fr;gap:15px 25px}.journey-site .conversion-ticket dl{grid-column:2;grid-row:1/4;margin:0;align-items:center}.journey-site .conversion-ticket>a{margin:0}.journey-site .conversion-details{gap:15px}
}
@media(max-width:700px){
 .hero-passage{height:auto}.journey-site .hero-passage .hero{position:relative;transform:none!important;clip-path:none}.hero-passage:after{display:none}
 .journey-site main>.section{scroll-margin-top:0}
 .journey-site .connection-copy{text-align:left}.journey-site .connection-copy .text-link{position:static}.journey-site .flow-demo{position:relative;inset:auto;display:grid;width:100%}.journey-site .flow-step{position:relative;inset:auto!important;width:100%}.journey-site .demo-label{position:static}.connection-field{left:50%;transform:translate(-50%,-50%)}
 .journey-site .section{scroll-margin-top:82px}.journey-site .brand-ribbon{padding:22px 0}.journey-site .difference{padding:45px 6vw 0}.journey-site .difference-heading{padding-bottom:18px;margin-bottom:22px}.journey-site .difference-heading h2{font-size:34px}.journey-site .comparison-pinned{top:82px}.journey-site .comparison-benefits{padding-bottom:20px}.journey-site .brand-film{height:235svh}.journey-site .film-sticky{min-height:500px}.journey-site .film-kicker{font-size:8px;letter-spacing:.1em;max-width:60%;line-height:1.8}.journey-site .film-word-index{font-size:9px;letter-spacing:.1em}.journey-site .film-word b{font-size:24vw}.journey-site .film-word-2 b{font-size:17vw}.journey-site .film-caption{bottom:160px}.journey-site .film-chapters{bottom:85px}.journey-site .film-chapters button{font-size:10px}.journey-site .film-scroll-hint{display:none}
 .journey-site .works{padding:60px 6vw 50px}.works-exhibition{display:block}.works-guide{position:relative;top:auto;padding-bottom:30px}.works-guide .section-heading{margin-bottom:20px}.works-guide .section-heading h2{font-size:38px}.works-guide .section-heading h2 br{display:none}.works-guide .section-heading>p{margin-top:18px}.works-guide .works-narrative{padding-block:15px;margin-top:12px}.works-dock{display:none}.journey-site .works .work-card{top:85px;margin-bottom:50px;padding:15px;transform:none!important}.journey-site .works .work-image{aspect-ratio:1.35}.journey-site .works .work-description{font-size:14px}.journey-site .works .section-note{font-size:12px}.journey-site .work-caption h3{font-size:22px}
 .journey-site .connection{height:195svh}.connection-stage{min-height:650px;padding:95px 6vw 90px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:30px}.connection-field{width:120vw;height:120vw;right:-20vw;top:65%}.journey-site .connection-copy{align-self:stretch}.journey-site .connection h2{font-size:36px}.journey-site .connection h2 br{display:none}.journey-site .connection .eyebrow{font-size:9px;margin-bottom:15px}.journey-site .connection-copy>p:not(.eyebrow){font-size:14px;margin-top:18px}.journey-site .connection .text-link{margin-top:14px;font-size:13px}.journey-site .flow-demo{gap:12px;transform:none}.journey-site .flow-step{transform:none;padding:13px 17px;margin:0!important;gap:14px}.journey-site .flow-step small{font-size:9px}.journey-site .flow-step h3{font-size:17px;margin:3px 0}.journey-site .flow-step p{font-size:12px}.journey-site .demo-label{transform:none;font-size:10px}.connection-core{font-size:35px}.connection-coordinate{display:none}
 .journey-site .packages{padding:60px 6vw}.plan-heading{gap:20px;display:block;margin-bottom:30px}.plan-outline{display:block;font-size:22vw;line-height:.9;margin-bottom:30px}.plan-outline br{display:none}.plan-heading .section-heading h2{font-size:36px}.plan-heading .section-heading>p{font-size:14px;margin-top:18px}.journey-site .launch-offer{margin-bottom:30px}.journey-site .package-card{display:flex;padding:28px 24px}.journey-site .package-price strong{font-size:78px}.journey-site .package-name{font-size:25px}.journey-site .package-card li{font-size:14px}.journey-site .package-cost{font-size:13px}.journey-site .package-notes p{font-size:13px}
 .conversion-stage{padding:50px 6vw}.journey-site .conversion-title{padding:30px 0;gap:18px}.journey-site .conversion-title h2{font-size:40px}.journey-site .conversion-title>span{font-size:48px}.journey-site .conversion-title>p{margin:0 0 0 62px;font-size:14px}.journey-site .conversion-network{min-height:350px;transform:none!important}.journey-site .conversion-ticket{display:block}.journey-site .conversion-ticket dl{display:flex;gap:40px;margin:24px 0}.journey-site .conversion-ticket>a{margin-top:20px}.journey-site .conversion-ticket dd strong{font-size:70px}.journey-site .conversion-details{display:grid;grid-template-columns:1fr;gap:22px;margin-top:0}
 .journey-site .process{height:260svh}.process-stage{min-height:650px;padding:90px 6vw 85px;display:flex;flex-direction:column;gap:20px;justify-content:center}.process-blueprint{position:absolute;right:-14%;top:11%;width:65%;opacity:.4;z-index:0}.process-dial{font-size:95px;top:0;left:0}.process-blueprint>small{display:none}.process-content{position:relative;width:100%;z-index:1}.process-content .section-heading{margin-bottom:30px;max-width:95%}.process-content .section-heading h2{font-size:36px}.process-content .section-heading>p{font-size:13px}.journey-site .process-list li{padding:15px 0;background:#e9ecdfde}.journey-site .process-list h3{font-size:18px}.journey-site .process-list p{font-size:14px}
 .journey-site .studio{padding:60px 6vw}.studio-seal{width:110px;height:110px;margin-bottom:25px}.studio-seal>span{font-size:45px}.studio-seal>small{font-size:8px}.journey-site .studio>.eyebrow{font-size:9px}.journey-site .studio-layout h2{font-size:42px;margin-bottom:35px}.journey-site .studio-layout>div{display:block;padding-top:25px}.journey-site .studio-layout h3{font-size:28px;margin:8px 0 25px}.journey-site .studio-layout>div>p:not(.studio-name){font-size:15px;margin-top:16px}.journey-site .studio-layout dl{display:block;font-size:13px;padding-top:20px}.journey-site .studio-layout dl>div{margin-bottom:13px}.journey-site .studio-layout dt{min-width:45px}
 .journey-site .faq{display:block;padding:25px 6vw 60px}.journey-site .faq>div:first-child{position:static;margin-bottom:30px}.journey-site .faq h2{font-size:36px}.journey-site .faq-list summary{font-size:15px}.journey-site .faq-list details>p{font-size:14px}
 .journey-site .consultation{padding:100px 6vw 65px}.consultation-arrival{left:6vw;right:6vw;gap:12px}.consultation-arrival>span{font-size:8px;letter-spacing:.15em}.journey-site .consultation h2{font-size:44px}.journey-site .consultation-copy>p:not(.eyebrow){font-size:14px}.journey-site .consultation-form-wrap{padding:26px 20px}.journey-site .consultation-phone strong{font-size:29px}.journey-thread{display:none}
}
/* 동작 줄이기/정지는 콘텐츠를 완성 상태로 표시한다. 스크롤·입력은 계속 가능하다. */
.journey-static .journey-thread,.journey-static .journey-index{display:none}
.journey-static .hero-passage{height:auto}.journey-static .hero-passage .hero{position:relative;transform:none;clip-path:none}.journey-static .hero-passage:after{display:none}.journey-static .hero-passage .hero-bottom{opacity:1}
.journey-static .packages,.journey-static .conversion-stage{clip-path:none}.journey-static .studio-layout h2{transform:none}
.journey-static .brand-film{height:auto}
.journey-static .film-sticky{position:relative;height:auto;min-height:800px}
.journey-static .film-words{position:relative;inset:auto;display:grid;gap:35px;padding:40px 0 180px}
.journey-site.journey-static .film-word{position:relative;inset:auto!important;visibility:visible!important;opacity:1!important;transform:none!important}
.journey-static .film-word b{font-size:clamp(60px,10vw,140px)}
.journey-static .film-word-2 b{font-size:clamp(45px,8vw,110px)}
.journey-static .film-word p{font-size:17px}
.journey-static .film-chapters,.journey-static .film-caption,.journey-static .film-scroll-hint{display:none}
.journey-static .connection,.journey-static .process{height:auto}
.journey-static .connection-stage,.journey-static .process-stage{position:relative;height:auto;min-height:650px}
.journey-static .process-list p{max-height:none!important;opacity:1!important;margin-top:8px!important;transition:none}
.journey-static .works .work-card,.journey-static .package-card,.journey-static .conversion-network,.journey-static .studio-seal,.journey-static .plan-outline{transform:none!important}
.journey-static .works .work-card{position:relative;top:auto}
.journey-static .flow-step{transform:none!important}
.journey-static .process-blueprint g{stroke-dashoffset:0!important}
.journey-static .connection-route{stroke-dashoffset:0!important}
@media(max-height:700px) and (min-width:701px){.connection-stage,.process-stage{min-height:0;padding-top:95px;padding-bottom:35px}.journey-site .connection h2{font-size:40px}.journey-site .flow-demo{gap:18px}.journey-site .flow-step{padding:15px}.process-content .section-heading h2{font-size:38px}.process-content .section-heading{margin-bottom:20px}.journey-site .process-list li{padding:12px 0}.journey-site .works .work-image{aspect-ratio:2.1}}
@media(max-width:700px) and (max-height:740px){.journey-site .connection,.journey-site .process{height:auto}.connection-stage,.process-stage{position:relative;height:auto;min-height:0;padding-top:75px;padding-bottom:70px}.journey-site .process-list p{max-height:none;opacity:1;margin-top:8px}.journey-site .process-blueprint g{stroke-dashoffset:0}.journey-site .flow-step{background:#16382fe8;color:#e5edd8}.journey-site .flow-step.is-signal :is(small,p,.step-icon){color:#aec3a4}}

/* r60: 스크롤 픽셀마다 카드를 쌓지 않고 동일한 전시 프레임 안에서 완성 장면을 교체한다. */
.journey-site .works.scene-gallery{height:calc(100svh + var(--gallery-travel));padding:0 7vw}
.journey-site .works:not(.scene-gallery) .work-card{position:relative;top:auto}
.scene-gallery .works-exhibition{position:sticky;top:0;height:100svh;padding:110px 0 45px;align-items:center}
.scene-gallery .works-guide{position:relative;top:auto;padding:0}
.scene-gallery .works-collection{min-width:0}
.journey-site .scene-gallery .work-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;perspective:none;isolation:isolate}
.journey-site .scene-gallery .work-card{grid-area:1/1;position:relative;top:auto;margin:0;visibility:hidden;pointer-events:none;opacity:0;transform:scale(.96)!important;clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),opacity .35s,visibility .7s;will-change:auto}
.journey-site .scene-gallery .work-card.is-scene-current{visibility:visible;pointer-events:auto;opacity:1;transform:none!important;clip-path:inset(0);z-index:2}
.journey-site .scene-gallery .work-image{aspect-ratio:auto;height:clamp(200px,40svh,470px)}
.journey-site .scene-gallery .work-image>img{width:100%;height:100%;object-fit:cover}
.journey-site .scene-gallery .section-note{margin-top:18px}
.scene-gallery .works-dock{display:none}
.scene-gallery-controls{display:none;align-items:center;gap:24px;margin-top:28px;color:#c9d9b8}
.scene-gallery .scene-gallery-controls{display:flex}
.scene-gallery-controls button{border:1px solid #b9cda85c;background:transparent;color:inherit;width:44px;height:44px;font-size:21px;transition:background .2s}
.scene-gallery-controls button:hover{background:#d7e1c8;color:#153729}
.scene-gallery-controls button:disabled{opacity:.25;pointer-events:none}
.scene-gallery-count{font-size:12px;letter-spacing:.18em;font-variant-numeric:tabular-nums}
.journey-site .film-word.is-current b{animation:none}
.journey-site .film-word.is-current p{animation:scene-caption-arrive .7s .08s both}
.journey-site .film-word b{display:block;perspective:1000px;white-space:nowrap}
.journey-site .film-word b>.film-letter{display:inline-block;font-size:inherit;font-weight:inherit;font-family:inherit;letter-spacing:inherit;line-height:inherit;color:inherit;vertical-align:baseline;transform-origin:50% 75%;backface-visibility:hidden}
.journey-site .film-word.is-current .film-letter{animation:film-letter-impact .74s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--letter)*35ms)}
.journey-site .film-word-1.is-current .film-letter{animation-name:film-letter-resonate;animation-duration:.9s}
.journey-site .film-word-2.is-current .film-letter{animation-name:film-letter-connect;animation-delay:calc(var(--letter)*25ms)}
.journey-site .film-word.is-current .film-plus{animation:film-plus-lock .8s .14s cubic-bezier(.16,1,.3,1) both}
.journey-site .film-word.is-leaving{visibility:visible!important;opacity:1!important}
.journey-site .film-word.is-leaving :is(.film-letter,.film-plus){animation:film-letter-depart .3s ease-in both}
.journey-site .film-word.is-leaving :is(p,.film-word-index,.film-word-rule){opacity:0}
.film-scenography{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.film-focus{position:absolute;inset:24% 17% 31%;transform:scale(1.4);opacity:0;transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .45s}
.film-focus i{position:absolute;width:44px;height:44px;border-color:#d7e3bb90;border-style:solid;border-width:0}
.film-focus i:nth-child(1){top:0;left:0;border-top-width:1px;border-left-width:1px}.film-focus i:nth-child(2){top:0;right:0;border-top-width:1px;border-right-width:1px}.film-focus i:nth-child(3){bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}.film-focus i:nth-child(4){bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}
.film-focus>span{position:absolute;right:0;top:-24px;color:#cbd9b4;letter-spacing:.22em;font-size:9px}
[data-scene="0"] .film-focus{transform:scale(1);opacity:1}
.film-resonance{position:absolute;inset:13% 19% 20%;opacity:0;transform:rotate(-24deg) scale(.5);transition:transform 1.1s cubic-bezier(.16,1,.3,1),opacity .6s}
.film-resonance i{position:absolute;inset:0;border:1px solid #dbe6c56b;border-radius:50%;box-shadow:inset 0 0 45px #d1e4bb0d;transform:rotateX(48deg) rotateY(-25deg)}
.film-resonance i:nth-child(2){inset:9%;transform:rotateX(-25deg) rotateY(38deg);border-color:#d8e3c72e}.film-resonance i:nth-child(3){inset:-10%;border-color:#d8e3c72e;transform:rotateX(55deg) rotateY(25deg)}
[data-scene="1"] .film-resonance{opacity:1;transform:rotate(14deg) scale(1)}
.film-network{position:absolute;inset:15% 5% 20%;width:90%;height:65%;fill:none;stroke:#c3d8ab;stroke-width:1.1;opacity:0;transition:opacity .4s}
.film-network path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .85s cubic-bezier(.16,1,.3,1)}
.film-network circle{fill:#dcecc6;stroke:#d2e3b82a;stroke-width:14}
[data-scene="2"] .film-network{opacity:.8}[data-scene="2"] .film-network path{stroke-dashoffset:0}
.journey-site .film-vignette{overflow:clip}
.film-vignette:after{content:'';position:absolute;inset:-30%;background:linear-gradient(105deg,transparent 44%,#d7e6c31a 48%,#edf3db52 50%,transparent 53%);opacity:0;pointer-events:none}
.is-impact .film-vignette:after{animation:film-light-cut .85s cubic-bezier(.16,1,.3,1) both}
.is-impact .film-video{animation:film-camera-settle 1s cubic-bezier(.16,1,.3,1) both}
@keyframes film-letter-impact{from{opacity:0;transform:translate3d(0,70px,180px) rotateX(-65deg) scale(1.25);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes film-letter-resonate{from{opacity:0;transform:translate3d(0,45px,0) rotateY(-50deg) scale(.75);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes film-letter-connect{from{opacity:0;transform:translateX(calc(var(--scene-direction,1)*65px)) rotateY(30deg);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes film-letter-depart{to{opacity:0;transform:translateY(calc(var(--scene-direction,1)*-35px)) scale(.92);filter:blur(5px)}}
@keyframes film-plus-lock{from{opacity:0;transform:rotate(-90deg) scale(1.8)}to{opacity:1;transform:none}}
@keyframes film-light-cut{0%{opacity:0;transform:translateX(-40%)}25%{opacity:.65}100%{opacity:0;transform:translateX(40%)}}
@keyframes film-camera-settle{from{transform:scale(1.1)}to{transform:scale(1)}}

@keyframes scene-caption-arrive{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
.journey-site .flow-step{transition:background .6s,color .6s,box-shadow .6s,transform .6s}
.journey-site .flow-step.is-signal{box-shadow:0 18px 65px #0003}

/* 장면의 내용과 면을 함께 운반하되 글자는 확대하지 않는다. 최종 DOM에 정렬해 인계한다. */
.scene-handoff{position:fixed;inset:0;z-index:65;overflow:hidden;isolation:isolate;pointer-events:none;background:transparent}
.scene-snapshot{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.scene-snapshot-content{pointer-events:none!important}
.scene-snapshot-content,.scene-snapshot-content *,.scene-snapshot-content:before,.scene-snapshot-content:after,.scene-snapshot-content *:before,.scene-snapshot-content *:after{animation:none!important;transition:none!important;pointer-events:none!important;caret-color:transparent!important}
.scene-snapshot-content .film-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scene-shared-surface{position:absolute;overflow:hidden;pointer-events:none;border:1px solid #b8c8af45;opacity:0;contain:layout paint;isolation:isolate}
.scene-surface-image{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat}
.scene-carried-content{position:absolute;left:0;top:0;width:100vw;height:100vh;transform-origin:0 0;pointer-events:none}
.scene-arriving-content{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}
.scene-snapshot--composition{outline:1px solid #b7c9aa70;box-shadow:0 20px 70px #10251e20;transform-origin:0 0}
.scene-cover-seam{position:absolute;width:1px;background:#d5e5b8;box-shadow:0 0 18px #d1e5a9a0;pointer-events:none;transform:translateX(-.5px)}
.scene-cover-seam>span{position:absolute;left:0;top:50%;display:grid;place-items:center;width:48px;height:48px;border:1px solid #d8e7be;border-radius:50%;background:#e2ebd5;color:#2f4b35;font-size:27px;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #d9e9b41a}
.journey-site .film-word.scene-ink-settled :is(.film-letter,.film-plus,p,.film-word-index,.film-word-rule){animation:none!important;transform:none;filter:none;opacity:1}
.scene-layout-space{flex-shrink:0}
.scene-line-unfold{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.15;pointer-events:none}
.scene-digital-matrix{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.scene-handoff--merge .scene-shared-surface{box-shadow:0 10px 45px #061b1020}
.scene-handoff--cover .scene-shared-surface{box-shadow:0 24px 90px #10251e24;border-color:#b4c5a780}
.journey-site:has(.scene-handoff--cover) .journey-index{opacity:0;visibility:hidden}
.journey-static .process-blueprint :is(.blueprint-power-sweep,.blueprint-windows path,.blueprint-pulse,.status-meter,.blueprint-packet),.motion-paused .process-blueprint :is(.blueprint-power-sweep,.blueprint-windows path,.blueprint-pulse,.status-meter,.blueprint-packet){animation:none!important}
/* 동작 정지에서는 완성 상태를 즉시 제공한다. 글자별 잔여 모션도 남기지 않는다. */
.journey-static .film-letter,.motion-paused .film-letter,.journey-static .film-video,.motion-paused .film-video,.journey-static .film-vignette:after,.motion-paused .film-vignette:after{animation:none!important;transform:none!important;filter:none!important}
.journey-static .film-scenography{display:none}
.journey-static .process-blueprint .blueprint-layer{opacity:1;transform:none;transition:none}
.journey-static .blueprint-layer>path[pathLength]{stroke-dashoffset:0;transition:none}
.journey-static .blueprint-survey{opacity:.12}
/* 고정 연출을 해제하는 낮은 모바일 화면에서는 완성 도면을 함께 보여준다. */
@media(max-width:700px) and (max-height:740px){.journey-site .process-blueprint .blueprint-layer{opacity:1;transform:none;transition:none}.journey-site .blueprint-layer>path[pathLength]{stroke-dashoffset:0;transition:none}.journey-site .process-blueprint .blueprint-survey{opacity:.12}}
@media(prefers-reduced-motion:reduce){.film-letter,.film-video,.film-vignette:after,.process-blueprint *{animation:none!important}.film-scenography{display:none}.process-blueprint .blueprint-layer{transition:none}.blueprint-layer>path[pathLength]{transition:none}}
@media(max-width:1100px){.scene-gallery .works-exhibition{gap:4vw}.scene-gallery .works-guide .section-heading>p{font-size:13px!important}.scene-gallery .works-guide .section-heading h2{font-size:34px}}
@media(max-width:700px){
 .journey-site .works.scene-gallery{padding:0 6vw}
 .scene-gallery .works-exhibition{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:90px 0 95px}
 .scene-gallery .works-guide{width:100%;padding:0}.scene-gallery .works-guide .section-heading{margin-bottom:10px}
 .scene-gallery .works-guide .section-heading h2{font-size:29px}.scene-gallery .works-guide .section-heading>p{margin-top:12px}
 .scene-gallery .works-guide .eyebrow{margin-bottom:10px}.scene-gallery .works-narrative{display:none}
 .scene-gallery .works-guide .work-filters{gap:0 14px}.scene-gallery .work-filters button{font-size:12px;min-height:35px}
 .scene-gallery-controls{position:relative;justify-content:flex-end;margin:10px 0 0;gap:12px}.scene-gallery-controls button{width:32px;height:32px}
 .scene-gallery-count{font-size:10px}.scene-gallery .works-collection{width:100%}
 .journey-site .scene-gallery .work-card{padding:12px}.journey-site .scene-gallery .work-image{height:25svh}
 .journey-site .scene-gallery .work-caption{padding-top:12px}.journey-site .scene-gallery .work-caption h3{font-size:21px}
 .journey-site .scene-gallery .work-overline{display:none}
 .journey-site .scene-gallery .work-description{font-size:13px;margin:10px 0 0}.journey-site .scene-gallery .section-note{font-size:10px;line-height:1.6;margin-top:10px}
}
.journey-static .scene-handoff{display:none}.journey-static .film-word.is-current :is(b,p){animation:none}

/* FAQ가 짧은 넓은 화면에서도 다음 장면을 미리 노출하지 않는 한 화면의 면. */
html.consultation-motion .journey-site:not(.journey-static) .faq{min-height:100vh;min-height:100svh;box-sizing:border-box;align-content:center}

/* FAQ와 상담은 같은 도면 언어의 밝은 면과 어두운 면이다.
   장식은 문서 흐름/고정 좌표를 바꾸지 않고, 스냅샷에서도 같은 클래스가 적용된다. */
.journey-site .faq{position:relative;isolation:isolate;background:radial-gradient(ellipse at 15% 70%,#d4dfc975,transparent 50%),#e9ecdf;gap:7vw}
.journey-site .faq:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#78906d0b 1px,transparent 1px) 8vw 0/84px 100%,linear-gradient(#78906d0b 1px,transparent 1px) 0 0/100% 84px;mask-image:linear-gradient(transparent 15%,#0008)}
.journey-site .faq h2{font-size:clamp(38px,3.7vw,62px);line-height:1.22;letter-spacing:-.065em}
.journey-site .faq h2 span{color:#53694c;font-weight:450}
.journey-site .faq .faq-lead{font-size:14px;line-height:1.9;color:#708069;margin:25px 0 0}
.faq-folio{position:relative;width:260px;height:195px;margin-top:40px;perspective:800px}
.faq-folio-sheet{position:absolute;width:215px;height:132px;left:12px;top:10px;border:1px solid #81977555;border-radius:9px;transform:rotateY(-15deg) rotateX(25deg) rotateZ(-12deg);transform-origin:center;background:linear-gradient(135deg,#f6f7eea0,#cbd9bc30)}
.faq-folio-back{transform:translate(28px,29px) rotateY(-15deg) rotateX(25deg) rotateZ(-12deg);background:#adbe9c18}
.faq-folio-middle{transform:translate(14px,15px) rotateY(-15deg) rotateX(25deg) rotateZ(-12deg);background:#dce5d150}
.faq-folio-front{box-shadow:0 20px 28px #52644212;overflow:hidden;color:#36513d;padding:17px}
.faq-folio-front>span,.faq-folio-front small{font-size:7px;letter-spacing:.19em;display:block}.faq-folio-front b{display:block;font-size:65px;line-height:1.1;font-weight:250}.faq-folio-front small{position:absolute;right:16px;bottom:17px}
.faq-folio-front i{position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#ffffffa0 49%,transparent 64%);transform:translateX(-110%)}
.faq-folio-caption{position:absolute;bottom:0;left:0;font-size:8px;letter-spacing:.18em;color:#7b8d71}
.faq-list-caption{display:flex;justify-content:space-between;gap:15px;padding:0 22px 21px;color:#75896a;font-size:8px;letter-spacing:.18em}
.journey-site .faq .faq-list{counter-reset:question;align-self:center;border-top:0}
.journey-site .faq details{counter-increment:question;padding:0;margin:0 0 7px;border:1px solid #93a78430;border-radius:8px;background:linear-gradient(110deg,#f9faef85,#eef1e460);transition:background .3s,border-color .3s,box-shadow .3s}
.journey-site .faq summary{display:grid;grid-template-columns:30px 1fr 32px;gap:18px;min-height:78px;padding:19px 22px;font-size:16px;line-height:1.6;letter-spacing:-.025em;color:#203d2f}
.journey-site .faq summary:before{content:counter(question,decimal-leading-zero);font-size:10px;font-weight:450;letter-spacing:.07em;color:#829675;align-self:center}
.journey-site .faq summary span{display:grid;place-items:center;width:30px;height:30px;border:1px solid #7b977245;border-radius:50%;font-size:19px;font-weight:300;line-height:1;color:#496044;transition:transform .35s,background .35s,border-color .35s}
.journey-site .faq details:hover,.journey-site .faq details[open]{background:#f6f8ed;border-color:#91a38080;box-shadow:0 8px 25px #405d3510}
.journey-site .faq details[open] summary{color:#132e23}.journey-site .faq details[open] summary span{background:#264936;color:#e7edd7;border-color:#264936}
.journey-site .faq details>p{margin:0;padding:0 64px 27px 70px;color:#65765e;font-size:14px;line-height:1.95;max-width:75ch}
.journey-site .faq summary:focus-visible{outline:2px solid #79916b;outline-offset:3px;border-radius:8px}
.journey-site .consultation{background:radial-gradient(ellipse at 78% 35%,#2c59483d,transparent 54%),radial-gradient(ellipse at 5% 100%,#284c3540,transparent 55%),#0c231e}
.journey-site .consultation h2{font-size:clamp(42px,4.4vw,72px);line-height:1.22;font-weight:500;letter-spacing:-.065em}
.journey-site .consultation h2 .consultation-title-accent{font-weight:700;background:linear-gradient(110deg,#f0f5df,#c1d99c);background-clip:text;-webkit-text-fill-color:transparent}
.journey-site .consultation-copy>p:not(.eyebrow){color:#a7baa3;font-size:15px;line-height:2}
.journey-site .consultation-phone{border-top:1px solid #b1cba32b;padding-top:22px;max-width:420px}.journey-site .consultation-phone small{font-size:10px;letter-spacing:.04em;color:#819e8b}.journey-site .consultation-phone strong{font-size:clamp(25px,2.4vw,36px);letter-spacing:-.04em;font-weight:450}
.journey-site .consultation .consultation-signature{font-size:12px;color:#91aa95}
.journey-site .consultation-signature-art{position:relative;display:block;width:90%;margin-top:60px;color:#afc79824;overflow:hidden;pointer-events:none}
.consultation-signature-art>span{display:block;font-size:8px;letter-spacing:.23em;color:#789785}
.consultation-signature-art>strong{display:block;font-size:clamp(34px,4vw,64px);line-height:1;letter-spacing:-.065em;font-weight:300;margin-top:14px}.consultation-signature-art strong>span{color:#c4dfa74d;font-weight:200;margin-left:4px}
.consultation-signature-art i{display:block;width:100%;height:1px;margin-top:20px;background:linear-gradient(90deg,#b1d19965,transparent)}
.journey-site .consultation-form-wrap{border-radius:14px;border-color:#a6c39455;background:linear-gradient(135deg,#244b3de8,#132e26f5 42%,#102a23);box-shadow:0 35px 90px #00130e55,inset 0 1px #e0edc717;padding:32px 36px}
.journey-site .consultation-form-wrap:before{left:24px;right:24px;background:linear-gradient(90deg,transparent,#d3e8b7aa 30%,#82aa8b30 80%,transparent)}
.journey-site .consultation-form-wrap:after{inset:-8px;border-radius:21px;background:none;border:1px solid #bed6ab12}
.journey-site .consultation .form-intro{align-items:center;border-bottom:1px solid #b8cfa52b;margin-bottom:25px;padding-bottom:23px}
.form-kicker{margin:0 0 9px!important;font-size:8px!important;letter-spacing:.2em;color:#9db88e;line-height:1.4!important}
.journey-site .consultation .form-intro h3{font-size:23px;letter-spacing:-.04em;font-weight:550;display:flex;align-items:center;gap:16px}.form-heading-plus{color:#d1e5aa;font-size:24px;font-weight:250}
.journey-site .consultation .form-intro>span{font-size:10px;color:#95ac8d}
.journey-site .consultation label{font-size:12px;line-height:1.6;letter-spacing:.005em;color:#c4d6bc}
.journey-site .consultation input:not([type=checkbox]):not([type=hidden]),.journey-site .consultation select,.journey-site .consultation textarea{border-radius:6px;border-color:#8da57d45;background:#0b241e80;transition:background .25s,border-color .25s,box-shadow .25s}
.journey-site .consultation label>input:not([type=checkbox]):not([type=hidden]),.journey-site .consultation label>select,.journey-site .consultation label>textarea{margin-top:12px}
.journey-site .consultation .submit-button{border-radius:6px;background:linear-gradient(110deg,#e1ebc8,#bfd69e);transition:background .25s,box-shadow .25s}.journey-site .consultation .submit-button>span{display:grid;place-items:center;border-left:1px solid #35542b35;width:42px;margin-left:12px}
.journey-site .consultation .submit-button:hover{box-shadow:0 5px 25px #c6dda930;background:#e0eacb}
.consultation-piece{border-radius:12px;border-color:#b9cfa760;box-shadow:0 18px 55px #00120c40}
@media(max-width:1100px){.journey-site .consultation-signature-art{display:none}.faq-folio{transform:scale(.85);transform-origin:left top;margin-top:25px;margin-bottom:-25px}}
@media(max-width:700px){
 .journey-site .faq{padding:90px 6vw 65px}.journey-site .faq .faq-intro{position:relative;margin-bottom:35px}.journey-site .faq h2{font-size:38px}.journey-site .faq .faq-lead{font-size:12px;margin-top:20px}.faq-folio{display:none}.faq-list-caption{padding:0 8px 15px;font-size:7px;letter-spacing:.08em}
 .journey-site .faq summary{grid-template-columns:20px 1fr 26px;gap:10px;min-height:76px;padding:16px 12px;font-size:14px}.journey-site .faq summary span{width:26px;height:26px}.journey-site .faq details>p{padding:0 18px 23px 42px;font-size:13px}
 .journey-site .consultation-form-wrap{padding:26px 20px;border-radius:12px}.journey-site .consultation h2{font-size:42px}.journey-site .consultation-copy>p:not(.eyebrow){font-size:14px}.journey-site .consultation .form-intro h3{font-size:21px}.journey-site .consultation-phone{padding-top:20px}.journey-site .consultation-phone strong{font-size:29px}
}
@media(prefers-reduced-motion:no-preference){
 .faq-folio-front i{animation:faq-folio-light 7s ease-in-out infinite}.motion-paused .faq-folio-front i,.journey-static .faq-folio-front i{animation:none}
 .journey-site .faq details[open]>p{animation:faq-answer-in .32s ease-out both}
 @keyframes faq-folio-light{0%,20%{transform:translateX(-110%)}65%,100%{transform:translateX(110%)}}
 @keyframes faq-answer-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
}
