:root{
    --bg:#050a13;
    --bg2:#08111e;
    --panel:#0b1525;
    --panel2:#0f1c30;
    --line:rgba(255,255,255,.085);
    --line-blue:rgba(102,164,255,.22);
    --text:#f4f7fb;
    --muted:#8d9db3;
    --blue:#55a6ff;
    --blue2:#78b8ff;
    --violet:#7d67ff;
    --green:#52dfad;
    --amber:#ffbf4a;
    --max:1180px;
    --shadow:0 30px 90px rgba(0,0,0,.38);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    min-height:100vh;
    background:
        radial-gradient(circle at 10% 0%,rgba(45,117,255,.16),transparent 29%),
        radial-gradient(circle at 95% 18%,rgba(120,76,255,.11),transparent 27%),
        var(--bg);
    color:var(--text);
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Pretendard","Noto Sans KR","Segoe UI",sans-serif;
    line-height:1.6;
    overflow-x:hidden;
}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
img{display:block;max-width:100%}
.container{width:min(calc(100% - 42px),var(--max));margin:0 auto}
.page-glow{position:fixed;z-index:-3;border-radius:50%;filter:blur(120px);pointer-events:none;opacity:.26}
.glow-a{width:380px;height:380px;background:#1f6dff;left:-170px;top:-130px}
.glow-b{width:340px;height:340px;background:#7046ff;right:-190px;top:350px}

.nav{
    position:sticky;top:0;z-index:50;
    background:rgba(5,10,19,.76);
    border-bottom:1px solid rgba(255,255,255,.055);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px)
}
.nav-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo-shell{
    display:inline-flex;align-items:center;justify-content:center;
    padding:7px 10px;
    min-height:42px;
    border-radius:12px;
    background:rgba(255,255,255,.96);
    box-shadow:0 8px 24px rgba(0,0,0,.18),inset 0 1px 0 #fff
}
.brand-logo-shell img{width:132px;height:auto}
.brand-sub{font-size:9px;letter-spacing:.16em;font-weight:850;color:#73849d}
.nav-links{display:flex;align-items:center;gap:26px;color:#b7c1d1;font-size:13px}
.nav-links a:hover{color:#fff}
.nav-cta{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:43px;padding:0 17px;border-radius:12px;
    background:#f7f9fd;color:#08111e!important;font-weight:850
}

.hero{padding:110px 0 88px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:70px;align-items:center}
.eyebrow{
    display:inline-flex;align-items:center;gap:9px;
    padding:7px 12px;border-radius:999px;
    border:1px solid rgba(100,164,255,.18);
    background:rgba(64,124,226,.075);
    color:#9dc5ff;font-size:11px;font-weight:850;letter-spacing:.11em
}
.eyebrow span{width:7px;height:7px;border-radius:50%;background:#62d8ff;box-shadow:0 0 15px #62d8ff}
.hero h1{
    margin:24px 0 22px;
    font-size:clamp(50px,6vw,82px);
    line-height:1.03;letter-spacing:-.065em;font-weight:920
}
.hero h1 em{
    font-style:normal;
    background:linear-gradient(100deg,#fff 8%,#a1cfff 54%,#a694ff 98%);
    -webkit-background-clip:text;background-clip:text;color:transparent
}
.hero-desc{max-width:680px;margin:0;color:#a6b3c6;font-size:18px;line-height:1.82;letter-spacing:-.02em}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    min-height:55px;padding:0 23px;border-radius:15px;font-size:14px;font-weight:850;
    transition:.2s ease
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,#5baaff,#4a7cff 58%,#765cff);box-shadow:0 16px 40px rgba(61,115,255,.25)}
.btn-ghost{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);color:#dfe6ef}
.hero-meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:27px;color:#63758f;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}

.hero-art{position:relative;min-height:560px;display:flex;align-items:center;justify-content:center}
.orbit{position:absolute;border:1px solid rgba(111,166,255,.09);border-radius:50%}
.orbit-one{width:430px;height:430px}
.orbit-two{width:340px;height:340px}
.phone{
    position:relative;z-index:3;width:270px;height:550px;padding:10px;border-radius:45px;
    border:1px solid rgba(255,255,255,.2);
    background:linear-gradient(145deg,#2b3850,#060a12 56%,#213149);
    box-shadow:0 55px 100px rgba(0,0,0,.6),inset 0 1px 1px rgba(255,255,255,.2);
    transform:rotate(5deg)
}
.phone-screen{
    height:100%;border-radius:35px;overflow:hidden;position:relative;
    background:radial-gradient(circle at 20% 0%,rgba(59,143,255,.31),transparent 33%),linear-gradient(160deg,#101d32,#070b13 58%,#121c2e)
}
.dynamic-island{position:absolute;top:13px;left:50%;transform:translateX(-50%);width:94px;height:25px;border-radius:20px;background:#02050a}
.screen-inner{padding:68px 20px 20px}
.screen-inner small{color:#8398b5;font-size:10px;letter-spacing:.13em}
.screen-inner h3{margin:8px 0 0;font-size:27px;line-height:1.08;letter-spacing:-.05em}
.screen-inner h3 span{color:#7cb9ff}
.screen-card{margin-top:28px;min-height:156px;padding:19px;border:1px solid rgba(122,178,255,.17);border-radius:23px;background:linear-gradient(145deg,rgba(79,151,255,.22),rgba(112,81,255,.08))}
.screen-appmark{width:55px;height:55px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#66bdff,#516aff,#815eff);font-size:19px;font-weight:900}
.screen-line{height:7px;border-radius:20px;background:rgba(255,255,255,.12);margin-top:20px}
.screen-line+.screen-line{margin-top:8px}.w80{width:80%}.w55{width:55%}
.screen-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.screen-grid i{display:block;height:88px;border-radius:17px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.03)}
.float-card{
    position:absolute;z-index:5;min-width:145px;padding:13px 16px;border-radius:16px;
    border:1px solid rgba(255,255,255,.12);background:rgba(13,25,44,.82);
    backdrop-filter:blur(16px);box-shadow:var(--shadow)
}
.float-card b{display:block;font-size:12px;color:#dfe8f6}.float-card b::first-letter{color:var(--green)}
.float-card span{display:block;margin-top:3px;color:#7c8ea7;font-size:9px}
.float-top{top:100px;left:0}.float-bottom{right:-6px;bottom:95px}

.proof-strip{border-top:1px solid rgba(255,255,255,.055);border-bottom:1px solid rgba(255,255,255,.055)}
.proof-grid{min-height:108px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center}
.proof-grid>div{padding:11px 24px;border-right:1px solid rgba(255,255,255,.055)}
.proof-grid>div:first-child{padding-left:0}.proof-grid>div:last-child{border-right:0}
.proof-grid strong{display:block;font-size:16px;letter-spacing:-.03em}.proof-grid span{color:#71839d;font-size:10px}

.section{padding:116px 0}
.section-kicker{display:block;color:#72a9ff;font-size:11px;font-weight:900;letter-spacing:.14em}
.section-head h2,.portfolio-heading h2,.launch-panel h2,.cta-box h2,.contact-copy h2{
    margin:12px 0 0;font-size:clamp(36px,4.1vw,55px);line-height:1.08;letter-spacing:-.055em
}
.section-head>p{max-width:660px;margin:19px 0 0;color:#8899b0;font-size:15px;line-height:1.8}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:52px}
.service-card{
    min-height:285px;padding:28px;border-radius:25px;border:1px solid var(--line);
    background:linear-gradient(155deg,rgba(255,255,255,.045),rgba(255,255,255,.014));
    transition:.25s ease
}
.service-card:hover{transform:translateY(-5px);border-color:var(--line-blue);background:linear-gradient(155deg,rgba(72,132,236,.10),rgba(255,255,255,.015))}
.service-icon{
    width:48px;height:48px;border-radius:15px;display:grid;place-items:center;
    border:1px solid rgba(104,172,255,.17);background:linear-gradient(145deg,rgba(90,164,255,.18),rgba(128,93,255,.12));
    color:#8cc4ff;font-size:11px;font-weight:900;letter-spacing:.08em
}
.service-card h3{margin:31px 0 9px;font-size:21px;letter-spacing:-.035em}
.service-card p{margin:0;color:#8394ab;font-size:13px;line-height:1.75}
.service-card small{display:block;margin-top:22px;color:#68a5ff;font-size:10px;font-weight:850;letter-spacing:.07em}

.portfolio{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,0))}
.portfolio::before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:rgba(55,119,255,.07);filter:blur(100px);left:-290px;top:140px;pointer-events:none}
.portfolio-heading{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:end}
.portfolio-heading p{margin:0;color:#8a9ab0;font-size:14px;line-height:1.8}
.portfolio-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.025)}
.portfolio-stats>div{padding:21px 25px;border-right:1px solid var(--line)}
.portfolio-stats>div:last-child{border-right:0}
.portfolio-stats strong{display:block;font-size:27px;line-height:1;color:#dcecff}
.portfolio-stats span{display:block;margin-top:7px;color:#71849e;font-size:10px}
.portfolio-shots{display:grid;grid-template-columns:1fr;gap:20px;margin-top:24px}
.shot-card{
    width:100%;padding:0;text-align:left;color:inherit;cursor:zoom-in;
    border:1px solid rgba(255,255,255,.09);border-radius:25px;overflow:hidden;
    background:linear-gradient(145deg,#0c1728,#07101c);box-shadow:0 25px 70px rgba(0,0,0,.2);
    transition:.25s ease
}
.shot-card:hover{transform:translateY(-4px);border-color:rgba(103,165,255,.25)}
.shot-top{height:48px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06);color:#6e819c;font-size:9px;font-weight:850;letter-spacing:.12em}
.shot-top b{color:#8bbfff;font-size:11px}
.shot-card img{width:100%;height:auto;background:#fff}
.shot-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;padding:18px 20px}
.shot-caption strong{font-size:13px}
.shot-caption span{max-width:68%;color:#74869f;font-size:10px;text-align:right;line-height:1.65}
.project-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.project-list article{min-height:145px;padding:21px;border:1px solid rgba(255,255,255,.075);border-radius:18px;background:rgba(255,255,255,.025)}
.project-list h3{margin:13px 0 4px;font-size:15px;letter-spacing:-.025em}
.project-list p{margin:0;color:#73859e;font-size:10px}
.status{display:inline-flex;align-items:center;min-height:23px;padding:0 8px;border-radius:999px;font-size:9px;font-weight:850}
.status.ready{color:#68e5bb;background:rgba(64,214,168,.09);border:1px solid rgba(72,218,172,.13)}
.status.review{color:#ffd373;background:rgba(255,184,57,.08);border:1px solid rgba(255,190,67,.15)}
.status.prep{color:#9fc7ff;background:rgba(75,145,255,.08);border:1px solid rgba(88,158,255,.14)}
.portfolio-note{margin:16px 0 0;color:#53667f;font-size:9px}

.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:54px}
.process-grid article{padding:22px 13px 0 0;border-top:1px solid rgba(255,255,255,.10)}
.process-grid span{color:#588fdf;font-size:10px;font-weight:900;letter-spacing:.13em}
.process-grid h3{margin:11px 0 7px;font-size:15px}.process-grid p{margin:0;color:#73859d;font-size:11px}

.launch-panel{
    display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;
    padding:62px;border:1px solid rgba(255,255,255,.08);border-radius:30px;
    background:radial-gradient(circle at 0 0,rgba(55,128,249,.13),transparent 36%),linear-gradient(145deg,#0b1524,#08101c)
}
.launch-panel p{max-width:520px;margin:17px 0 0;color:#8799b1;font-size:14px}
.launch-list{display:grid;gap:10px}
.launch-list span{display:flex;align-items:center;gap:11px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.055);color:#aeb9c8;font-size:12px}
.launch-list span:last-child{border-bottom:0}.launch-list b{color:var(--green)}

.cta{padding-top:35px}
.cta-box{
    position:relative;overflow:hidden;text-align:center;padding:78px 24px;border:1px solid rgba(112,170,255,.18);border-radius:32px;
    background:radial-gradient(circle at 50% -20%,rgba(91,153,255,.27),transparent 46%),linear-gradient(160deg,#0d192c,#080e19)
}
.cta-box p{max-width:620px;margin:20px auto 0;color:#8fa1b8;font-size:14px}
.cta-box .hero-actions{justify-content:center}

.contact{padding:108px 0;border-top:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.012)}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:74px}
.contact-copy p{max-width:440px;margin:18px 0 0;color:#8798af;font-size:14px}
.contact-copy ul{list-style:none;padding:0;margin:31px 0;display:grid;gap:10px;color:#adb8c8;font-size:12px}
.contact-copy li::before{content:"✓";color:var(--green);margin-right:10px}
.contact-copy>a{color:#75adff;font-size:13px;font-weight:800}
.form-box{padding:29px;border:1px solid rgba(255,255,255,.08);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.018))}
.alert{margin-bottom:16px;padding:12px 14px;border-radius:11px;font-size:11px}
.alert.success{color:#80e8c6;background:rgba(47,187,142,.09);border:1px solid rgba(74,217,172,.17)}
.alert.error{color:#ff9b9b;background:rgba(255,80,80,.07);border:1px solid rgba(255,100,100,.15)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-box label{display:block;margin-bottom:12px}
.form-box label>span{display:block;margin-bottom:7px;color:#a7b4c5;font-size:10px;font-weight:750}
.form-box input,.form-box select,.form-box textarea{
    width:100%;min-height:48px;padding:12px 13px;border-radius:12px;outline:none;
    border:1px solid rgba(255,255,255,.09);background:#08111e;color:#eef3fa
}
.form-box textarea{min-height:125px;resize:vertical}
.form-box input:focus,.form-box select:focus,.form-box textarea:focus{border-color:rgba(80,149,255,.55);box-shadow:0 0 0 3px rgba(62,131,255,.07)}
.form-box input::placeholder,.form-box textarea::placeholder{color:#425169}
.form-box select option{background:#0a1422}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-box .consent{display:flex;align-items:flex-start;gap:8px;color:#70829a;font-size:9px}
.form-box .consent input{width:auto;min-height:0;margin-top:3px}
.form-box .consent span{margin:0;color:#70829a;font-size:9px;font-weight:400}
.submit-btn{width:100%;min-height:52px;border:0;border-radius:13px;cursor:pointer;color:#fff;font-weight:850;background:linear-gradient(135deg,#5baaff,#497aff 60%,#745bff);box-shadow:0 14px 35px rgba(54,111,239,.19)}

.footer{padding:34px 0 42px;border-top:1px solid rgba(255,255,255,.055)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:25px}
.footer-logo{display:flex;align-items:center;gap:10px}.footer-logo .brand-logo-shell{min-height:36px;padding:5px 8px;border-radius:10px}.footer-logo img{width:100px}.footer-logo small{color:#687b95;font-size:8px;letter-spacing:.13em;font-weight:850}
.footer p{margin:0;color:#566982;font-size:9px}

.lightbox{
    position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:38px;
    background:rgba(2,5,10,.91);backdrop-filter:blur(10px)
}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1500px,96vw);max-height:88vh;border-radius:18px;box-shadow:0 35px 100px rgba(0,0,0,.6);background:#fff}
.lightbox-close{position:absolute;top:22px;right:24px;width:44px;height:44px;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;font-size:28px;cursor:pointer}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.show{opacity:1;transform:none}

@media(max-width:1000px){
    .hero-grid{grid-template-columns:1fr;gap:28px}
    .hero-copy{text-align:center}.hero-desc{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.hero-meta{justify-content:center}
    .hero-art{max-width:530px;width:100%;margin:0 auto}
    .service-grid{grid-template-columns:1fr 1fr}
    .portfolio-heading{grid-template-columns:1fr;gap:20px}
    .project-list{grid-template-columns:1fr 1fr}
    .process-grid{grid-template-columns:repeat(3,1fr);row-gap:35px}
    .launch-panel{grid-template-columns:1fr;gap:35px;padding:48px}
    .contact-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
    .container{width:min(calc(100% - 28px),var(--max))}
    .nav-inner{height:68px}.nav-links a:not(.nav-cta){display:none}.brand-sub{display:none}.brand-logo-shell img{width:112px}.nav-cta{min-height:39px;padding:0 13px;font-size:11px}
    .hero{padding:68px 0 56px}.hero h1{font-size:46px}.hero-desc{font-size:15px}.hero-actions .btn{width:100%}
    .hero-art{min-height:500px;transform:scale(.9);margin-top:-15px;margin-bottom:-25px}.phone{width:245px;height:500px}.float-top{left:-10px}.float-bottom{right:-10px}
    .proof-grid{grid-template-columns:1fr 1fr;padding:12px 0}.proof-grid>div{border-right:0;padding:12px}.proof-grid>div:first-child{padding-left:12px}
    .section{padding:80px 0}.section-head h2,.portfolio-heading h2,.launch-panel h2,.cta-box h2,.contact-copy h2{font-size:38px}
    .service-grid{grid-template-columns:1fr;margin-top:38px}.service-card{min-height:auto}
    .portfolio-stats{grid-template-columns:1fr}.portfolio-stats>div{border-right:0;border-bottom:1px solid var(--line)}.portfolio-stats>div:last-child{border-bottom:0}
    .shot-caption{display:block}.shot-caption span{display:block;max-width:none;margin-top:6px;text-align:left}
    .project-list{grid-template-columns:1fr}
    .process-grid{grid-template-columns:1fr 1fr}
    .launch-panel{padding:30px 22px}
    .cta-box{padding:60px 19px}
    .contact{padding:78px 0}.contact-grid{gap:40px}.form-box{padding:20px}.form-row{grid-template-columns:1fr;gap:0}
    .footer-inner{flex-direction:column;text-align:center}
    .lightbox{padding:15px}.lightbox-close{top:12px;right:12px}
}
@media(max-width:430px){
    .hero h1{font-size:40px}.process-grid{grid-template-columns:1fr}.float-card{padding:11px 13px}.float-top{left:0}.float-bottom{right:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* APPDEV_HEADER_WHITE_V2_START */

/* eKBS 상단 헤더 */
.nav{
    background:rgba(255,255,255,.98) !important;
    border-bottom:1px solid rgba(18,43,91,.12) !important;
    box-shadow:0 8px 30px rgba(18,43,91,.07) !important;
    backdrop-filter:blur(18px) !important;
    -webkit-backdrop-filter:blur(18px) !important;
}

/* 메뉴 영역 */
.nav-links{
    color:#142d5c !important;
}

/* 일반 메뉴 */
.nav-links a{
    color:#142d5c !important;
    font-weight:750 !important;
}

/* 메뉴 마우스 오버 */
.nav-links a:hover{
    color:#275b9d !important;
}

/* 현재 브랜드 글자가 있을 경우 */
.brand,
.brand strong,
.brand span{
    color:#142d5c !important;
}

/* 무료 견적 버튼 */
.nav-links .nav-cta,
.nav-cta{
    background:#142d5c !important;
    color:#ffffff !important;
    border:1px solid #142d5c !important;
    box-shadow:0 7px 18px rgba(20,45,92,.16) !important;
}

/* 무료 견적 버튼 호버 */
.nav-links .nav-cta:hover,
.nav-cta:hover{
    background:#234f8e !important;
    color:#ffffff !important;
    border-color:#234f8e !important;
}

/* 로고 이미지 */
.brand img{
    max-height:42px !important;
    width:auto !important;
    object-fit:contain !important;
}

/* 모바일에서도 헤더 흰색 유지 */
@media(max-width:760px){
    .nav{
        background:#ffffff !important;
    }

    .nav-links{
        background:#ffffff !important;
    }

    .nav-links a{
        color:#142d5c !important;
    }

    .nav-links .nav-cta{
        color:#ffffff !important;
    }
}

/* APPDEV_HEADER_WHITE_V2_END */


/* APPDEV_NEW_HEADER_LOGO_START */

.brand-logo-shell{
    padding:0 !important;
    min-height:40px !important;
    background:transparent !important;
    box-shadow:none !important;
    border-radius:0 !important;
}

.brand-logo-shell img{
    width:184px !important;
    max-width:184px !important;
    height:40px !important;
    object-fit:contain !important;
    display:block !important;
}

@media(max-width:760px){
    .brand-logo-shell img{
        width:150px !important;
        max-width:150px !important;
        height:auto !important;
    }
}

/* APPDEV_NEW_HEADER_LOGO_END */


/* APPDEV_FINAL_LOGO_START */

.brand{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
}

.brand-logo-shell{
    display:flex !important;
    align-items:center !important;
    padding:0 !important;
    margin:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    border:0 !important;
}

.brand-logo-shell img{
    display:block !important;
    width:190px !important;
    max-width:190px !important;
    height:auto !important;
    max-height:48px !important;
    object-fit:contain !important;
}

.brand-sub{
    color:#142d5c !important;
}

@media(max-width:760px){

    .brand-logo-shell img{
        width:155px !important;
        max-width:155px !important;
        max-height:42px !important;
    }

    .brand-sub{
        display:none !important;
    }
}

/* APPDEV_FINAL_LOGO_END */

/* APPDEV_APP_WEB_PACKAGE_CSS_START */

.app-web-package{
    position:relative;
    padding:120px 0;
    overflow:hidden;
}

.app-web-package::before{
    content:"";
    position:absolute;
    width:580px;
    height:580px;
    border-radius:50%;
    background:rgba(45,109,255,.09);
    filter:blur(110px);
    top:40px;
    right:-280px;
    pointer-events:none;
}

.app-web-shell{
    position:relative;
    overflow:hidden;
    padding:70px;
    border-radius:34px;
    border:1px solid rgba(125,174,255,.17);
    background:
        radial-gradient(
            circle at 10% 0%,
            rgba(61,133,255,.14),
            transparent 35%
        ),
        radial-gradient(
            circle at 100% 100%,
            rgba(103,76,255,.09),
            transparent 35%
        ),
        linear-gradient(
            145deg,
            #0b1627,
            #07101d
        );
    box-shadow:
        0 45px 110px rgba(0,0,0,.30);
}

.app-web-shell::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background-image:
        linear-gradient(
            rgba(255,255,255,.018) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.018) 1px,
            transparent 1px
        );
    background-size:38px 38px;
    mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.55),
            transparent 70%
        );
}

.app-web-top{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        minmax(390px,.85fr);
    gap:75px;
    align-items:center;
}

.app-web-heading .section-kicker{
    color:#76aeff;
    font-size:11px;
    font-weight:850;
    letter-spacing:.16em;
}

.app-web-heading h2{
    margin:16px 0 21px;
    font-size:clamp(42px,5vw,65px);
    line-height:1.04;
    letter-spacing:-.06em;
}

.app-web-heading h2 span{
    background:
        linear-gradient(
            90deg,
            #84bdff,
            #9687ff
        );
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.app-web-heading p{
    max-width:600px;
    margin:0;
    color:#96a6bc;
    font-size:15px;
    line-height:1.85;
}

.app-web-visual{
    position:relative;
    min-height:310px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.app-web-orbit{
    position:absolute;
    border:1px solid rgba(100,161,255,.10);
    border-radius:50%;
}

.orbit-one{
    width:300px;
    height:300px;
}

.orbit-two{
    width:225px;
    height:225px;
}

.app-web-device{
    position:relative;
    z-index:2;
    border:1px solid rgba(255,255,255,.11);
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.08),
            rgba(255,255,255,.025)
        );
    box-shadow:
        0 25px 60px rgba(0,0,0,.32);
}

.app-device{
    width:150px;
    height:285px;
    border-radius:29px;
    padding:9px;
    transform:rotate(-7deg);
}

.app-device::before{
    content:"";
    position:absolute;
    width:55px;
    height:14px;
    border-radius:20px;
    top:13px;
    left:50%;
    transform:translateX(-50%);
    background:#03070d;
}

.app-web-device-content{
    height:100%;
    padding:55px 15px 16px;
    border-radius:21px;
    background:
        radial-gradient(
            circle at 20% 0%,
            rgba(74,148,255,.22),
            transparent 38%
        ),
        #08111e;
}

.app-web-mini-icon{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:
        linear-gradient(
            145deg,
            #68b9ff,
            #496eff 60%,
            #725cff
        );
    color:white;
    font-size:9px;
    font-weight:900;
    letter-spacing:.05em;
}

.app-web-device strong{
    display:block;
    margin-top:14px;
    color:#eef4fd;
    font-size:13px;
}

.app-web-device span{
    display:block;
    margin-top:4px;
    color:#71839c;
    font-size:8px;
}

.app-web-lines{
    margin-top:20px;
}

.app-web-lines i{
    display:block;
    height:5px;
    margin-bottom:7px;
    border-radius:20px;
    background:rgba(255,255,255,.09);
}

.app-web-lines i:nth-child(1){
    width:87%;
}

.app-web-lines i:nth-child(2){
    width:65%;
}

.app-web-lines i:nth-child(3){
    width:75%;
}

.web-device{
    width:215px;
    height:180px;
    border-radius:17px;
    overflow:hidden;
    transform:rotate(5deg);
}

.web-window-bar{
    height:31px;
    padding-left:12px;
    display:flex;
    align-items:center;
    gap:5px;
    background:#111c2d;
    border-bottom:
        1px solid rgba(255,255,255,.06);
}

.web-window-bar i{
    width:6px;
    height:6px;
    border-radius:50%;
    background:#42536c;
}

.web-device .app-web-device-content{
    border-radius:0;
    padding:18px;
}

.web-device .app-web-mini-icon{
    width:36px;
    height:36px;
    border-radius:10px;
}

.web-device .app-web-lines{
    margin-top:13px;
}

.app-web-link{
    position:relative;
    z-index:5;
    width:38px;
    height:38px;
    margin:0 -8px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#96c3ff;
    font-size:21px;
    font-weight:300;
    border:1px solid rgba(120,179,255,.18);
    background:#101c30;
    box-shadow:
        0 10px 30px rgba(0,0,0,.3);
}

.app-web-divider{
    position:relative;
    z-index:2;
    height:1px;
    margin:65px 0 45px;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.11),
            transparent
        );
}

.app-web-services{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:
        repeat(3,1fr);
    gap:14px;
}

.app-web-service{
    position:relative;
    min-height:205px;
    padding:24px;
    overflow:hidden;
    border-radius:20px;
    border:1px solid rgba(255,255,255,.07);
    background:rgba(255,255,255,.025);
    transition:
        transform .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.app-web-service:hover{
    transform:translateY(-4px);
    border-color:
        rgba(101,164,255,.21);
    background:
        rgba(61,119,220,.055);
}

.app-web-service-number{
    position:absolute;
    right:20px;
    top:17px;
    color:rgba(255,255,255,.065);
    font-size:28px;
    font-weight:900;
}

.app-web-service-icon{
    width:37px;
    height:37px;
    display:grid;
    place-items:center;
    border-radius:11px;
    color:#8ebdff;
    font-size:15px;
    background:
        rgba(71,137,238,.09);
    border:
        1px solid rgba(99,163,255,.13);
}

.app-web-service h3{
    margin:20px 0 8px;
    color:#eef4fc;
    font-size:16px;
    letter-spacing:-.03em;
}

.app-web-service p{
    margin:0;
    color:#77899f;
    font-size:11px;
    line-height:1.75;
}

.app-web-bottom{
    position:relative;
    z-index:2;
    margin-top:38px;
    padding:27px 29px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    border-radius:20px;
    border:1px solid rgba(102,165,255,.13);
    background:
        linear-gradient(
            90deg,
            rgba(55,119,226,.09),
            rgba(104,75,215,.04)
        );
}

.app-web-bottom-copy span{
    display:block;
    color:#6f9ee1;
    font-size:9px;
    font-weight:850;
    letter-spacing:.15em;
}

.app-web-bottom-copy strong{
    display:block;
    margin-top:5px;
    color:#f2f6fc;
    font-size:23px;
    letter-spacing:-.03em;
}

.app-web-bottom-copy p{
    margin:3px 0 0;
    color:#77899f;
    font-size:10px;
}

.app-web-cta{
    flex:0 0 auto;
    min-height:49px;
    padding:0 19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border-radius:13px;
    color:#fff !important;
    font-size:12px;
    font-weight:850;
    background:
        linear-gradient(
            135deg,
            #5ba8ff,
            #4a78ff 60%,
            #745cff
        );
    box-shadow:
        0 13px 30px rgba(59,111,235,.22);
}

.app-web-cta:hover{
    transform:translateY(-2px);
}

@media(max-width:950px){

    .app-web-shell{
        padding:50px;
    }

    .app-web-top{
        grid-template-columns:1fr;
        gap:35px;
    }

    .app-web-services{
        grid-template-columns:
            repeat(2,1fr);
    }
}

@media(max-width:650px){

    .app-web-package{
        padding:80px 0;
    }

    .app-web-shell{
        padding:34px 20px;
        border-radius:25px;
    }

    .app-web-heading h2{
        font-size:39px;
    }

    .app-web-heading p{
        font-size:13px;
    }

    .app-web-visual{
        min-height:270px;
        transform:scale(.88);
        margin:
            -10px -35px;
    }

    .app-web-divider{
        margin:
            45px 0 30px;
    }

    .app-web-services{
        grid-template-columns:1fr;
    }

    .app-web-service{
        min-height:auto;
    }

    .app-web-bottom{
        align-items:flex-start;
        flex-direction:column;
        padding:23px;
    }

    .app-web-cta{
        width:100%;
    }
}

/* APPDEV_APP_WEB_PACKAGE_CSS_END */



/* ==========================================================
   APPDEV_UNIFIED_SECTION_GAP_V1_START
   전체 주요 섹션 세로 간격 통일
   ========================================================== */

:root{
    --appdev-section-gap:72px;
    --appdev-section-gap-mobile:52px;
}

/*
   중요:
   이전 섹션의 아래 padding과
   다음 섹션의 위 padding이 합쳐지는 현상을 막습니다.

   모든 주요 섹션은
   위쪽 간격만 사용합니다.
*/

main > section.section{
    padding-top:var(--appdev-section-gap) !important;
    padding-bottom:0 !important;
}

/* APP + WEB */
main > section.app-web-package{
    padding-top:var(--appdev-section-gap) !important;
    padding-bottom:0 !important;
}

/* 포트폴리오 */
main > section.portfolio{
    padding-top:var(--appdev-section-gap) !important;
    padding-bottom:0 !important;
}

/* 제작 과정 */
main > section.process{
    padding-top:var(--appdev-section-gap) !important;
    padding-bottom:0 !important;
}

/* CTA */
main > section.cta{
    padding-top:var(--appdev-section-gap) !important;
    padding-bottom:0 !important;
}

/* 문의 섹션 */
main > section.contact{
    padding-top:var(--appdev-section-gap) !important;
    padding-bottom:var(--appdev-section-gap) !important;
}

/*
   서비스 카드 마지막 줄 아래에
   별도 큰 여백이 생기지 않도록 정리
*/
#services .service-grid{
    margin-bottom:0 !important;
}

/*
   APP + WEB 자체 외부 여백 정리
*/
.app-web-package{
    margin-top:0 !important;
    margin-bottom:0 !important;
}

/*
   포트폴리오 외부 여백 정리
*/
.portfolio{
    margin-top:0 !important;
    margin-bottom:0 !important;
}

/*
   제작과정 외부 여백
*/
.process{
    margin-top:0 !important;
    margin-bottom:0 !important;
}

/*
   일반 section 중 별도 margin 방지
*/
main > section.section{
    margin-top:0 !important;
    margin-bottom:0 !important;
}


/* =========================
   모바일
   ========================= */

@media(max-width:760px){

    main > section.section,
    main > section.app-web-package,
    main > section.portfolio,
    main > section.process,
    main > section.cta{
        padding-top:var(--appdev-section-gap-mobile) !important;
        padding-bottom:0 !important;
    }

    main > section.contact{
        padding-top:var(--appdev-section-gap-mobile) !important;
        padding-bottom:var(--appdev-section-gap-mobile) !important;
    }
}

/* APPDEV_UNIFIED_SECTION_GAP_V1_END */
