@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#172728;--paper:#f6f5ef;--muted:#6a7471;--line:#d9ddd5;--lime:#d7f58a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans KR',sans-serif;word-break:keep-all}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #709642;outline-offset:5px}.wrap{width:min(1280px,calc(100% - 100px));margin:auto}.skip{position:absolute;top:-80px;background:white;padding:15px;z-index:100}.skip:focus{top:0}header{position:sticky;top:0;z-index:20;background:rgba(246,245,239,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.nav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{font-size:20.33px;font-weight:900;letter-spacing:-1px}.brand i{font-style:normal;color:#729a46}.navlinks{display:flex;align-items:center;gap:32px;font-size:13.91px;font-weight:600}.navlinks [aria-current=page]{border-bottom:2px solid var(--ink);padding-bottom:5px}.navlinks .nav-cta{background:var(--ink);color:white;padding:13px 21px;border-radius:30px}.menu{display:none;background:none;border:1px solid var(--line);padding:8px 12px;border-radius:8px}.eyebrow{font-size:11.77px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:10px}.eyebrow:before{content:'';width:7px;height:7px;border-radius:50%;background:#88a84f}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:55px;padding:86px 0 76px;align-items:center}.hero h1{font-size:clamp(42.8px,4.6vw,69.55px);line-height:1.24;letter-spacing:-3.8px;margin:28px 0}.hero h1 em{font-style:normal;color:#6b8251}.intro{font-size:16.05px;color:var(--muted);line-height:1.95}.actions{display:flex;gap:14px;align-items:center;margin-top:30px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;border:1px solid var(--ink);padding:17px 24px;border-radius:5px;background:var(--ink);color:white;font-size:13.91px;font-weight:600;transition:transform .2s}.btn:hover{transform:translateY(-3px)}.btn.light{background:transparent;color:var(--ink)}.small{font-size:11.77px;color:var(--muted);line-height:1.8}.hero-note{margin-top:28px}.hero-art{height:470px;background:#dfe5d9;border-radius:8px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.orbit{position:absolute;width:520px;height:520px;border:1px solid #becab7;border-radius:50%}.orbit:after{content:'';position:absolute;inset:50px;border:1px solid #becab7;border-radius:50%}.browser{width:83%;background:#faf9f4;transform:rotate(-6deg);box-shadow:0 28px 60px #20302326;position:relative;border-radius:7px;overflow:hidden}.browser-bar{height:27px;background:#fff;display:flex;align-items:center;gap:4px;padding:0 12px}.browser-bar b{width:4px;height:4px;background:#b8bfb5;border-radius:50%}.browser-head{font-size:8.56px;display:flex;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e4e5da}.browser-content{padding:25px 25px 30px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.browser-content h2{font-family:Georgia,serif;font-size:36.38px;line-height:1.05;letter-spacing:-1px;margin:10px 0}.browser-content p{font-size:7.49px;line-height:1.7;color:#788173}.mini-pill{display:inline-block;font-size:7.49px;background:#243c2b;color:white;padding:8px 12px;border-radius:20px}.sculpture{height:176px;position:relative;background:#e7eadf;overflow:hidden;border-radius:100px 100px 3px 3px}.sculpture:before{content:'';position:absolute;width:80px;height:120px;background:linear-gradient(100deg,#a1b890,#34523b);border-radius:50% 50% 25% 25%;bottom:-10px;left:30%;transform:rotate(-23deg);box-shadow:15px 5px 25px #25452644}.sculpture:after{content:'';position:absolute;width:65px;height:110px;background:linear-gradient(120deg,#d6c9a7,#b39f76);border-radius:40px;bottom:-12px;left:8%;transform:rotate(22deg)}.art-tag{position:absolute;bottom:35px;left:25px;background:#fff;padding:15px 20px;font-size:11.77px;border-radius:6px;box-shadow:0 12px 25px #18312b15}.art-tag strong{display:block;font-size:16.05px;margin-bottom:4px}.art-label{position:absolute;top:25px;right:25px;font-size:9.63px;letter-spacing:2px}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0}.ticker .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12.84px;font-weight:600;color:#69746c}.ticker span:first-child{font-size:9.63px;letter-spacing:1.5px;color:var(--muted)}section.block{padding:95px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:37px}h2{font-size:37.45px;letter-spacing:-1.8px;line-height:1.4;margin:17px 0 0}.text-link{font-size:12.84px;padding-bottom:6px;border-bottom:1px solid var(--ink);white-space:nowrap}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project{display:block;text-align:left;border:0;padding:0;background:none;color:var(--ink);width:100%}.project:hover .preview{transform:translateY(-5px)}.preview{height:260px;border-radius:6px;position:relative;overflow:hidden;transition:transform .25s;display:flex;justify-content:center;align-items:center}.preview-inner{width:80%;height:78%;box-shadow:0 14px 35px #0002;overflow:hidden}.preview-top{font-size:7.49px;padding:12px 15px;display:flex;justify-content:space-between;border-bottom:1px solid #ffffff25}.preview-body{padding:20px 18px;position:relative;height:100%}.preview-body strong{font-family:Georgia,serif;display:block;font-size:27.82px;line-height:1.05;position:relative;z-index:2}.preview-body small{display:block;font-size:7.49px;margin-top:15px;position:relative;z-index:2}.preview.calm{background:#dbe2d6}.calm .preview-inner{background:#f9f8f1}.calm .preview-body:after{content:'';position:absolute;width:75px;height:130px;right:14px;top:12px;background:linear-gradient(100deg,#b7b995,#697556);border-radius:45px 45px 5px 5px}.preview.axis{background:#dadcde}.axis .preview-inner{background:#172a36;color:#fff}.axis .preview-body:after{content:'';position:absolute;width:100px;height:130px;right:8px;top:20px;background:repeating-linear-gradient(90deg,#62757c 0 10px,#2c444e 10px 17px);transform:skewY(-20deg)}.preview.form{background:#e5dcd1}.form .preview-inner{background:#f1e8db;color:#413b32}.form .preview-body:after{content:'';position:absolute;width:85px;height:95px;right:17px;top:25px;border-radius:50% 50% 10% 10%;background:linear-gradient(110deg,#d2b591,#806244);box-shadow:10px 12px 20px #66472b33}.project-meta{display:flex;justify-content:space-between;margin-top:19px;gap:10px}.project-meta h3{font-size:17.12px;margin:0}.project-meta span{font-size:11.77px}.project p{font-size:11.77px;color:var(--muted);margin:8px 0}.badge{position:absolute;top:12px;left:12px;font-size:9.63px;background:#ffffffd9;padding:5px 8px;border-radius:3px}.services{background:#eceedf;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.service{border-top:1px solid #aeb9a5;padding-top:23px}.service .number{font-size:12.84px;color:#66735c}.service h3{font-size:22.47px;margin:24px 0 14px}.service p{font-size:13.91px;line-height:1.9;color:#64705f}.service ul{list-style:none;padding:0;margin:24px 0 0;font-size:11.77px;line-height:2.3}.service li:before{content:'↗';margin-right:12px}.process{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.steps{border-top:1px solid var(--line)}.step{display:grid;grid-template-columns:40px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.step>span{font-size:12.84px;color:#839071}.step h3{font-size:18.19px;margin:0 0 9px}.step p{margin:0;font-size:12.84px;line-height:1.8;color:var(--muted)}.cta{background:var(--ink);color:var(--paper);border-radius:8px;padding:57px 65px;display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:80px}.cta h2{margin:0 0 12px}.cta p{font-size:13.91px;color:#b5c2b8;line-height:1.8}.cta .btn{background:var(--lime);color:var(--ink);border:0;white-space:nowrap}footer{padding:35px 0;border-top:1px solid var(--line)}.footer-main{display:flex;justify-content:space-between;gap:30px}.footer-main p{font-size:11.77px;line-height:1.9;color:var(--muted)}.footer-bottom{display:flex;justify-content:space-between;font-size:9.63px;color:var(--muted);margin-top:24px}.page-hero{padding:75px 0 43px}.page-hero h1{font-size:55.64px;letter-spacing:-3px;line-height:1.3;margin:23px 0}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:30px}.filter{border:1px solid var(--line);border-radius:30px;padding:10px 19px;background:transparent;font-size:12.84px;color:var(--ink)}.filter.active{background:var(--ink);color:white;border-color:var(--ink)}[hidden]{display:none!important}.portfolio-grid{margin-bottom:90px}.note{font-size:12.84px;line-height:1.9;color:var(--muted);border-left:2px solid #a5b792;padding-left:17px;margin:23px 0}.contact-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;padding:15px 0 90px}.contact-info h2{font-size:27.82px}.contact-info p{font-size:13.91px;color:var(--muted);line-height:1.9}.contact-list{margin:30px 0;padding:0;list-style:none;font-size:12.84px;line-height:2.7}.contact-form{padding:35px;background:#fff;border:1px solid var(--line);border-radius:8px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:9px;font-size:12.84px}.field.full{grid-column:1/-1}.field label{font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #dce0d8;background:#fafbf8;color:var(--ink);padding:13px;border-radius:4px;min-width:0}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #86a864;outline-offset:2px}.field textarea{resize:vertical;min-height:150px}.consent{display:flex;align-items:flex-start;gap:10px;font-size:12.84px;line-height:1.8;margin:22px 0}.consent input{margin-top:5px}.privacy{font-size:11.77px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding-top:15px}.privacy summary{cursor:pointer}.contact-form .btn{width:100%}.form-status{font-size:12.84px;line-height:1.8;margin-top:15px}.faq{margin-top:35px}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{font-size:13.91px;cursor:pointer}.faq p{font-size:12.84px}dialog{width:min(650px,calc(100% - 32px));border:0;border-radius:10px;background:var(--paper);padding:32px;color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#142220b8}.dialog-close{float:right;background:none;border:1px solid var(--line);border-radius:50%;width:34px;height:34px;font-size:21.4px}dialog h2{font-size:29.96px}dialog p{font-size:13.91px;line-height:1.9}dialog .preview{margin-top:23px}.dialog-spec{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);padding-top:17px;font-size:12.84px;line-height:1.8}.dialog-spec strong{display:block;font-size:10.7px;color:var(--muted)}@media(min-width:1500px){.hero{padding-top:100px;padding-bottom:90px}}@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero{gap:30px}.hero h1{font-size:46.01px;letter-spacing:-2.5px}.hero-art{height:400px}.browser-content h2{font-size:28.89px}.process{gap:40px}.contact-layout{gap:35px}.preview{height:220px}.preview-body strong{font-size:24.61px}.cta{padding:40px}.navlinks{gap:20px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.nav{height:70px}.brand{font-size:18.19px}.menu{display:block}.navlinks{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:20px;box-shadow:0 15px 20px #17272810;align-items:stretch}.navlinks.open{display:flex;flex-direction:column}.navlinks a{padding:10px}.hero{grid-template-columns:1fr;padding:48px 0;gap:35px}.hero h1{font-size:46.01px;letter-spacing:-2.8px;margin:22px 0}.intro{font-size:13.91px}.hero-art{height:365px}.browser{max-width:370px}.ticker .wrap{flex-wrap:wrap;justify-content:center;gap:15px 22px;font-size:10.7px}.ticker span:first-child{width:100%;text-align:center}.projects,.service-grid{grid-template-columns:1fr;gap:32px}.preview{height:290px}.preview-inner{max-width:350px}.preview-body strong{font-size:36.38px}.preview-body{padding:25px}.preview-body:after{transform:scale(1.25);margin:15px}.section-head{align-items:start}.section-head h2,h2{font-size:29.96px}.section-head .text-link{margin-top:8px}.eyebrow{font-size:9.63px}.block,section.block{padding:60px 0}.process,.contact-layout{grid-template-columns:1fr;gap:30px}.cta{padding:35px 25px;display:block;margin-bottom:50px}.cta .btn{margin-top:14px}.cta h2{font-size:27.82px}.footer-main{flex-direction:column;gap:5px}.footer-bottom{gap:15px}.page-hero{padding:50px 0 25px}.page-hero h1{font-size:41.73px}.contact-form{padding:23px}.fields{grid-template-columns:1fr;gap:20px}.contact-layout{padding-bottom:55px}.art-label{font-size:8.56px}.art-tag{bottom:20px;left:17px}.dialog-spec{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Published portfolio work */
.featured-works{grid-template-columns:repeat(2,minmax(0,1fr))}.live-preview{background:#e7ebe3;padding:15px;align-items:flex-start;height:auto;aspect-ratio:1.44;isolation:isolate}.live-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:4px;box-shadow:0 5px 20px #17272818}.work-badge{background:var(--ink);color:var(--lime);font-size:11.77px;font-weight:700;top:25px;left:25px;padding:7px 12px;box-shadow:0 3px 8px #17272822}.visit-overlay{position:absolute;bottom:25px;right:25px;background:var(--ink);color:white;padding:10px 15px;border-radius:4px;font-size:11.77px;opacity:0;transition:opacity .2s}.live-project:hover .visit-overlay,.live-project:focus-visible .visit-overlay{opacity:1}.project .work-description{font-size:12.84px;line-height:1.8;margin:12px 0}.work-link{display:inline-block;font-size:11.77px;font-weight:600;padding:7px 0;border-bottom:1px solid var(--ink)}@media(max-width:700px){.featured-works{grid-template-columns:1fr}.live-preview{height:auto}.visit-overlay{opacity:1;font-size:10.7px;padding:7px 10px;bottom:21px;right:21px}}
/* Emerald signature theme */
:root{--ink:#f4f7ed;--paper:#043c2c;--muted:#b7cfc0;--line:#ffffff26;--lime:#d4f779;--forest:#032d22;--emerald:#086747}
body{background:radial-gradient(ellipse at 90% 8%,#0b765044,transparent 38%),var(--paper);color:var(--ink)}
header{background:rgba(3,45,34,.95);border-bottom-color:#ffffff20}.brand i{color:var(--lime)}.navlinks .nav-cta{background:var(--lime);color:var(--forest)}.navlinks [aria-current=page]{border-color:var(--lime)}.menu{color:var(--ink);border-color:#ffffff50}.skip{background:var(--lime);color:var(--forest)}
.eyebrow{color:#c9e4b3}.eyebrow:before{background:var(--lime);box-shadow:0 0 15px #d4f77955}.hero h1 em{color:var(--lime)}.hero h1{ text-shadow:0 5px 30px #00271925}.hero-note{color:#b5cdbb}
.btn{background:var(--lime);color:var(--forest);border-color:var(--lime);box-shadow:0 6px 24px #00271922}.btn.light{background:#ffffff06;color:var(--ink);border-color:#bed6c576}.btn:hover{box-shadow:0 8px 26px #00271944}.text-link,.work-link{border-color:#d4f77980}.text-link:hover,.work-link:hover{color:var(--lime)}
.hero-art{background:radial-gradient(ellipse at 75% 20%,#299462,#0b6848 45%,#064732);border:1px solid #76bb8260;box-shadow:0 25px 75px #002b2340,inset 0 1px 0 #c9f8c51a}.orbit,.orbit:after{border-color:#b1dd8c33}.art-label{color:#d2e8c0}.art-tag{background:#092f24;color:#eaf5da;border:1px solid #91bd7060;box-shadow:0 12px 30px #00291f44}.art-tag span{color:#bed5b6}.browser{color:#172728;box-shadow:0 28px 60px #001c2466}
.ticker{background:#032f23;border-color:#ffffff20}.ticker .wrap{color:#d1e2cf}.ticker span:first-child{color:#a9c19f}
.services{background:linear-gradient(125deg,#086444,#075238);border-color:#81c49440}.service{border-color:#bbe0a455}.service .number{color:var(--lime)}.service p,.service ul{color:#d2e6d3}.service h3{color:#f7faee}.step>span{color:var(--lime)}
.live-preview{background:#0b503b;border:1px solid #7ba78755}.work-badge{background:#072e22;color:var(--lime);border:1px solid #a6ce7560}.visit-overlay{background:var(--lime);color:var(--forest)}.badge{color:#172728}.badge.work-badge{color:var(--lime)}.preview.calm .preview-inner{color:#172728}.preview.axis .preview-inner{color:#fff}.preview.form .preview-inner{color:#413b32}
.cta{position:relative;overflow:hidden;background:linear-gradient(115deg,#0c714b,#075138);border:1px solid #a3d48166;box-shadow:0 20px 50px #00271d30}.cta h2{color:#f5f8ec}.cta p{color:#c8e1c8}.cta .btn{background:var(--lime);color:var(--forest)}footer{background:#032d22;border-color:#ffffff20}
.filter{color:var(--ink);border-color:#a2c3ae66}.filter.active{background:var(--lime);color:var(--forest);border-color:var(--lime)}.filter:hover{border-color:var(--lime)}.note{border-color:var(--lime)}
.contact-form{background:#073527;border-color:#6c9c7355;box-shadow:0 20px 50px #00271d30}.field input,.field select,.field textarea{background:#0b4533;color:#f4f7ed;border-color:#7aaf8666;color-scheme:dark}.field input::placeholder,.field textarea::placeholder{color:#acc5b3}.field input:focus,.field select:focus,.field textarea:focus{outline-color:var(--lime)}.consent input{accent-color:#bce97a}.form-status{color:#d0e2c8}.privacy{color:#b7cfc0}
dialog{background:#073c2c;border:1px solid #a2c47766;color:var(--ink);box-shadow:0 30px 100px #001d16aa}dialog::backdrop{background:#001e17cc}.dialog-close{color:var(--ink)}a:focus-visible,button:focus-visible{outline-color:var(--lime)}
@media(max-width:700px){.navlinks{background:#032d22;border-bottom:1px solid #9fbf7955}}

/* Slightly larger default text, consistent with explicit type sizes. */
html{font-size:17.12px}

.bot-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-form .btn:disabled{opacity:.6;cursor:wait}

.company-info{max-width:820px;margin-top:24px}.footer-main .company-contact{font-size:13px;line-height:1.9}.company-contact>a{font-size:24px;font-weight:700;color:var(--ink)}.company-contact>span{font-size:12px}.company-registration{display:flex;flex-wrap:wrap;gap:3px 18px}.company-registration>span{display:block}.footer-main>p{flex-shrink:0}@media(max-width:700px){.company-info{margin-bottom:18px}.company-registration{display:block}.company-registration>span{margin-bottom:4px}}
