:root{
  --paper:#f7f4ee;
  --paper-2:#efeae0;
  --ink:#171715;
  --sub:#77726a;
  --line:#dcd6ca;
  --hair:rgba(23,23,21,.14);
  --green:#1e3d31;
  --gold:#a8843f;
  --pad:clamp(22px,5.5vw,64px);
  --section:clamp(96px,14vw,184px);
  --serif:"Noto Serif KR","Noto Serif",Georgia,serif;
  --sans:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;
  font-size:clamp(15.5px,.4vw + 13.5px,17px);line-height:1.85;letter-spacing:-.005em;word-break:keep-all;-webkit-font-smoothing:antialiased}
::selection{background:var(--green);color:var(--paper)}
a{color:inherit;text-decoration:none}
svg{max-width:100%;height:auto}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 var(--pad)}
section{scroll-margin-top:84px}
.caps{font-size:11.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--sub)}
em{font-style:normal;color:var(--green)}
i.it{font-family:var(--serif);font-style:italic}

/* header */
header{position:sticky;top:0;z-index:30;background:rgba(247,244,238,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:box-shadow .3s}
header.scrolled{box-shadow:0 1px 0 var(--hair)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:16px}
.logo{display:flex;align-items:center;gap:14px;line-height:1.1}
.logo svg{width:30px;height:30px;flex:none}
.logo b{display:block;font-family:var(--serif);font-weight:400;font-size:19px;letter-spacing:.01em}
.logo small{display:block;font-size:10.5px;color:var(--sub);letter-spacing:.24em;margin-top:3px}
nav{display:flex;align-items:center;gap:36px;font-size:14px;color:var(--sub)}
nav a{position:relative}
nav a:not(.cta):not(.lang)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
nav a:not(.cta):not(.lang):hover{color:var(--ink)}
nav a:not(.cta):not(.lang):hover::after{transform:scaleX(1)}
nav .lang{font-size:11.5px;letter-spacing:.2em}
nav a.cta{color:var(--ink);border:1px solid var(--ink);padding:9px 20px;border-radius:999px;transition:background .25s,color .25s}
nav a.cta:hover{background:var(--ink);color:var(--paper)}
.menu-btn{display:none;width:44px;height:44px;margin-right:-10px;border:0;background:none;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:12px;right:12px;height:1px;background:var(--ink);transition:transform .25s,opacity .2s}
.menu-btn span:nth-child(1){top:18px}.menu-btn span:nth-child(2){top:22px}.menu-btn span:nth-child(3){top:26px}
.menu-open .menu-btn span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-4px) rotate(-45deg)}

/* hero */
.cover{padding:clamp(56px,10vw,140px) 0 clamp(64px,9vw,120px);position:relative}
.cover .meta{display:flex;justify-content:space-between;gap:16px;margin-bottom:clamp(44px,8vw,96px)}
.cover h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,8.6vw,132px);line-height:1.08;letter-spacing:-.045em;margin:0}
.cover h1 .soft{color:var(--sub)}
.cover h1 .mark{position:relative;color:var(--green);white-space:nowrap}
.cover h1 .mark svg{position:absolute;left:-3%;bottom:-.08em;width:106%;height:.28em;overflow:visible}
.cover h1 .mark path{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 1.4s .6s cubic-bezier(.6,.1,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.cover-foot{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);margin-top:clamp(48px,7vw,96px);padding-top:28px;border-top:1px solid var(--hair);align-items:start}
.cover .lead{font-size:clamp(17px,1vw + 11px,20px);line-height:1.8;color:#3a3732;margin:0;max-width:32em}
.toc{list-style:none;margin:0;padding:0}
.toc li a{display:grid;grid-template-columns:32px 1fr auto;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--hair);font-family:var(--serif);font-size:16px;transition:color .2s,padding .3s}
.toc li a span{font-family:var(--sans);font-size:11px;letter-spacing:.14em;color:var(--sub)}
.toc li a i{font-style:normal;font-family:var(--sans);font-size:13px;color:var(--sub);opacity:0;transition:opacity .25s}
.toc li a:hover{color:var(--green);padding-left:6px}
.toc li a:hover i{opacity:1}

/* chapters */
.chapter{padding:var(--section) 0}
.chapter + .chapter{border-top:1px solid var(--hair)}
.chapter.tone{background:var(--paper-2)}
.head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,6vw,96px);margin-bottom:clamp(44px,7vw,96px)}
.head .label{display:flex;flex-direction:column;gap:10px}
.head .label .no{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:.04em}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.8vw,68px);line-height:1.22;letter-spacing:-.035em;margin:0}
.body{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,6vw,96px)}
.body .col-2{grid-column:2}
.prose p{margin:0 0 1.2em;color:#3a3732;max-width:36em}
.prose .big{font-family:var(--serif);font-size:clamp(22px,2vw,30px);line-height:1.6;letter-spacing:-.02em;color:var(--ink)}
.note{margin-top:34px;display:flex;gap:16px;align-items:baseline;font-size:14.5px;color:var(--sub)}
.note::before{content:"";flex:none;width:28px;height:1px;background:var(--gold);transform:translateY(-4px)}

/* services as index rows */
.index{border-top:1px solid var(--ink)}
.item{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,6vw,96px);padding:clamp(34px,4.6vw,56px) 0;border-bottom:1px solid var(--hair);transition:background .3s}
.item .t{display:flex;gap:18px;align-items:baseline}
.item .t .n{font-family:var(--serif);font-size:14px;color:var(--gold);min-width:22px}
.item h3{font-family:var(--serif);font-weight:400;font-size:clamp(25px,2.4vw,34px);letter-spacing:-.03em;line-height:1.3;margin:0}
.item .hook{font-family:var(--serif);font-size:clamp(19px,1.6vw,23px);line-height:1.55;letter-spacing:-.02em;margin:0 0 14px;color:var(--ink)}
.item p{margin:0;color:#4a463f;max-width:36em}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding:0;list-style:none}
.tags li{font-size:13px;color:#4a463f;border:1px solid var(--line);border-radius:999px;padding:4px 13px}

/* process */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.step{padding-top:26px;border-top:1px solid var(--ink)}
.step .n{font-family:var(--serif);font-size:clamp(54px,5vw,76px);line-height:1;color:var(--green);font-weight:400}
.step h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:22px 0 4px;letter-spacing:-.02em}
.step .quote{font-family:var(--serif);color:var(--gold);margin:0 0 14px;font-size:16px}
.step p{margin:0;color:#4a463f;font-size:15.5px}
.ai-note{margin-top:clamp(40px,6vw,72px);padding:26px 30px;border:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:baseline;background:rgba(255,255,255,.35)}
.ai-note .caps{color:var(--green)}
.ai-note p{margin:0;color:#4a463f}

/* history */
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,6vw,96px);padding:clamp(28px,4vw,44px) 0;border-top:1px solid var(--hair)}
.timeline li:last-child{border-bottom:1px solid var(--hair)}
.timeline .when{font-family:var(--serif);font-size:clamp(26px,2.8vw,40px);letter-spacing:-.03em;color:var(--green);line-height:1.1}
.timeline .when small{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.24em;color:var(--sub);margin-top:10px;text-transform:uppercase}
.timeline h3{font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.8vw,25px);letter-spacing:-.02em;margin:0 0 8px}
.timeline p{margin:0;color:#4a463f;max-width:38em}
.timeline li.next .when{color:var(--sub);font-style:italic}

/* founder */
.founder-name{font-family:var(--serif);font-weight:400;font-size:clamp(46px,5.8vw,84px);letter-spacing:-.05em;line-height:1;margin:0}
.founder-name small{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.24em;color:var(--sub);margin-top:18px;text-transform:uppercase}
.motto{font-family:var(--serif);font-size:clamp(23px,2.3vw,34px);line-height:1.5;letter-spacing:-.025em;margin:0 0 clamp(36px,5vw,56px);max-width:22em}
.motto .q{color:var(--gold)}
.cv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 56px}
.cv .caps{display:block;padding-bottom:12px;border-bottom:1px solid var(--ink);margin-bottom:4px}
.cv ul{list-style:none;margin:0;padding:0}
.cv li{padding:14px 0;border-bottom:1px solid var(--hair);line-height:1.5}
.cv li span{display:block;font-size:13.5px;color:var(--sub);margin-top:3px}

/* faq */
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:24px 0;font-family:var(--serif);font-size:clamp(18px,1.6vw,22px);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:24px;color:var(--sub);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 26px;color:#4a463f;max-width:40em}

/* contact */
.contact{padding:var(--section) 0 clamp(72px,9vw,120px);background:var(--ink);color:var(--paper)}
.contact .caps{color:#9c968b}
.contact h2{color:var(--paper);font-size:clamp(42px,6.6vw,104px);line-height:1.1;letter-spacing:-.05em}
.contact h2 em{color:#cdb27a}
.contact-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,6vw,96px);margin-top:clamp(56px,8vw,110px);padding-top:30px;border-top:1px solid rgba(247,244,238,.18)}
.contact p{margin:0;color:#c9c3b8;max-width:30em}
.mail{display:inline-flex;align-items:center;gap:18px;font-family:var(--serif);font-size:clamp(28px,3.4vw,52px);letter-spacing:-.03em;line-height:1.1;word-break:break-all}
.mail .arw{display:inline-grid;place-items:center;flex:none;width:clamp(44px,4vw,60px);height:clamp(44px,4vw,60px);border:1px solid rgba(247,244,238,.4);border-radius:50%;font-family:var(--sans);font-size:18px;transition:background .3s,color .3s,transform .3s}
.mail:hover .arw{background:var(--paper);color:var(--ink);transform:rotate(-45deg)}
footer{background:var(--ink);color:#8d877c;font-size:12.5px;line-height:1.95;padding:0 0 calc(44px + env(safe-area-inset-bottom))}
footer .inner{border-top:1px solid rgba(247,244,238,.12);padding-top:28px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px}
footer .info span{display:inline-block;margin-right:18px}
footer a:hover{color:var(--paper)}

/* reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

@media (max-width:900px){
  .menu-btn{display:block}
  nav{position:fixed;inset:84px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;padding:4px var(--pad) 28px;background:var(--paper);box-shadow:0 1px 0 var(--hair);font-size:22px;color:var(--ink);font-family:var(--serif);
    opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
  nav a{padding:16px 0;border-bottom:1px solid var(--hair)}
  nav a:not(.cta):not(.lang)::after{display:none}
  nav .lang{font-family:var(--sans)}
  nav a.cta{margin-top:18px;text-align:center;font-family:var(--sans);font-size:15px}
  .menu-open nav{opacity:1;visibility:visible;transform:none}
  .cover-foot,.head,.body,.item,.steps,.timeline li,.cv,.contact-row,footer .inner,.ai-note{grid-template-columns:1fr}
  .body .col-2{grid-column:1}
  .cover h1 .mark{white-space:normal}
  .cover .meta .caps:last-child{display:none}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.rv{opacity:1;transform:none}.cover h1 .mark path{stroke-dashoffset:0}}
