﻿:root{--navy:#081b38;--blue:#0b43a0;--sky:#dceaff;--paper:#f5f2eb;--copper:#df7b4e;--ink:#101828;--line:rgba(16,24,40,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Noto Sans KR",sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.nav{height:86px;display:flex;align-items:center;padding:0 4.5%;background:rgba(245,242,235,.96);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line)}.logo{display:grid;grid-template-columns:44px auto;grid-template-rows:1fr 1fr;align-items:center;column-gap:11px;min-width:190px}.logo>span{grid-row:1/3;width:44px;height:44px;border:2px solid var(--blue);border-radius:50%;display:grid;place-items:center;color:var(--blue);font:italic 25px Georgia}.logo b{align-self:end;font-size:14px}.logo small{align-self:start;font-size:8px;letter-spacing:.2em;color:#58708e}.nav nav{margin:auto;display:flex;gap:42px;font-size:13px;font-weight:700}.nav-cta{font-size:11px;letter-spacing:.06em}.nav-cta i{display:block;font:italic 18px Georgia;color:var(--blue);margin-top:4px}.hamb{display:none}.hero{height:calc(100svh - 86px);min-height:690px;position:relative;overflow:hidden;background:var(--navy);color:white}.hero-img{position:absolute;inset:0;background:url('assets/ulsan-arco-hero.png') center/cover no-repeat}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,44,.94),rgba(5,18,44,.68) 37%,rgba(5,18,44,.04) 70%)}.hero-copy{position:relative;z-index:2;padding:8vh 0 0 7.5%;width:56%}.hero-copy>p,.manifest>p,.place-copy>p,.signature>p,.apply>div>p{font-size:11px;font-weight:800;letter-spacing:.26em}.hero-copy h1{font-size:clamp(54px,6.3vw,108px);line-height:.96;letter-spacing:-.07em;margin:34px 0}.hero-copy h1 em{color:#ff9a69;font-style:normal}.hero-copy>div{margin-top:55px;display:flex;gap:70px;align-items:end}.hero-copy>div span{font-size:13px;line-height:1.7;color:#bfd2ee}.hero-copy>div a{font-size:10px;letter-spacing:.18em;border-bottom:1px solid white;padding:12px 0;width:145px}.hero>aside{position:absolute;right:4.5%;top:9%;z-index:2;text-align:right}.hero>aside b{font:italic 28px Georgia}.hero>aside span{display:block;font-size:9px;letter-spacing:.14em}.manifest{padding:130px 7.5%}.manifest>p{color:var(--blue)}.manifest h2{font-size:clamp(50px,6vw,95px);line-height:1.05;letter-spacing:-.07em;margin:50px 0 100px}.manifest h2 em{font-family:Georgia,serif;color:var(--blue);font-weight:400}.manifest-bottom{display:grid;grid-template-columns:1fr 1.3fr;gap:12%;border-top:1px solid var(--ink);padding-top:30px}.manifest-bottom b{font-size:22px;line-height:1.5}.manifest-bottom p{line-height:2;color:#556174}.scroll-story{position:relative;background:var(--navy);color:white}.sticky-visual{position:sticky;top:86px;height:calc(100vh - 86px);overflow:hidden}.sticky-image{position:absolute;inset:0;background:url('assets/ulsan-arco-hero.png') center/cover no-repeat}.sticky-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,10,24,.28),rgba(3,10,24,.04) 45%,rgba(3,10,24,.72))}.sticky-label{position:absolute;left:5%;top:8%;font-size:16px;font-weight:800}.sticky-label i{display:block;font:italic 25px Georgia;color:#ff9a69;margin-top:8px}.sticky-visual>small{position:absolute;left:5%;bottom:7%;font-size:8px;letter-spacing:.2em}.scroll-copy{position:relative;z-index:3;margin-top:calc(-100vh + 86px);padding-left:56%;padding-right:7%}.scroll-copy article{min-height:100vh;display:flex;flex-direction:column;justify-content:center;text-shadow:0 2px 18px #000}.scroll-copy article>span{font-size:9px;letter-spacing:.22em;color:#ff9a69;font-weight:800}.scroll-copy h2{font-size:clamp(48px,5.4vw,84px);line-height:1.02;letter-spacing:-.07em;margin:35px 0}.scroll-copy p{max-width:470px;line-height:2;color:#d6dfeb}.place{display:grid;grid-template-columns:1.2fr .8fr;min-height:760px;background:var(--sky)}.map{position:relative;overflow:hidden}.orbit{position:absolute;border:1px solid rgba(11,67,160,.25);border-radius:50%}.orbit.one{width:105%;height:70%;left:-20%;top:12%}.orbit.two{width:75%;height:45%;left:0;top:25%}.home,.pin{position:absolute;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.home{width:150px;height:150px;background:var(--blue);color:white;left:38%;top:38%;box-shadow:0 0 0 25px rgba(11,67,160,.08)}.home b{font:italic 28px Georgia}.home small,.pin small{font-size:9px;letter-spacing:.12em;margin-top:7px}.pin{width:95px;height:95px;background:white;box-shadow:0 12px 28px rgba(12,40,85,.12);font-weight:800}.p1{left:8%;top:30%}.p2{right:12%;top:16%}.p3{right:8%;bottom:13%}.place-copy{background:var(--paper);padding:110px 9%}.place-copy>p,.signature>p{color:var(--blue)}.place-copy h2{font-size:clamp(43px,4.4vw,70px);line-height:1.08;letter-spacing:-.06em;margin:55px 0 75px}.place-copy ul{list-style:none;padding:0}.place-copy li{border-top:1px solid var(--line);padding:20px 0;font-weight:700}.place-copy li b{font:italic 18px Georgia;color:var(--copper);margin-right:25px}.signature{padding:125px 7.5%;background:white}.signature>h2{font-size:clamp(42px,5vw,76px);line-height:1.1;letter-spacing:-.06em;margin:45px 0 80px}.signature>div{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}.signature article{padding:35px 35px 70px 0;border-right:1px solid var(--line)}.signature article+article{padding-left:35px}.signature article span{font-size:9px;letter-spacing:.2em;color:var(--blue)}.signature h3{font-size:25px;margin:65px 0 18px}.signature article p{font-size:14px;line-height:1.8;color:#667085}.apply{padding:110px 7.5%;background:var(--copper);display:grid;grid-template-columns:1fr 1fr;gap:10%}.apply h2{font-size:44px;line-height:1.25;margin:35px 0 70px}.apply>div>a{font:italic 40px Georgia}.apply form{display:grid;grid-template-columns:1fr 1fr;gap:25px}.apply label{font-size:11px;font-weight:700}.apply input,.apply select{display:block;width:100%;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:15px 0}.apply .full{grid-column:1/-1}.check{display:flex;gap:8px;align-items:center}.check input{width:auto}.apply button{height:60px;border:0;background:var(--navy);color:white;font-weight:800}.apply button span{float:right;margin-right:20px}.done{text-align:center}footer{padding:55px 7.5%;background:#050f21;color:white;display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:center}footer>p,footer>small{font-size:10px;line-height:1.7;color:#7890ad}footer>small{text-align:right}.inverse>span{border-color:#7faeff;color:#7faeff}
@media(max-width:900px){.nav{height:72px;padding:0 20px}.nav nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:20px;flex-direction:column}.nav nav.show{display:flex}.nav-cta{display:none}.hamb{display:flex;margin-left:auto;width:40px;height:40px;background:none;border:0;flex-direction:column;justify-content:center;gap:7px}.hamb span{width:25px;height:2px;background:var(--ink)}.hero{height:760px}.hero-copy{width:100%;padding:90px 25px}.hero-copy h1{font-size:58px}.hero>aside{right:25px}.manifest{padding:90px 25px}.scroll-copy{padding-left:45%;padding-right:25px}.place{grid-template-columns:1fr}.map{height:540px}.place-copy{padding:80px 25px}.signature{padding:90px 25px}.apply{grid-template-columns:1fr;padding:85px 25px}footer{grid-template-columns:1fr;gap:30px}footer>small{text-align:left}}@media(max-width:560px){.hero{height:calc(100svh - 72px);min-height:650px}.hero-copy{padding-top:70px}.hero-copy h1{font-size:45px}.hero-copy>div{flex-direction:column;align-items:start;gap:25px}.hero>aside{display:none}.manifest h2{font-size:47px}.manifest-bottom{grid-template-columns:1fr}.sticky-visual{top:72px;height:calc(100vh - 72px)}.scroll-copy{margin-top:calc(-100vh + 72px);padding:0 25px}.scroll-copy article{justify-content:flex-end;padding-bottom:90px}.scroll-copy h2{font-size:47px}.sticky-shade{background:linear-gradient(0deg,rgba(3,10,24,.92),rgba(3,10,24,.05) 75%)}.sticky-label{left:25px}.sticky-visual>small{display:none}.map{height:430px}.home{width:110px;height:110px}.pin{width:72px;height:72px;font-size:12px}.signature>h2{font-size:43px}.signature>div{grid-template-columns:1fr}.signature article,.signature article+article{padding:30px 0;border-right:0;border-bottom:1px solid var(--line)}.signature h3{margin-top:30px}.apply h2{font-size:35px}.apply>div>a{font-size:34px}.apply form{grid-template-columns:1fr}.apply form>*{grid-column:1}}

.units{padding:120px 7.5%;background:#e7edf6}.unit-head{display:flex;justify-content:space-between;align-items:end}.unit-head>div>p{font-size:11px;font-weight:800;letter-spacing:.26em;color:#0b43a0}.unit-head h2{font-size:clamp(45px,5.4vw,82px);line-height:1.05;letter-spacing:-.07em;margin:38px 0 0}.unit-head h2 em{font-family:Georgia,serif;color:#0b43a0;font-weight:400}.unit-head>p{font-size:13px;line-height:1.9;color:#627087}.unit-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:80px;border-top:1px solid #101828;border-bottom:1px solid #101828}.unit-tabs button{height:115px;background:transparent;border:0;border-right:1px solid rgba(16,24,40,.16);display:grid;grid-template-columns:35px 1fr;grid-template-rows:1fr 1fr;text-align:left;padding:24px;cursor:pointer;color:#101828}.unit-tabs button:last-child{border-right:0}.unit-tabs span{grid-row:1/3;font:italic 17px Georgia;color:#7e8999}.unit-tabs b{font-size:22px;align-self:end}.unit-tabs small{font-size:9px;letter-spacing:.16em}.unit-tabs button.active{background:#0b43a0;color:white}.unit-tabs button.active span{color:#ff9a69}.unit-stage{display:grid;grid-template-columns:minmax(0,1fr) 310px;background:white;min-height:680px}.plan-wrap{position:relative;padding:35px;display:grid;place-items:center;overflow:hidden}.plan-wrap img{width:100%;height:610px;object-fit:contain;transition:.35s}.plan-wrap>span{position:absolute;left:30px;bottom:24px;background:#081b38;color:white;padding:10px 14px;font-size:9px;letter-spacing:.1em}.unit-stage>aside{background:#081b38;color:white;padding:50px 35px;display:flex;flex-direction:column}.unit-stage>aside>span{font-size:9px;letter-spacing:.22em;color:#ff9a69}.unit-stage h3{font:italic 48px Georgia;margin:45px 0 25px}.unit-stage h3 small{display:block;font:normal 11px Arial;letter-spacing:.17em;margin-top:10px}.unit-stage aside>p{font-size:15px;line-height:1.8;color:#c7d6e8}.unit-stage dl{margin:55px 0}.unit-stage dl>div{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.22);padding:17px 0;font-size:11px}.unit-stage dd{margin:0;color:#aebdd1}.unit-stage aside>a{margin-top:auto;background:#df7b4e;padding:18px;color:white;font-weight:800;font-size:12px}@media(max-width:900px){.units{padding:90px 25px}.unit-head{display:block}.unit-head>p{margin-top:30px}.unit-tabs{overflow-x:auto;grid-template-columns:repeat(4,minmax(160px,1fr))}.unit-stage{grid-template-columns:1fr}.unit-stage>aside{min-height:420px}.plan-wrap img{height:520px}}@media(max-width:560px){.units{padding:75px 0}.unit-head{padding:0 25px}.unit-tabs{margin-top:55px}.unit-stage{min-height:auto}.plan-wrap{padding:15px}.plan-wrap img{height:auto;max-height:430px}.plan-wrap>span{display:none}.unit-stage>aside{min-height:380px}}

.logo>.logo-mark{overflow:hidden;border:0;background:#fff}.logo>.logo-mark img{width:100%;height:100%;object-fit:contain;transform:scale(1.35)}.inverse>.logo-mark{background:#f5f2eb}.unit-tabs button{min-width:0}.unit-tabs b{font-size:clamp(15px,1.5vw,22px);line-height:1.05;overflow-wrap:anywhere;min-width:0}.unit-stage h3{font-size:clamp(32px,3vw,48px);line-height:1.05;overflow-wrap:anywhere;word-break:break-word}@media(max-width:560px){.unit-tabs b{font-size:17px}.unit-stage h3{font-size:36px}}

/* ARCO SIGNATURE — dimensional cards */
.signature{overflow:hidden;background:linear-gradient(145deg,#f8fafc 0%,#e9f0fa 52%,#fff 100%);position:relative}
.signature:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-180px;top:-220px;background:radial-gradient(circle,rgba(73,132,222,.18),rgba(73,132,222,0) 68%);pointer-events:none}
.signature>h2,.signature>p,.signature>div{position:relative;z-index:1}
.signature>div{border:0;gap:28px;perspective:1300px}
.signature article,.signature article+article{--rx:0deg;--ry:0deg;--lift:0px;position:relative;min-height:330px;padding:42px 38px;border:1px solid rgba(255,255,255,.78);border-radius:4px;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(225,234,248,.82));box-shadow:0 34px 65px rgba(7,34,77,.17),inset 1px 1px 0 #fff,inset -1px -1px 0 rgba(11,67,160,.08);transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));transition:transform .16s ease-out,box-shadow .25s ease,border-color .25s ease;overflow:hidden;will-change:transform}
.signature article:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,25%) var(--my,15%),rgba(255,255,255,.9),rgba(255,255,255,0) 38%);opacity:.72;pointer-events:none}
.signature article:after{content:"";position:absolute;width:145px;height:145px;border:1px solid rgba(11,67,160,.18);border-radius:50%;right:-54px;bottom:-54px;box-shadow:0 0 0 24px rgba(11,67,160,.035),0 0 0 49px rgba(11,67,160,.025);transform:translateZ(18px);pointer-events:none}
.signature article:hover{--lift:-13px;border-color:rgba(81,137,220,.38);box-shadow:0 50px 85px rgba(7,34,77,.25),inset 1px 1px 0 #fff}
.signature article>*{position:relative;z-index:1;transform:translateZ(34px)}
.signature article span{display:inline-flex;align-items:center;gap:11px;color:#0b43a0}
.signature article span:before{content:"";width:8px;height:8px;background:#df7b4e;box-shadow:5px 5px 0 rgba(223,123,78,.25);transform:rotate(45deg)}
.signature h3{font-size:29px;margin:78px 0 20px;letter-spacing:-.045em;text-shadow:0 8px 22px rgba(11,67,160,.1)}
.signature article p{max-width:370px;color:#52647c}
.signature article:nth-child(2){background:linear-gradient(145deg,rgba(244,249,255,.96),rgba(207,224,248,.88));transform:rotateX(var(--rx)) rotateY(var(--ry)) translateY(calc(var(--lift) - 18px))}
.signature article:nth-child(2):after{border-radius:24px;transform:translateZ(18px) rotate(24deg)}
.signature article:nth-child(3){background:linear-gradient(145deg,rgba(255,251,247,.96),rgba(244,221,207,.82))}
@media(max-width:900px){.signature>div{grid-template-columns:1fr;perspective:none}.signature article,.signature article+article,.signature article:nth-child(2){min-height:260px;padding:35px;transform:none!important}.signature h3{margin-top:55px}.signature article:hover{box-shadow:0 34px 65px rgba(7,34,77,.17)}}
@media(prefers-reduced-motion:reduce){.signature article,.signature article+article{transition:none;transform:none!important}}

/* CONNECTED ULSAN — spatial network */
.map{--px:0px;--py:0px;background:linear-gradient(145deg,#dceaff 0%,#c8daf5 56%,#b5caec 100%);isolation:isolate;perspective:1000px}
.map:before{content:"";position:absolute;z-index:-2;inset:-38% -20% -12%;background:repeating-linear-gradient(90deg,rgba(11,67,160,.11) 0 1px,transparent 1px 74px),repeating-linear-gradient(0deg,rgba(11,67,160,.1) 0 1px,transparent 1px 74px);transform:rotateX(64deg) rotateZ(-12deg) translate3d(calc(var(--px) * -.18),calc(var(--py) * -.18),0);transform-origin:center 75%;mask-image:linear-gradient(to bottom,transparent 4%,#000 42%,#000 80%,transparent 100%)}
.map:after,.map .orbit{content:"";position:absolute;z-index:0;height:3px;border:0;border-radius:0;background:linear-gradient(90deg,rgba(11,67,160,.08),#0b43a0 35%,#62a8ff 52%,rgba(11,67,160,.12));box-shadow:0 0 16px rgba(47,116,218,.5);transform-origin:left center}
.map .orbit:after,.map:after{clip-path:none}
.map .orbit.one{width:35%;height:3px;left:15%;top:42%;transform:rotate(10deg)}
.map .orbit.two{width:38%;height:3px;left:47%;top:43%;transform:rotate(-28deg)}
.map:after{width:40%;left:48%;top:51%;transform:rotate(27deg)}
.map .home,.map .pin{border-radius:0;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);transition:transform .22s ease-out,box-shadow .25s ease}
.map .home{z-index:3;width:180px;height:150px;left:38%;top:34%;background:linear-gradient(145deg,#1458ba,#082c72);color:white;transform:translate3d(var(--px),var(--py),55px) rotateY(-9deg) rotateX(4deg);box-shadow:18px 24px 0 rgba(5,31,78,.18),30px 42px 55px rgba(5,31,78,.3);overflow:visible}
.map .home:before{content:"ULSAN  /  35°32′N";position:absolute;left:20px;top:18px;font:700 7px Arial;letter-spacing:.18em;color:#92c0ff}
.map .home:after{content:"";position:absolute;left:18px;right:18px;bottom:20px;height:2px;background:linear-gradient(90deg,#ff9564 0 27%,rgba(255,255,255,.22) 27%);box-shadow:0 -8px 0 rgba(255,255,255,.09)}
.map .home b{font:italic 31px Georgia;transform:translateZ(30px);text-shadow:8px 11px 18px rgba(0,0,0,.3)}
.map .home small{color:#d7e8ff;transform:translateZ(25px)}
.map .pin{z-index:2;width:168px;height:94px;padding:24px 26px;align-items:flex-start;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(232,240,252,.94));color:#0b1f3d;box-shadow:12px 17px 0 rgba(70,110,170,.12),20px 30px 42px rgba(28,65,118,.18);font-size:15px;letter-spacing:-.03em;transform:translate3d(calc(var(--px) * .45),calc(var(--py) * .45),28px) rotateY(-5deg)}
.map .pin:before{position:absolute;right:18px;top:15px;font:italic 12px Georgia;color:#df7b4e;letter-spacing:.06em}
.map .pin:after{content:"↗";position:absolute;right:18px;bottom:15px;color:#0b43a0;font-size:15px}
.map .p1:before{content:"01"}.map .p2:before{content:"02"}.map .p3:before{content:"03"}
.map .pin small{margin-top:8px;color:#6a7b92;font-size:9px}
.map .p1{left:6%;top:29%;transform:translate3d(calc(var(--px) * .3),calc(var(--py) * .3),18px) rotateY(6deg)}
.map .p2{right:7%;top:14%}.map .p3{right:4%;bottom:12%;transform:translate3d(calc(var(--px) * .65),calc(var(--py) * .65),40px) rotateY(-7deg)}
.map .pin:hover{box-shadow:16px 24px 0 rgba(70,110,170,.15),26px 38px 55px rgba(28,65,118,.26);filter:brightness(1.02)}
@media(max-width:900px){.map{height:590px}.map .home{left:35%;top:36%}.map .p1{left:5%;top:16%}.map .p2{right:4%;top:12%}.map .p3{right:6%;bottom:11%}}
@media(max-width:560px){.map{height:510px}.map:before{inset:-25% -45% -5%}.map .home{width:142px;height:125px;left:31%;top:38%;transform:translate3d(0,0,35px) rotateY(-7deg)}.map .home b{font-size:25px}.map .pin{width:128px;height:78px;padding:20px;font-size:13px;transform:none!important}.map .p1{left:4%;top:11%}.map .p2{right:3%;top:14%}.map .p3{right:5%;bottom:9%}.map .orbit.one{left:18%;top:36%;width:26%;transform:rotate(36deg)}.map .orbit.two{left:49%;top:42%;width:31%}.map:after{left:48%;top:55%;width:33%;transform:rotate(40deg)}}
@media(prefers-reduced-motion:reduce){.map .home,.map .pin,.map:before{transition:none;transform:none}}

/* CONNECTED ULSAN v2 — true three-face objects */
.map:after{display:none}.map{perspective:1100px;overflow:hidden}
.iso-floor{position:absolute;z-index:-1;width:82%;height:58%;left:7%;top:24%;border:1px solid rgba(42,91,164,.22);background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(122,163,220,.12));transform:rotateX(57deg) rotateZ(-8deg) translateZ(-60px);box-shadow:0 45px 75px rgba(26,67,126,.13);clip-path:polygon(7% 0,100% 0,93% 100%,0 100%)}
.iso-floor:before,.iso-floor:after,.iso-floor i{content:"";position:absolute;background:linear-gradient(90deg,transparent,#3c7ed8,transparent);height:1px;left:5%;right:5%}
.iso-floor:before{top:26%}.iso-floor:after{top:70%}.iso-floor i:nth-child(1){top:48%}.iso-floor i:nth-child(2){width:1px;height:100%;left:34%;top:0;background:linear-gradient(transparent,#3c7ed8,transparent)}.iso-floor i:nth-child(3){width:1px;height:100%;left:69%;top:0;background:linear-gradient(transparent,#3c7ed8,transparent)}
.route{position:absolute;z-index:1;height:2px;background:linear-gradient(90deg,#286bc7,#7cb9ff);transform-origin:left;box-shadow:0 0 12px rgba(23,96,202,.55)}
.route:after{content:"";position:absolute;right:-4px;top:-3px;width:8px;height:8px;background:#df7b4e;transform:rotate(45deg);box-shadow:0 0 14px #df7b4e}
.r1{width:27%;left:19%;top:40%;transform:rotate(12deg)}.r2{width:33%;left:52%;top:42%;transform:rotate(-25deg)}.r3{width:32%;left:51%;top:53%;transform:rotate(27deg)}
.arco-hub{position:absolute;z-index:5;width:150px;height:122px;left:40%;top:35%;transform:translate3d(var(--px),var(--py),70px)}
.hub-volume{position:absolute;inset:0;background:linear-gradient(145deg,#145cc8,#073681);box-shadow:30px 40px 45px rgba(10,48,105,.3)}
.hub-volume:before{content:"";position:absolute;height:25px;left:13px;right:-13px;top:-25px;background:linear-gradient(90deg,#68a5f3,#2a73d4);transform:skewX(-46deg);transform-origin:bottom}
.hub-volume:after{content:"";position:absolute;width:25px;top:-13px;bottom:13px;right:-25px;background:linear-gradient(#0b4096,#041f54);transform:skewY(-44deg);transform-origin:left}
.hub-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;text-shadow:0 8px 14px rgba(0,0,0,.3)}
.hub-label:before{content:"ULSAN / 35°32′N";position:absolute;top:17px;font:700 6px Arial;letter-spacing:.18em;color:#a8cbff}
.hub-label b{font:italic 29px Georgia}.hub-label small{font-size:8px;letter-spacing:.18em;margin-top:8px;color:#dceaff}
.place-node{position:absolute;z-index:4;width:142px;height:82px;margin:0;padding:18px 19px;background:linear-gradient(145deg,#fff,#e7effb);box-shadow:22px 28px 36px rgba(29,68,124,.2);transform:translate3d(var(--px),var(--py),35px);transition:transform .2s ease-out,filter .2s ease}
.place-node:before{content:"";position:absolute;height:13px;left:7px;right:-7px;top:-13px;background:linear-gradient(90deg,#fff,#b9d0ef);transform:skewX(-46deg);transform-origin:bottom}
.place-node:after{content:"";position:absolute;width:13px;right:-13px;top:-7px;bottom:7px;background:linear-gradient(#b6ceef,#789ac9);transform:skewY(-44deg);transform-origin:left}
.place-node i{position:absolute;width:4px;left:0;top:0;bottom:0;background:#df7b4e}
.place-node span{display:block;font-size:6px;font-weight:800;letter-spacing:.17em;color:#0b43a0;margin-bottom:9px}.place-node b{display:block;font-size:15px;line-height:1}.place-node small{display:block;font-size:8px;color:#73849b;margin-top:7px;letter-spacing:.04em}
.place-node:hover{transform:translate3d(var(--px),var(--py),48px) translateY(-8px);filter:brightness(1.04)}
.n1{left:7%;top:30%}.n2{right:7%;top:16%;transform:translate3d(var(--px),var(--py),24px)}.n3{right:5%;bottom:15%;transform:translate3d(var(--px),var(--py),45px)}
@media(max-width:900px){.arco-hub{left:39%;top:38%}.n1{left:6%;top:17%}.n2{right:5%;top:16%}.n3{right:7%;bottom:12%}}
@media(max-width:560px){.iso-floor{width:110%;left:-18%;top:22%}.arco-hub{width:124px;height:102px;left:32%;top:39%;transform:translate3d(0,0,55px)}.hub-label b{font-size:24px}.place-node{width:112px;height:69px;padding:14px 15px;transform:none!important}.place-node b{font-size:13px}.place-node span{font-size:5px;margin-bottom:7px}.n1{left:4%;top:12%}.n2{right:4%;top:15%}.n3{right:5%;bottom:10%}.r1{left:20%;top:34%;width:22%;transform:rotate(38deg)}.r2{left:52%;top:42%;width:27%}.r3{left:51%;top:55%;width:29%;transform:rotate(41deg)}}

/* CONNECTED ULSAN v3 — architectural miniatures */
.arco-hub{width:188px;height:190px;left:38%;top:25%}
.hub-volume{inset:auto 0 0;height:58px;background:linear-gradient(145deg,#145cc8,#073681)}
.apt-cluster{position:absolute;left:17px;right:17px;bottom:39px;height:132px;filter:drop-shadow(18px 23px 17px rgba(9,48,104,.28))}
.apt-cluster .tower{position:absolute;bottom:0;background:repeating-linear-gradient(0deg,rgba(205,231,255,.92) 0 3px,transparent 3px 11px),linear-gradient(100deg,#1d67c9,#0a3f94);border-left:3px solid #73b2fa}
.apt-cluster .tower:before{content:"";position:absolute;left:7px;right:-7px;top:-10px;height:10px;background:linear-gradient(90deg,#9dccff,#3b84df);transform:skewX(-42deg);transform-origin:bottom}
.apt-cluster .tower:after{content:"";position:absolute;top:-5px;right:-9px;width:9px;bottom:5px;background:#062b6d;transform:skewY(-48deg);transform-origin:left}
.apt-cluster .t1{left:8px;width:43px;height:92px}.apt-cluster .t2{left:58px;width:48px;height:128px}.apt-cluster .t3{right:4px;width:38px;height:78px}
.apt-cluster .podium{position:absolute;left:0;right:0;bottom:-10px;height:24px;background:linear-gradient(90deg,#0d4aa4,#357cd4);box-shadow:0 9px 0 #062c6c}
.hub-label{justify-content:flex-end;padding-bottom:9px;pointer-events:none}.hub-label:before{content:"ULSAN / 35°32′N";top:auto;bottom:44px}.hub-label b{font-size:19px;line-height:1}.hub-label small{font-size:5px;margin-top:4px}
.place-node{width:166px;height:112px;padding:18px 18px}.place-node .edge{position:absolute;width:4px;left:0;top:0;bottom:0;background:#df7b4e}.place-node>span{font-size:6px;margin-bottom:9px}.place-node>b{font-size:15px}.place-node>small{font-size:7px}
.node-art{position:absolute;right:13px;top:15px;width:73px;height:50px;pointer-events:none}
.place-node .node-art i,.place-node .node-art span{position:absolute;display:block;margin:0;padding:0;background:none;color:inherit;letter-spacing:0}
.river-art{overflow:hidden;background:linear-gradient(180deg,transparent 42%,rgba(96,171,239,.18) 42%)}
.river-art i{left:-7px!important;width:88px!important;height:13px!important;border:2px solid #3d94df;border-color:#3d94df transparent transparent!important;border-radius:50%!important}
.river-art i:nth-child(1){top:27px!important}.river-art i:nth-child(2){top:35px!important;opacity:.7}.river-art i:nth-child(3){top:43px!important;opacity:.45}
.river-art span{left:12px!important;top:14px!important;width:50px;height:12px;border-top:2px solid #0b43a0;border-left:1px solid #0b43a0;border-right:1px solid #0b43a0;transform:skewY(-8deg)}
.river-art span:before,.river-art span:after{content:"";position:absolute;width:1px;height:11px;background:#0b43a0;top:-11px}.river-art span:before{left:12px}.river-art span:after{right:12px}
.city-art i{bottom:2px!important;width:15px!important;background:repeating-linear-gradient(0deg,#8eb9ec 0 2px,#174f9a 2px 6px)!important;border-top:3px solid #0b43a0}
.city-art i:nth-child(1){left:5px!important;height:29px!important}.city-art i:nth-child(2){left:27px!important;height:45px!important}.city-art i:nth-child(3){left:50px!important;height:35px!important}.city-art span{left:0!important;right:0!important;bottom:0!important;height:3px;background:#df7b4e!important}
.station-art:before{content:"KTX";position:absolute;right:4px;top:3px;font:italic 700 7px Arial;color:#df7b4e;letter-spacing:.1em}
.station-art i:nth-child(1){left:4px!important;right:4px!important;top:15px!important;height:23px!important;background:linear-gradient(135deg,#d9e9fa,#7da9da)!important;clip-path:polygon(10% 0,90% 0,100% 100%,0 100%)}
.station-art i:nth-child(2){left:14px!important;top:23px!important;width:45px!important;height:8px!important;background:repeating-linear-gradient(90deg,#174f9a 0 7px,#9fc4e9 7px 10px)!important}
.station-art i:nth-child(3){left:0!important;right:0!important;bottom:3px!important;height:2px!important;background:#526c8f!important;box-shadow:0 5px 0 #92a7c0}
.station-art span{left:8px!important;bottom:10px!important;width:52px;height:8px;background:#f5f8fc!important;border:2px solid #0b43a0;border-radius:4px 7px 2px 2px!important;box-shadow:5px 0 0 #df7b4e}
@media(max-width:900px){.arco-hub{left:37%;top:28%}}
@media(max-width:560px){.arco-hub{width:150px;height:156px;left:27%;top:31%}.apt-cluster{height:105px}.apt-cluster .t1{height:72px}.apt-cluster .t2{height:101px}.apt-cluster .t3{height:61px}.place-node{width:134px;height:92px;padding:14px}.node-art{width:58px;height:42px;right:8px;top:11px;transform:scale(.82);transform-origin:top right}.place-node>span{font-size:5px}.place-node>b{font-size:13px}.n1{left:3%;top:9%}.n2{right:3%;top:11%}.n3{right:4%;bottom:8%}}

/* CONNECTED ULSAN v4 — place-led city diorama */
.real-map{--px:0px;--py:0px;background:#dceafb;perspective:none}
.real-map:before,.real-map:after{display:none}
.ulsan-model{position:absolute;inset:-2%;background:url('assets/ulsan-city-diorama.png') center/cover no-repeat;transform:scale(1.025) translate3d(var(--px),var(--py),0);transition:transform .3s ease-out;filter:saturate(.93) contrast(1.02)}
.real-map:after{content:"";display:block;position:absolute;inset:0;background:linear-gradient(90deg,rgba(220,234,251,.08),transparent 40%,rgba(220,234,251,.03)),linear-gradient(0deg,rgba(8,27,56,.18),transparent 28%);pointer-events:none}
.map-label{position:absolute;z-index:4;padding-left:18px;color:#071b38;text-shadow:0 2px 10px rgba(255,255,255,.95);transition:transform .25s ease-out}
.map-label:before{content:"";position:absolute;left:0;top:5px;width:8px;height:8px;background:#df7b4e;transform:rotate(45deg);box-shadow:0 0 0 5px rgba(255,255,255,.65),0 4px 15px rgba(8,42,88,.24)}
.map-label:after{content:"";position:absolute;left:4px;top:13px;width:1px;height:32px;background:linear-gradient(#df7b4e,transparent)}
.map-label span{display:block;font-size:6px;font-weight:900;letter-spacing:.22em;color:#0b43a0;margin-bottom:7px}.map-label b{display:block;font-size:16px;letter-spacing:-.04em}.map-label small{display:block;font-size:8px;margin-top:6px;color:#50657e;font-weight:700}
.river-label{left:5%;top:36%}.arco-label{left:43%;top:55%;color:white;text-shadow:0 2px 8px rgba(0,0,0,.75)}.arco-label span,.arco-label small{color:#dceaff}.city-label{right:4%;top:18%;text-align:right;padding:0 18px 0 0}.city-label:before{left:auto;right:0}.city-label:after{left:auto;right:4px}.station-label{right:4%;bottom:12%;text-align:right;padding:0 18px 0 0}.station-label:before{left:auto;right:0}.station-label:after{left:auto;right:4px}
.real-map:hover .river-label{transform:translate(-4px,-3px)}.real-map:hover .city-label{transform:translate(4px,-4px)}.real-map:hover .station-label{transform:translate(5px,4px)}
@media(max-width:900px){.ulsan-model{background-position:center}.river-label{left:4%;top:34%}.arco-label{left:40%;top:56%}.city-label{right:3%;top:18%}.station-label{right:3%;bottom:10%}}
@media(max-width:560px){.real-map{height:520px}.ulsan-model{inset:0;background-position:51% center;transform:none}.map-label{padding-left:13px}.map-label b{font-size:12px}.map-label small{font-size:6px}.map-label span{font-size:5px}.map-label:before{width:6px;height:6px}.river-label{left:3%;top:31%}.arco-label{left:35%;top:53%}.city-label{right:3%;top:13%;padding-right:13px}.station-label{right:3%;bottom:8%;padding-right:13px}}


