:root{--bg:#f5f1ec;--bg-soft:#fbf8f4;--card:#ffffff;--fg:#1a1a1a;--fg-soft:#4a4a4a;--fg-muted:#8a8a8a;--border:rgba(0,0,0,0.08);--border-strong:rgba(0,0,0,0.18);--accent:#c84545;--accent-soft:#d9a89a;--ff:"Pretendard", -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", system-ui, sans-serif;--ff-mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--fs-hero:clamp(40px, 6vw, 76px);--fs-h1:clamp(28px, 3.5vw, 42px);--fs-h2:clamp(22px, 2.4vw, 30px);--fs-body:16px;--fs-small:14px;--fs-tiny:12px;--fw-heavy:700;--fw-bold:600;--fw-md:500;--fw-rg:400;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--sp-10:128px;--r-card:14px;--r-pill:999px;--gutter:clamp(20px, 4vw, 56px);--max-w:1240px;--ease:cubic-bezier(0.2, 0.8, 0.2, 1);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body {
font-family: var(--ff);
font-size: var(--fs-body);
line-height: 1.55;
color: var(--fg);
background: var(--bg);
letter-spacing: -0.005em;
} a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit;}
nav.top{position:sticky;top:0;z-index:50;background:rgba(245,241,236,0.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
nav.top .inner{max-width:var(--max-w);margin:0 auto;padding:var(--sp-4) var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-5);}
nav.top .logo{font-size:17px;font-weight:var(--fw-heavy);letter-spacing:-0.02em;display:flex;align-items:center;gap:10px;}
nav.top .logo .heart{width:18px;height:16px;position:relative;transform:rotate(-8deg);}
nav.top .logo .heart::before, nav.top .logo .heart::after{content:"";position:absolute;width:11px;height:16px;background:var(--accent);border-radius:50% 50% 0 0;}
nav.top .logo .heart::before{left:0;transform:rotate(-45deg);transform-origin:50% 100%;}
nav.top .logo .heart::after{right:0;transform:rotate(45deg);transform-origin:50% 100%;}
nav.top .menu{display:flex;gap:var(--sp-5);font-size:var(--fs-small);color:var(--fg-soft);font-weight:var(--fw-md);list-style:none;}
nav.top .menu a{padding:6px 0;position:relative;transition:color 0.2s;}
nav.top .menu a.active,
nav.top .menu .current-menu-item a,
nav.top .menu .current_page_item a{color:var(--fg);}
nav.top .menu a.active::after,
nav.top .menu .current-menu-item a::after,
nav.top .menu .current_page_item a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--fg);}
nav.top .menu a:hover{color:var(--fg);}
nav.top .lang{font-family:var(--ff-mono);font-size:var(--fs-tiny);color:var(--fg-muted);display:flex;gap:4px;}
nav.top .lang .active{color:var(--fg);}
@media (max-width: 720px) { nav.top .menu{gap:var(--sp-4);}
}
.wrap{max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter);}
header.page{padding-top:var(--sp-10);padding-bottom:var(--sp-7);border-bottom:1px solid var(--border);}
header.page .eyebrow{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);margin-bottom:var(--sp-4);}
header.page .eyebrow::before{content:"● ";color:var(--accent);}
header.page h1{font-size:var(--fs-hero);font-weight:var(--fw-heavy);line-height:1.05;letter-spacing:-0.035em;margin-bottom:var(--sp-5);max-width:18ch;}
header.page h1 .soft{color:var(--fg-muted);}
header.page .sub{font-size:18px;line-height:1.6;color:var(--fg-soft);max-width:56ch;}
nav.top{min-height:58px;}
.filter-bar{position:sticky;top:58px;z-index:40;background:rgba(245,241,236,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.filter-bar .inner{max-width:var(--max-w);margin:0 auto;padding:var(--sp-4) var(--gutter);display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;}
.filter-bar .label{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);margin-right:var(--sp-3);}
.filter{padding:8px 16px;border-radius:var(--r-pill);background:var(--card);border:1px solid var(--border);font-size:var(--fs-small);font-weight:var(--fw-md);color:var(--fg-soft);transition:all 0.2s var(--ease);cursor:pointer;}
.filter:hover{color:var(--fg);border-color:var(--border-strong);}
.filter.active{background:var(--fg);color:var(--bg);border-color:var(--fg);}
.filter .count{font-family:var(--ff-mono);font-size:11px;opacity:0.5;margin-left:4px;}
.grid-section{padding-top:var(--sp-7);padding-bottom:var(--sp-10);}
.grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:var(--sp-5);}
.case{display:flex;flex-direction:column;gap:var(--sp-3);cursor:pointer;transition:opacity 0.3s var(--ease);}
.case[hidden]{display:none;}
.case .thumb{aspect-ratio:4/3;background:linear-gradient(135deg, var(--c1, #d4cfc7) 0%, var(--c2, #b5ada3) 100%);border-radius:var(--r-card);overflow:hidden;position:relative;transition:transform 0.4s var(--ease);}
.case .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.case:hover .thumb{transform:translateY(-4px);}
.case .thumb::after{content:attr(data-label);position:absolute;bottom:14px;left:14px;font-family:var(--ff-mono);font-size:10px;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:0.1em;z-index:1;}
.case .meta{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--ff-mono);font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:0.08em;}
.case .meta .dot{width:3px;height:3px;background:currentColor;border-radius:50%;}
.case .title{font-size:16px;font-weight:var(--fw-bold);color:var(--fg);letter-spacing:-0.01em;line-height:1.35;}
.case .client{font-size:13px;color:var(--fg-muted);}
.empty{text-align:center;padding:var(--sp-10) 0;color:var(--fg-muted);font-family:var(--ff-mono);font-size:var(--fs-small);}
.empty[hidden]{display:none;}
.hero{padding-top:var(--sp-10);padding-bottom:var(--sp-9);}
.hero h1{font-size:var(--fs-hero);font-weight:var(--fw-heavy);line-height:1.05;letter-spacing:-0.035em;max-width:18ch;margin-bottom:var(--sp-6);}
.hero h1 .soft{color:var(--fg-muted);}
.hero .sub{font-size:19px;line-height:1.6;color:var(--fg-soft);max-width:56ch;margin-bottom:var(--sp-6);}
.hero .meta{display:flex;gap:var(--sp-5);flex-wrap:wrap;font-family:var(--ff-mono);font-size:var(--fs-tiny);color:var(--fg-muted);text-transform:uppercase;letter-spacing:0.08em;padding-top:var(--sp-5);border-top:1px solid var(--border);}
.hero .meta span b{color:var(--fg);font-weight:var(--fw-md);}
section.block{padding:var(--sp-9) 0;border-top:1px solid var(--border);}
.sec-head{margin-bottom:var(--sp-7);}
.sec-head .tag{display:block;font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);margin-bottom:var(--sp-4);}
.sec-head .tag::before{content:"— ";}
.sec-head h2{font-size:var(--fs-h1);font-weight:var(--fw-heavy);line-height:1.15;letter-spacing:-0.02em;}
.direction-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--sp-4);}
.direction-card{background:var(--card);border-radius:var(--r-card);padding:var(--sp-6);border:1px solid var(--border);display:flex;flex-direction:column;gap:var(--sp-3);transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease);}
.direction-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,0.06);}
.direction-card .ico{width:48px;height:48px;border-radius:12px;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:var(--sp-3);}
.direction-card .name{font-size:21px;font-weight:var(--fw-bold);letter-spacing:-0.01em;margin-bottom:2px;}
.direction-card .desc{color:var(--fg-soft);font-size:15px;line-height:1.55;}
.direction-card .tags{margin-top:auto;padding-top:var(--sp-3);display:flex;flex-wrap:wrap;gap:6px;}
.direction-card .tag-pill{font-family:var(--ff-mono);font-size:11px;color:var(--fg-muted);background:var(--bg-soft);padding:4px 10px;border-radius:var(--r-pill);}
@media (max-width: 800px) { .direction-grid{grid-template-columns:1fr;}
} .clients-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:var(--sp-3);}
.client{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:96px;text-align:center;transition:transform 0.25s var(--ease), border-color 0.25s, box-shadow 0.25s;}
.client:hover{border-color:var(--border-strong);transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,0.04);}
.client img.logo{max-height:28px;max-width:90%;object-fit:contain;filter:grayscale(0.15);transition:filter 0.25s;}
.client:hover img.logo{filter:grayscale(0);}
.client .name{font-size:12px;color:var(--fg-muted);letter-spacing:-0.01em;font-weight:var(--fw-md);}
.client.no-logo .name{font-size:15px;color:var(--fg-soft);font-weight:var(--fw-md);}
.client.no-logo.featured .name{color:var(--fg);font-weight:var(--fw-bold);font-size:16px;}
.clients-note{margin-top:var(--sp-4);font-family:var(--ff-mono);font-size:var(--fs-tiny);color:var(--fg-muted);text-transform:uppercase;letter-spacing:0.08em;}
.bio-block{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--sp-7);align-items:start;}
.bio-portrait{aspect-ratio:4/5;background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);position:relative;overflow:hidden;}
.bio-portrait::before{content:"황인욱\A Founder · Designer";white-space:pre;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ff-mono);font-size:11px;color:var(--fg-muted);text-align:center;line-height:1.8;}
.bio-portrait .badge{position:absolute;top:14px;left:14px;background:var(--accent);color:white;font-family:var(--ff-mono);font-size:10px;padding:4px 10px;border-radius:var(--r-pill);letter-spacing:0.05em;text-transform:uppercase;}
.bio-text h3{font-size:var(--fs-h2);font-weight:var(--fw-heavy);letter-spacing:-0.02em;line-height:1.15;margin-bottom:var(--sp-4);}
.bio-text p{color:var(--fg-soft);font-size:16px;line-height:1.65;margin-bottom:var(--sp-3);max-width:56ch;}
.timeline{margin-top:var(--sp-5);border-top:1px solid var(--border);list-style:none;}
.timeline li{display:grid;grid-template-columns:140px 1fr;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);font-size:15px;}
.timeline li .yr{font-family:var(--ff-mono);color:var(--fg-muted);font-size:13px;}
.timeline li .place{font-weight:var(--fw-md);}
.timeline li.current .place::after{content:"●";color:var(--accent);margin-left:8px;}
@media (max-width: 800px) { .bio-block{grid-template-columns:1fr;}
.bio-portrait{max-width:320px;}
} section.cta{padding:var(--sp-10) 0;text-align:center;border-top:1px solid var(--border);}
section.cta .tag{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--accent);margin-bottom:var(--sp-4);}
section.cta h2{font-size:var(--fs-hero);font-weight:var(--fw-heavy);letter-spacing:-0.03em;line-height:1.05;margin-bottom:var(--sp-6);}
section.cta .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;background:var(--fg);color:var(--bg);border-radius:var(--r-pill);font-size:15px;font-weight:var(--fw-md);transition:transform 0.2s var(--ease), background 0.2s;}
section.cta .btn:hover{background:var(--accent);transform:translateY(-2px);}
section.cta .btn .arrow{font-family:var(--ff-mono);}
.channels{padding-bottom:var(--sp-10);}
.channels .grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--sp-4);}
.ch{background:var(--card);border-radius:var(--r-card);border:1px solid var(--border);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s;}
.ch:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,0.06);border-color:var(--border-strong);}
.ch .ico{width:56px;height:56px;border-radius:14px;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:var(--sp-3);}
.ch .label{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);}
.ch .value{font-size:22px;font-weight:var(--fw-bold);letter-spacing:-0.01em;word-break:break-all;}
.ch .note{font-size:14px;color:var(--fg-soft);line-height:1.55;margin-top:auto;padding-top:var(--sp-3);border-top:1px dashed var(--border);}
.ch .arrow{margin-top:var(--sp-3);font-family:var(--ff-mono);font-size:var(--fs-small);color:var(--accent);display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:0.05em;}
.ch .arrow::after{content:"→";transition:transform 0.3s var(--ease);}
.ch:hover .arrow::after{transform:translateX(6px);}
@media (max-width: 800px) { .channels .grid{grid-template-columns:1fr;}
}
.info{padding-top:var(--sp-9);padding-bottom:var(--sp-9);border-top:1px solid var(--border);}
.info-grid{display:grid;grid-template-columns:200px 1fr;gap:var(--sp-6);align-items:start;}
.info-grid .tag{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);}
.info-grid .tag::before{content:"— ";}
.info-grid dl{display:grid;grid-template-columns:140px 1fr;gap:var(--sp-3) var(--sp-5);font-size:15px;}
.info-grid dt{font-family:var(--ff-mono);font-size:12px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:0.08em;padding-top:4px;}
.info-grid dd{color:var(--fg);}
.info-grid dd a:hover{color:var(--accent);}
@media (max-width: 800px) { .info-grid{grid-template-columns:1fr;gap:var(--sp-3);}
.info-grid dl{grid-template-columns:1fr;gap:2px var(--sp-3);}
.info-grid dt{padding-top:var(--sp-3);}
}
.hours{padding-top:var(--sp-9);padding-bottom:var(--sp-9);border-top:1px solid var(--border);display:grid;grid-template-columns:200px 1fr;gap:var(--sp-6);align-items:baseline;}
.hours .tag{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);}
.hours .tag::before{content:"— ";}
.hours .copy h3{font-size:22px;font-weight:var(--fw-bold);letter-spacing:-0.01em;margin-bottom:var(--sp-3);}
.hours .copy p{color:var(--fg-soft);max-width:56ch;line-height:1.65;}
.hours .badge{display:inline-flex;align-items:center;gap:6px;margin-top:var(--sp-3);background:var(--bg-soft);padding:6px 12px;border-radius:var(--r-pill);font-size:13px;font-family:var(--ff-mono);}
.hours .badge .live{width:7px;height:7px;background:#2ea043;border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse { 0%,100%{opacity:1;}
50%{opacity:0.4;}
}
@media (max-width: 800px) { .hours{grid-template-columns:1fr;gap:var(--sp-3);}
} .single-wrap{padding-top:var(--sp-10);padding-bottom:var(--sp-10);}
.single-wrap .crumb{font-family:var(--ff-mono);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:0.1em;color:var(--fg-muted);margin-bottom:var(--sp-4);}
.single-wrap .crumb a{color:var(--accent);}
.single-wrap h1{font-size:var(--fs-hero);font-weight:var(--fw-heavy);line-height:1.05;letter-spacing:-0.035em;margin-bottom:var(--sp-5);}
.single-wrap .meta{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-family:var(--ff-mono);font-size:12px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:var(--sp-7);}
.single-wrap .content{font-size:17px;line-height:1.7;color:var(--fg-soft);}
.single-wrap .content h2{color:var(--fg);font-size:var(--fs-h2);margin:var(--sp-6) 0 var(--sp-3);font-weight:var(--fw-heavy);letter-spacing:-0.02em;}
.single-wrap .content p{margin-bottom:var(--sp-4);max-width:70ch;}
.single-wrap .content img{border-radius:var(--r-card);margin:var(--sp-5) 0;}
footer.site-footer{padding:var(--sp-6) var(--gutter);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-3);font-family:var(--ff-mono);font-size:var(--fs-tiny);color:var(--fg-muted);max-width:var(--max-w);margin:0 auto;}
footer.site-footer a:hover { color: var(--fg); }