@charset "UTF-8";
:root{--paper:#f5f3ec;--ink:#252921;--muted:#65695f;--line:#d8d9cd;--accent:#553bd3;--lilac:#e9e4fa;--white:#fffefa;--radius:5px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.8 var(--font);word-break:keep-all;overflow-wrap:break-word}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.3;letter-spacing:-.055em;font-weight:700}h2{font-size:clamp(30px,3.5vw,46px)}h3{font-size:24px}p+p{margin-top:18px}em{font-style:normal;color:var(--accent)}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a:hover{color:var(--accent)}::selection{background:var(--lilac)}.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}.section{padding-block:110px}.eyebrow{font-size:12px;line-height:1.6;letter-spacing:.12em;font-weight:700;margin-bottom:23px;text-transform:uppercase}.eyebrow>span:first-child:not(.status-dot){margin-right:20px;color:var(--accent)}.small,.caption{font-size:13px;line-height:1.8;color:var(--muted)}.caption{margin-top:16px}.small-label{font-size:12px;display:block;color:var(--muted)}.lead{font-size:21px;line-height:1.8;letter-spacing:-.035em}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:15px 22px;min-height:52px;background:var(--accent);color:white;border:1px solid var(--accent);border-radius:3px;font-weight:600;font-size:15px;line-height:1.5}.button:hover{background:#4128b8;color:white}.button span{font-size:21px}.text-link{display:inline-flex;align-items:center;gap:23px;padding:10px 0;min-height:44px;font-size:15px;font-weight:600;border-bottom:1px solid currentColor}.text-link span{font-size:21px}.skip{position:absolute;left:20px;top:-100px;padding:14px;background:white;z-index:100}.skip:focus{top:15px}.site-header{min-height:106px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;gap:11px;align-items:center;flex-shrink:0}.brand-mark{font-weight:850;letter-spacing:-.15em;font-size:48px;line-height:1;position:relative;padding-right:19px;color:var(--accent)}.brand-mark span{font-size:23px;position:absolute;right:0;top:0;letter-spacing:0}.brand-type{font-size:17px;letter-spacing:.015em;font-weight:750;line-height:1.4}.brand-type>span{display:block;font-size:11px;letter-spacing:.12em;font-weight:400;color:var(--muted)}nav{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:600}nav>a{padding:12px 0}nav .nav-contact{padding:12px 18px;border:1px solid var(--ink);border-radius:3px;display:flex;gap:20px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:46px;align-items:center;padding-block:85px 94px}.hero h1{font-size:clamp(36px,3.5vw,50px);line-height:1.5;letter-spacing:-.065em}.status-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:7px}.hero-description{font-size:18px;line-height:1.9;max-width:440px;color:var(--muted);margin-block:24px 30px;letter-spacing:-.035em}.hero-footnote{font-size:13px;color:var(--muted);margin-top:40px;padding-left:15px;border-left:2px solid var(--accent)}.hero-visual{min-width:0;padding:22px;background:var(--lilac);border-radius:var(--radius)}.visual-label{display:flex;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.12em;font-weight:700;margin-bottom:28px;color:var(--accent)}.screen{overflow:hidden;background:#f9f7f1;border:1px solid #d5d2c6;border-radius:5px}.screen img{width:100%}.screen-bar{height:25px;display:flex;align-items:center;gap:5px;background:#fffefa;border-bottom:1px solid #e0ddd3;padding:0 12px}.screen-bar i{display:block;background:#c5c5bc;border-radius:50%;height:4px;width:4px}.screen-bar span{margin:auto;font-size:8px;letter-spacing:.03em;color:#6a6b61}.hero-visual .screen{box-shadow:0 12px 28px #39296613;transform:rotate(-2deg)}.visual-note{display:grid;grid-template-columns:8px 1fr 38px;gap:11px;align-items:center;background:var(--white);margin:27px 0 0;padding:15px 17px;font-size:13px;line-height:1.7}.visual-note strong{font-weight:600}.note-dot{background:var(--accent);width:7px;height:7px;border-radius:50%}.visual-note a{font-size:25px;display:grid;place-items:center;min-height:44px}.hero-visual .caption{font-size:10px;margin-top:14px}.section-heading{display:flex;justify-content:space-between;gap:48px;align-items:flex-end;margin-bottom:48px}.section-heading>p{font-size:16px;line-height:1.9;color:var(--muted);max-width:340px}.work-section{border-top:1px solid var(--line);background:var(--white)}.case-feature{display:block}.case-image{position:relative;background:#e7e7dd;padding:42px 70px 0;overflow:hidden;border-radius:4px}.case-image>.screen{max-width:900px;margin:auto;border-bottom:0;border-radius:7px 7px 0 0}.case-image>.screen img{aspect-ratio:1.8;object-fit:cover;object-position:top}.case-image .case-view{position:absolute;right:32px;bottom:24px;background:var(--ink);color:white;padding:12px 20px;font-size:14px;border-radius:3px}.case-view>span{margin-left:20px}.case-feature:hover{color:inherit}.case-feature:hover .case-view{background:var(--accent)}.case-info{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-top:31px}.case-info .eyebrow{margin-bottom:12px;font-size:11px}.case-info h3{font-size:33px}.case-info h3 span{display:block;font-size:16px;font-weight:400;letter-spacing:-.025em;margin-top:10px}.case-info>div>p:not(.eyebrow){font-size:17px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tags span,.tag{border:1px solid var(--line);border-radius:30px;padding:5px 12px;font-size:12px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.service-card{padding:25px 0;border-top:1px solid var(--ink);display:flex;flex-direction:column;align-items:flex-start}.service-top{display:flex;justify-content:space-between;width:100%;color:var(--accent);font-size:27px;margin-bottom:47px}.service-top>span:first-child{font-size:14px}.service-need{font-size:12px;color:var(--muted);margin-bottom:10px}.service-card h3{margin-bottom:19px}.service-card>p:not(.service-need){font-size:15px;color:var(--muted)}.service-output{margin-block:28px!important;padding-top:14px;border-top:1px solid var(--line);font-size:12px!important;width:100%}.service-card>.text-link{margin-top:auto}.service-boundary{font-size:13px;color:var(--muted);padding-top:30px;margin-top:20px;border-top:1px solid var(--line)}.process-section{background:#eae9e1}.process-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:0 0 54px}.step-number{font-size:12px;display:inline-block;color:var(--accent);margin-bottom:23px}.process-steps h3{font-size:20px;margin-bottom:14px}.process-steps p{color:var(--muted);font-size:14px}.conditions{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.conditions article{border-top:1px solid #cccdc2;padding:24px 0}.conditions h3{font-size:18px;letter-spacing:-.035em;margin-bottom:12px}.conditions p{color:var(--muted);font-size:14px}.process-bottom{display:flex;justify-content:space-between;gap:30px;align-items:center;border-top:1px solid #cccdc2;padding-top:20px}.process-bottom p{font-size:13px;color:var(--muted)}.team-section{display:grid;grid-template-columns:1fr 1fr;gap:100px}.team-title>p:last-child{margin-top:28px;color:var(--muted)}.owner-line{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:25px}.owner-initial{width:65px;height:65px;background:var(--lilac);color:var(--accent);display:grid;place-items:center;font-size:35px;font-family:Georgia,serif}.owner-line h3{font-size:22px;margin-top:3px}.team-detail>p:not(.small){font-size:16px;color:var(--muted)}.team-roles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}.team-roles strong,.team-roles span{display:block}.team-roles strong{font-size:14px;margin-bottom:8px}.team-roles span{font-size:11px;color:var(--muted)}.library-section{background:var(--white)}.article-card{display:grid;grid-template-columns:.8fr 1fr;gap:65px;align-items:center}.article-art{display:flex;flex-direction:column;justify-content:space-between;gap:35px;background:var(--lilac);color:var(--accent);padding:35px 40px;aspect-ratio:1.43}.article-art>span{font-size:10px;letter-spacing:.12em;line-height:1.7}.article-art>b{display:flex;align-items:center;justify-content:space-between;gap:20px;font:100px/1 Georgia,serif;letter-spacing:-.075em}.article-art>b>span{font:10px/1.7 var(--font);letter-spacing:.07em}.article-teaser h3{font-size:30px;max-width:440px;margin-bottom:20px}.article-teaser>p:not(.eyebrow){font-size:16px;color:var(--muted);margin-bottom:24px}.article-card:hover{color:inherit}.article-card:hover h3{color:var(--accent)}.library-more{display:flex;justify-content:flex-end;margin-top:27px}.contact-section{padding-block:110px;background:var(--ink);color:var(--white)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-section .eyebrow{color:#c4b4ff}.contact-section h2{font-size:clamp(38px,4.8vw,64px);line-height:1.4}.contact-section em{color:#c4b4ff}.contact-content>.lead{font-size:18px;color:#deded4;margin-bottom:33px}.contact-role{font-size:13px;color:#c6c7bd}.phone-button{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:32px;letter-spacing:-.02em;border-bottom:1px solid #71766b;padding-block:10px;line-height:1.6}.phone-button:hover{color:#c4b4ff}.copy-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.copy-phone{background:none;border:0;padding:9px 0;min-height:44px;color:#dfd7ff;text-decoration:underline;text-underline-offset:5px;font-size:13px}.copy-status{font-size:12px;color:#deded4}.contact-section .small{color:#bec2b6;margin-top:18px}.prep-note{margin-top:33px;padding-top:24px;border-top:1px solid #555e4e}.prep-note strong{font-size:14px}.prep-note p{font-size:14px;margin:8px 0}.prep-note span{display:block;font-size:12px;color:#bec2b6}.site-footer{padding-block:45px 22px}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:start}.footer-top>p{font-size:14px;color:var(--muted)}.footer-phone{display:inline-flex;align-items:center;gap:20px;min-height:44px;font-size:20px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:24px;margin-top:36px;font-size:11px;color:var(--muted)}.footer-bottom p+p{margin:0}.footer-bottom a{display:flex;align-items:center;min-height:44px}.back{font-size:13px;display:inline-flex;align-items:center;min-height:44px;margin-bottom:42px;color:var(--muted)}.detail-hero,.library-intro,.article-header{padding-top:38px}.detail-header{display:flex;justify-content:space-between;gap:40px;align-items:end}.detail-header h1{font-size:70px;line-height:1.2}.detail-subtitle{font-size:24px;margin-top:24px;letter-spacing:-.045em}.detail-meta{font-size:13px;color:var(--muted);line-height:1.8;flex-shrink:0}.detail-meta p+p{margin:0 0 20px}.case-disclosure{font-size:12px;color:var(--muted);padding-block:28px}.large-screen{max-height:800px;overflow:hidden}.large-screen img{object-position:top}.case-problem{display:grid;grid-template-columns:1fr 1fr;column-gap:90px}.case-problem>.eyebrow{grid-column:1/-1}.case-problem>div>p+p{color:var(--muted);font-size:15px}.case-reasons{background:var(--white)}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.reason-grid article{border-top:1px solid var(--line);padding-top:23px}.reason-grid h3{font-size:24px;margin-bottom:24px}.reason-grid p{font-size:15px;color:var(--muted)}.mobile-story{display:grid;grid-template-columns:1.2fr 1fr;gap:110px;align-items:center}.mobile-story .lead{margin-block:27px}.mobile-story>div>p:not(.lead):not(.eyebrow){color:var(--muted)}.mobile-device{max-width:300px;margin-inline:auto;background:var(--lilac);padding:25px;border-radius:30px;box-sizing:content-box}.mobile-device .screen{border-radius:15px}.mobile-device .screen-bar{display:none}.mobile-device figcaption{font-size:11px;text-align:center;color:var(--muted);padding-top:16px}.quote-note{font-size:23px;line-height:1.6;border-left:2px solid var(--accent);padding-left:20px;color:var(--accent);margin:30px 0}.verification-section{background:#eae9e1}.verification-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.check-block{border-bottom:1px solid #ced0c4;padding-bottom:25px;margin-bottom:25px}.check-block h3{font-size:18px;margin-bottom:10px}.check-block p{font-size:15px;color:var(--muted)}.verification-grid .small{margin-top:15px}.next-project>p:not(.eyebrow){margin:25px 0}.library-intro h1{font-size:clamp(35px,4.5vw,60px);line-height:1.45}.library-intro>.lead{margin-top:27px;color:var(--muted);font-size:18px}.library-list{padding-block:70px 50px}.list-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-block:24px 40px}.list-heading h2{font-size:21px}.list-heading span{font-size:11px;letter-spacing:.1em;color:var(--muted)}.reading-contact{padding-block:35px 70px;display:flex;justify-content:space-between;gap:25px;align-items:center}.reading-contact>p{font-size:15px;color:var(--muted)}.article-header{max-width:950px;padding-bottom:54px}.article-header h1{font-size:clamp(34px,4.5vw,58px);max-width:810px;line-height:1.45}.article-header>.lead{max-width:800px;margin-top:28px;font-size:18px;color:var(--muted)}.article-byline{display:flex;gap:30px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:28px}.article-layout{max-width:1060px;display:grid;grid-template-columns:240px 1fr;gap:65px;padding-top:38px;border-top:1px solid var(--line)}.article-toc h2{font-size:15px;letter-spacing:-.02em}.article-toc ol{list-style:none;margin:20px 0;padding:0}.article-toc a{display:block;padding:8px 0;min-height:44px;font-size:14px;color:var(--muted)}.article-toc p{font-size:12px;color:var(--muted)}.article-body section{margin-bottom:60px;scroll-margin-top:35px}.article-body h2{font-size:28px;line-height:1.5;margin-bottom:22px}.article-body p{font-size:16px;line-height:1.95}.article-body .eyebrow{font-size:11px;margin-bottom:14px}.article-summary{padding:28px;background:#eae9e1}.article-summary h2{font-size:21px}.article-body blockquote{margin:24px 0;padding:18px 25px;border-left:2px solid var(--accent);background:var(--lilac);font-size:17px;font-weight:500;line-height:1.9}.example>span{display:block;font-size:12px;color:var(--accent);margin-bottom:8px;font-weight:600}.example p{font-size:14px;color:var(--muted)}.article-limit{border-top:1px solid var(--line);padding-top:30px}.article-limit .small{font-size:13px;margin-block:20px}.article-end{border-top:1px solid var(--line);padding-block:35px 80px}.article-end h2{font-size:23px}.article-end>.text-link{display:table;margin-top:20px}
@media(min-width:1441px){.hero{min-height:650px}}@media(max-width:1100px){.wrap{width:calc(100% - 56px)}nav{gap:18px;font-size:13px}.hero{gap:28px}.hero h1{font-size:38px}.hero .actions{gap:12px}.hero .text-link{font-size:13px}.team-section,.contact-grid{gap:55px}.section{padding-block:80px}.article-card{gap:36px}.footer-top{gap:25px}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.site-header{min-height:80px;position:relative;flex-wrap:wrap;gap:0;padding-block:15px}.brand-mark{font-size:39px}.brand-type{font-size:15px}.brand-type>span{font-size:10px}.menu-toggle{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;padding:7px 10px;background:transparent;border:1px solid var(--line);font-size:13px;border-radius:3px}.menu-toggle span{font-size:19px}.site-header nav{display:flex;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-top:17px}.js .site-header nav:not(.open){display:none}.site-header nav>a{padding:12px;min-height:48px;border-top:1px solid var(--line)}.site-header nav .nav-contact{margin-top:10px;justify-content:space-between}.hero{grid-template-columns:1fr;padding-block:46px 55px;gap:40px}.hero h1{font-size:clamp(27px,5.5vw,40px);line-height:1.55;letter-spacing:-.067em}.hero .eyebrow{font-size:10px;letter-spacing:.07em;margin-bottom:18px}.hero-description{font-size:16px;margin-block:20px 25px;max-width:520px}.hero .actions{gap:18px}.hero .button{padding:13px 18px;font-size:14px;min-height:50px;gap:22px}.hero .text-link{font-size:13px;gap:12px}.hero-footnote{margin-top:28px;font-size:12px}.hero-visual{padding:20px;max-width:560px;width:100%;margin:auto}.visual-label{margin-bottom:22px}.section{padding-block:65px}h2{font-size:30px;line-height:1.45}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:19px;font-size:14px}.eyebrow{font-size:10px;margin-bottom:18px}.case-image{padding:24px 20px 50px}.case-image>.screen img{aspect-ratio:auto}.case-image .case-view{font-size:12px;bottom:12px;right:20px;padding:8px 13px}.case-info{grid-template-columns:1fr;gap:20px;padding-top:24px}.case-info h3{font-size:28px}.case-info>div>p:not(.eyebrow){font-size:15px}.caption{font-size:11px}.service-grid{grid-template-columns:1fr;gap:15px}.service-top{margin-bottom:20px}.service-card h3{font-size:25px}.service-need{font-size:12px}.service-card{padding-block:22px}.service-output{margin-block:22px!important}.service-boundary{font-size:12px}.process-steps{grid-template-columns:1fr 1fr;gap:28px 25px;margin-bottom:36px}.process-steps h3{font-size:18px}.process-steps p{font-size:13px}.step-number{margin-bottom:15px}.conditions{grid-template-columns:1fr}.conditions article{padding-block:22px}.conditions h3{font-size:17px}.process-bottom{display:block}.process-bottom .text-link{margin-top:12px}.team-section{grid-template-columns:1fr;gap:36px}.team-title>p:last-child{margin-top:22px;font-size:15px}.team-roles{gap:10px}.team-detail>.small{font-size:12px}.article-card{grid-template-columns:1fr;gap:29px}.article-art{padding:26px 29px;max-width:600px;aspect-ratio:1.6;gap:20px}.article-art>b{font-size:90px}.article-teaser h3{font-size:27px;margin-bottom:16px}.article-teaser>p:not(.eyebrow){font-size:15px}.article-teaser .eyebrow{font-size:10px;margin-bottom:13px}.library-more{margin-top:20px}.contact-section{padding-block:65px}.contact-grid{grid-template-columns:1fr;gap:34px}.contact-section h2{font-size:41px;line-height:1.4}.contact-content>.lead{font-size:16px;margin-bottom:26px}.phone-button{font-size:29px}.contact-section .small{font-size:12px}.footer-top{grid-template-columns:1fr;gap:24px}.footer-top>p{font-size:13px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:10px;font-size:10px;padding-top:22px;margin-top:26px}.site-footer{padding-block:35px 16px}.footer-bottom a{min-height:44px}.detail-hero,.library-intro,.article-header{padding-top:22px}.back{margin-bottom:28px;font-size:12px}.detail-header{display:block}.detail-header h1{font-size:48px}.detail-subtitle{font-size:22px;margin-top:20px}.detail-meta{margin-top:25px;font-size:12px}.detail-meta p+p{margin:0 0 17px}.case-disclosure{padding-block:24px;font-size:12px}.case-problem{grid-template-columns:1fr;gap:0}.case-problem>.eyebrow{margin-bottom:18px}.case-problem>div{margin-top:24px}.case-problem .lead{font-size:18px}.reason-grid{grid-template-columns:1fr;gap:28px}.reason-grid h3{font-size:24px;margin-bottom:15px}.mobile-story{grid-template-columns:1fr;gap:36px}.mobile-story .lead{font-size:18px;margin-block:22px}.mobile-story>div>p{font-size:15px}.mobile-device{width:calc(100% - 48px);max-width:270px;padding:20px;box-sizing:border-box}.mobile-device figcaption{font-size:10px}.quote-note{font-size:21px}.verification-grid{grid-template-columns:1fr;gap:30px}.next-project>p:not(.eyebrow){font-size:15px}.library-intro h1{font-size:32px;line-height:1.5}.library-intro>.lead{font-size:16px}.library-list{padding-block:40px}.reading-contact{display:block;padding-bottom:50px}.reading-contact>.text-link{margin-top:17px}.article-header{padding-bottom:32px}.article-header h1{font-size:34px;line-height:1.5}.article-header>.lead{font-size:16px}.article-byline{font-size:11px;gap:10px;margin-top:20px}.article-layout{grid-template-columns:1fr;gap:32px;padding-top:28px}.article-toc ol{display:flex;flex-wrap:wrap;gap:0 22px;margin:12px 0}.article-toc p{font-size:11px}.article-body h2{font-size:25px}.article-body p{font-size:15px}.article-summary{padding:24px}.article-body blockquote{padding:16px 18px;font-size:16px}.article-body .example p{font-size:13px}.article-body section{margin-bottom:42px}.article-limit .small{font-size:12px}.article-end{padding-bottom:55px}}
/* R1: minimum logo touch area and readable portfolio disclosure. */
.brand{min-height:44px}.hero-visual .caption{font-size:12px}.caption{font-size:12px}@media(max-width:800px){.footer-bottom{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}@media print{nav,.menu-toggle,.copy-phone,.skip{display:none!important}body{background:white}.section{padding-block:30px}.wrap{width:95%}a{color:black}.contact-section{color:black;background:#eee}.contact-section em{color:black}}
