.ks-proposal { color:var(--k-ink); font-family:var(--k-face-body); }
.studio-service .hero .lead { max-width:var(--k-preview-copy); }
.ks-about-intro { max-width:var(--k-preview-copy); margin:var(--k-gap-sm) 0 0; font:var(--k-t-small)/var(--k-lh-body) var(--k-face-body); color:var(--k-ink-mid); word-break:keep-all; }
.ks-proposal *, .ks-next * { box-sizing:border-box; }
.ks-proposal section { scroll-margin-top:var(--k-preview-anchor); }
.ks-proposal h2,.ks-proposal h3,.ks-proposal p { margin:0; }
.ks-proposal h2 { display:block; padding:0; border:0; font-family:var(--k-face-display); font-size:var(--k-t-title); font-weight:500; letter-spacing:var(--k-ls-title); line-height:var(--k-preview-title-lh); text-transform:none; text-wrap:balance; }
.ks-proposal h3 { font-family:var(--k-face-display); font-size:var(--k-t-lead); font-weight:500; letter-spacing:var(--k-ls-title); line-height:var(--k-preview-title-lh); }
.ks-proposal p { color:var(--k-ink-mid); font-size:var(--k-t-small); line-height:var(--k-lh-body); word-break:keep-all; }
.ks-proposal .ks-label { display:block; margin-bottom:var(--k-gap-sm); font-size:var(--k-t-label); letter-spacing:var(--k-ls-label); font-weight:600; color:var(--k-ink-mid); }
.ks-proposal .ks-dot { color:var(--k-flare); }
.ks-section { padding:var(--k-band) 0; border-top:var(--k-hairline) solid var(--k-line); }
.ks-split { display:grid; grid-template-columns:2fr 1fr; gap:var(--k-gap); align-items:start; }
.ks-split p { max-width:var(--k-preview-copy); }
.ks-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--k-gap); margin-bottom:var(--k-gap); }
.ks-service { display:grid; grid-template-columns:1fr 1fr 1fr; gap:var(--k-gap); align-items:start; padding:var(--k-gap) 0; border-top:var(--k-hairline) solid var(--k-line); }
.ks-service .ks-label { margin-bottom:var(--k-preview-gap); letter-spacing:normal; }
.ks-service a { justify-self:end; }
.ks-service { position:relative; transition:border-color var(--k-dur-hover) var(--k-ease); }
.ks-service:hover,.ks-service:focus-within { border-top-color:var(--k-flare); }
.ks-service:hover h3,.ks-service:focus-within h3 { color:var(--k-flare); }
.ks-service h3 { transition:color var(--k-dur-hover) var(--k-ease); }
.ks-case { overflow:hidden; }
.ks-case img { transition:transform var(--k-dur-enter) var(--k-ease); }
.ks-case:hover img,.ks-case:focus-visible img { transform:scale(var(--k-preview-image-scale)); }
.ks-entered { animation:ks-service-enter var(--k-dur-enter) var(--k-ease) both; }
@keyframes ks-service-enter { from { opacity:0; transform:translateY(var(--k-rise)); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .ks-entered { animation:none; } .ks-case:hover img,.ks-case:focus-visible img { transform:none; } }
.ks-module { display:grid; grid-template-columns:1fr 2fr; gap:var(--k-gap); padding:var(--k-gap) 0; border-top:var(--k-hairline) solid var(--k-line); }
.ks-proposal a.ks-link,.ks-next a,.ks-proposal-links a { display:inline-flex; align-items:center; gap:var(--k-gap-sm); min-height:var(--k-preview-touch); color:var(--k-ink); font:500 var(--k-t-small)/var(--k-preview-title-lh) var(--k-face-body); text-decoration:underline; text-underline-offset:var(--k-preview-underline); text-decoration-color:var(--k-line); }
.ks-proposal a:hover,.ks-next a:hover,.ks-proposal-links a:hover { color:var(--k-flare); }
.ks-proposal a:focus-visible,.ks-proposal summary:focus-visible,.ks-next a:focus-visible,.ks-proposal-links a:focus-visible { outline:var(--k-focus-w) solid var(--k-flare); outline-offset:var(--k-focus-gap); }
.ks-cases { display:grid; grid-template-columns:1fr 1fr; gap:var(--k-gap); }
.ks-case { color:inherit; text-decoration:none; display:block; }
.ks-case img { width:100%; height:auto; aspect-ratio:var(--k-preview-case-ratio); object-fit:cover; border-radius:var(--k-r-md); display:block; background:var(--k-paper-sunk); }
.ks-case .ks-caption { display:flex; justify-content:space-between; gap:var(--k-gap-sm); align-items:center; margin:var(--k-gap-sm) 0 var(--k-preview-gap); }
.ks-case p { max-width:var(--k-preview-copy); }
.ks-case small { display:block; color:var(--k-ink-mid); margin-top:var(--k-preview-gap); font-size:var(--k-t-label); }
.ks-process { list-style:none; padding:0; margin:0; counter-reset:stage; }
.ks-process li { display:grid; grid-template-columns:1fr 2fr; gap:var(--k-gap); padding:var(--k-gap-sm) 0; border-top:var(--k-hairline) solid var(--k-line); counter-increment:stage; }
.ks-process h3::before { content:counter(stage,decimal-leading-zero) ' '; font-family:var(--k-face-mono); font-size:var(--k-t-label); color:var(--k-ink-mid); margin-right:var(--k-gap-sm); }
.ks-proposal details { border-top:var(--k-hairline) solid var(--k-line); margin:0; padding:var(--k-gap-sm) 0; }
.ks-proposal summary { display:flex; justify-content:space-between; align-items:center; gap:var(--k-gap); cursor:pointer; list-style:none; color:var(--k-ink); font-size:var(--k-t-lead); min-height:var(--k-preview-touch); }
.ks-proposal summary::before { display:none; }
.ks-proposal summary::after { content:'+'; font-family:var(--k-face-display); }
.ks-proposal details[open] summary::after { content:'−'; }
.ks-proposal details p { padding:var(--k-gap-sm) 0; max-width:var(--k-preview-copy); }
.ks-proposal-links { display:flex; flex-wrap:wrap; gap:var(--k-gap); margin-top:var(--k-gap-sm); }
.ks-next { display:flex; justify-content:space-between; align-items:center; gap:var(--k-gap); padding:var(--k-gap) 0; border-top:var(--k-hairline) solid var(--k-line); border-bottom:var(--k-hairline) solid var(--k-line); }
.ks-next p { margin:0; font:var(--k-t-small)/var(--k-lh-body) var(--k-face-body); color:var(--k-ink-mid); }
.ks-next strong { display:block; color:var(--k-ink); font-size:var(--k-t-lead); font-weight:500; }
.ks-next a { flex-shrink:0; }
.ks-about-next { grid-column:1 / -1; margin:var(--k-gap) var(--k-gutter); }  /* 소개 쪽 12칸 격자에서 한 칸에 끼어 찌그러지던 것 (2026-09-12) */
.ks-work-next { margin:var(--k-gap) 0; }
@media(max-width:800px) { .ks-split { grid-template-columns:1fr; } .ks-service { grid-template-columns:1fr 1fr; } .ks-service a { grid-column:2; justify-self:start; } .ks-section-heading { align-items:start; flex-direction:column; } }
@media(max-width:620px) { .ks-cases,.ks-service,.ks-module,.ks-process li { grid-template-columns:1fr; } .ks-service,.ks-module { gap:var(--k-gap-sm); } .ks-service a { grid-column:auto; } .ks-next { flex-direction:column; align-items:flex-start; } }
/* Compact service cases and shared work fields, using the site's existing tokens. */
.ks-service-actions { display:flex; flex-direction:column; align-items:flex-start; gap:var(--k-preview-gap); min-width:0; }
.ks-proposal .ks-service-case { display:flex; flex-direction:column; align-items:flex-start; text-decoration:none; }
.ks-service-case img { width:100%; max-width:var(--k-preview-thumb); aspect-ratio:var(--k-preview-case-ratio); object-fit:cover; border-radius:var(--k-r-md); }
.ks-proposal .ks-consult { color:var(--k-ink-mid); font-size:var(--k-t-label); }
.ks-related { margin:var(--k-band) 0; padding-top:var(--k-gap); border-top:var(--k-hairline) solid var(--k-line); }
.ks-related h2 { font:500 var(--k-t-lead)/var(--k-lh-body) var(--k-face-body); margin:0 0 var(--k-gap); }
.ks-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--k-gap); margin-bottom:var(--k-gap); }
.ks-related-grid a { display:flex; flex-direction:column; gap:var(--k-gap-sm); color:var(--k-ink); text-decoration:none; }
.ks-related-grid img { width:100%; aspect-ratio:var(--k-preview-case-ratio); object-fit:cover; border-radius:var(--k-r-md); }
.ks-related-grid strong { font:500 var(--k-t-small)/var(--k-lh-body) var(--k-face-body); }
.ks-related-grid span,.ks-filter-help { font:var(--k-t-label)/var(--k-lh-body) var(--k-face-body); color:var(--k-ink-mid); }
.work-edit-categories { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:var(--k-gap-sm); border:var(--k-hairline) solid var(--k-line); padding:var(--k-gap-sm); }
.work-edit-categories label { display:flex; align-items:center; gap:var(--k-preview-gap); }
.work-edit-categories input { width:auto; }
@media(max-width:620px) { .ks-service { grid-template-columns:1fr auto; } .ks-service>p { grid-column:1; } .ks-service-actions { grid-column:2; grid-row:1 / 3; max-width:var(--k-preview-thumb-mobile); } .ks-related-grid { grid-template-columns:1fr; } }
.ks-case-video { display:block; width:100%; height:auto; border-radius:var(--k-r-md); }
