/* Preview component tokens. Existing page tokens and styling are preserved. */
@font-face{font-family:'Keelson Sans';src:url('fonts/KeelsonSans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Pretendard Variable';src:url('fonts/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
.ki-identity{margin-top:var(--k-identity-top);scroll-margin-top:var(--k-identity-section-offset)}
.ki-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--k-gap);margin-bottom:var(--k-identity-gap)}
.ki-index,.ki-discipline{font-family:var(--k-face-mono);font-size:var(--k-identity-label);letter-spacing:var(--k-identity-tracking);color:var(--k-ink-faint)}
.ki-index{white-space:nowrap}
.ki-case{display:block}
.ki-composition{display:grid;grid-template-columns:1.5fr 1fr;background:var(--k-identity-paper);color:var(--k-identity-ink);overflow:hidden}
.ki-photo{margin:0;position:relative;overflow:hidden;aspect-ratio:var(--k-identity-photo-ratio)}
.ki-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--k-dur-enter) var(--k-ease)}
.ki-photo figcaption{position:absolute;left:var(--k-identity-pad);bottom:var(--k-identity-pad);font-family:var(--k-face-mono);font-size:var(--k-identity-label);letter-spacing:var(--k-identity-tracking);color:var(--k-identity-ink)}
.ki-system{display:grid;grid-template-rows:1.1fr 1fr;min-width:0}
.ki-type{display:flex;flex-direction:column;justify-content:space-between;padding:var(--k-identity-pad);background:var(--k-identity-flare);overflow:hidden}
.ki-type-meta,.ki-type-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--k-gap-sm);font-size:var(--k-identity-meta);line-height:1.2}
.ki-type-meta{font-family:var(--k-identity-face);font-weight:600}
.ki-type-meta span:last-child{font-family:var(--k-face-mono);font-size:var(--k-identity-label);font-weight:400}
.ki-letters{font-family:var(--k-identity-face);font-size:var(--k-identity-type);font-weight:600;letter-spacing:var(--k-ls-display);line-height:1.08;white-space:nowrap}
.ki-letters>span{color:var(--k-identity-paper)}
.ki-type-foot span:last-child{font-family:var(--k-face-mono);font-size:var(--k-identity-label)}
.ki-plan{display:flex;align-items:center;overflow:hidden;background:var(--k-identity-paper)}
.ki-drawing{width:100%}
.ki-drawing svg{display:block;width:100%;height:auto}
.ki-drawing .drawing-minor-line{fill:none;stroke:var(--k-identity-line);stroke-width:.7;opacity:.6}
.ki-drawing .drawing-major-line{fill:none;stroke:var(--k-identity-line);stroke-width:1.2}
.ki-drawing .drawing-frame{fill:none;stroke:var(--k-identity-line);stroke-width:1.2}
.ki-drawing .drawing-guide{fill:none;stroke:var(--k-identity-ink);stroke-width:1;opacity:.3;stroke-dasharray:5 5}
.ki-drawing .drawing-letter{fill:var(--k-identity-ink)}
.ki-drawing .drawing-dot{fill:var(--k-identity-flare)}
.ki-drawing .drawing-dimension{fill:none;stroke:var(--k-identity-flare);stroke-width:1.7}
.ki-drawing .drawing-extension{fill:none;stroke:var(--k-identity-flare);stroke-width:1;opacity:.55}
.ki-drawing .drawing-number{font-family:var(--k-face-mono);font-size:var(--k-identity-grid-label);fill:var(--k-identity-flare);paint-order:stroke;stroke:var(--k-identity-paper);stroke-width:8;stroke-linejoin:round}
.ki-drawing .drawing-point{fill:var(--k-identity-paper);stroke:var(--k-identity-flare);stroke-width:1.5}
.ki-drawing .drawing-registration{fill:none;stroke:var(--k-identity-ink);stroke-width:1;opacity:.4}
.ki-caption{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:var(--k-identity-gap);padding:var(--k-gap) 0;border-bottom:var(--k-hairline) solid var(--k-line)}
.ki-caption h3{font-family:var(--k-identity-face);font-size:var(--k-identity-title);font-weight:600;line-height:1.12;letter-spacing:var(--k-ls-display);margin-top:var(--k-gap-sm);white-space:nowrap}
.ki-caption h3>span{color:var(--k-identity-flare)}
.ki-description{font-size:var(--k-identity-caption);line-height:var(--k-lh-body);color:var(--k-ink-mid)}
.ki-link{display:flex;align-items:center;gap:var(--k-gap-sm);font-size:var(--k-identity-caption);font-weight:600;white-space:nowrap}
.ki-link>span{font-size:var(--k-identity-arrow);font-weight:400;transition:transform var(--k-dur-hover) var(--k-ease)}
.ki-credit{margin-top:var(--k-gap-sm);font-size:var(--k-identity-label);color:var(--k-ink-faint)}
.ki-case:hover .ki-photo img,.ki-case:focus-visible .ki-photo img{transform:scale(1.025)}
.ki-case:hover .ki-link,.ki-case:focus-visible .ki-link{color:var(--k-ember)}
.ki-case:hover .ki-link>span,.ki-case:focus-visible .ki-link>span{transform:translate(2px,-2px)}
@media(max-width:1100px){
  .ki-caption{grid-template-columns:1fr auto}
  .ki-description{grid-row:2;grid-column:1/-1}
  .ki-link{grid-row:1;grid-column:2}
}
@media(max-width:760px){
  .ki-heading{align-items:flex-start}
  .ki-index{display:none}
  .ki-composition{grid-template-columns:1fr}
  .ki-system{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .ki-type{padding:var(--k-identity-compact);aspect-ratio:1 / 1}
  .ki-letters{font-size:clamp(46px,10vw,80px)}
  .ki-type-meta{font-size:var(--k-identity-label)}
  .ki-type-meta span:last-child,.ki-type-foot{display:none}
  .ki-drawing{width:100%;min-width:0;transform:none}
  .ki-caption{grid-template-columns:1fr;gap:var(--k-gap-sm)}
  .ki-description{grid-row:auto;grid-column:auto}
  .ki-link{grid-row:auto;grid-column:auto;justify-content:space-between;margin-top:var(--k-gap-sm)}
  .ki-caption h3{white-space:normal}
}
@media(prefers-reduced-motion:reduce){.ki-case *{transition:none!important}}

/* Client and collaborator wall. Every mark comes from an existing source. */
.kc-clients{padding:var(--k-client-space) 0;margin:0 0 var(--k-identity-top);border-top:var(--k-hairline) solid var(--k-client-rule);border-bottom:var(--k-hairline) solid var(--k-client-rule);scroll-margin-top:var(--k-identity-section-offset)}
.kc-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--k-gap);margin-bottom:var(--k-client-space)}
.kc-eyebrow{font-family:var(--k-face-mono);font-size:var(--k-identity-label);letter-spacing:var(--k-identity-tracking);color:var(--k-client-muted);margin-bottom:var(--k-gap-sm)}
.kc-heading h2{font-family:var(--k-identity-face);font-size:var(--k-client-title);font-weight:600;line-height:1.15;letter-spacing:var(--k-ls-display);margin:0}
.kc-heading h2>span{color:var(--k-ember)}
.kc-intro{font-size:var(--k-type-small);line-height:var(--k-lh-body);color:var(--k-client-muted);margin:0}
.kc-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--k-client-grid-gap);padding:0;margin:0;list-style:none}
.kc-grid>li{min-width:0}
.kc-divider{border:0;border-top:var(--k-hairline) solid var(--k-client-rule);margin:24px 0 32px;width:100%}
.kc-logo{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--k-gap-sm);min-height:var(--k-client-row);text-align:center;padding:16px 4px;transition:opacity var(--k-dur-hover) var(--k-ease)}
.kc-mark{height:var(--k-client-mark-height);width:100%;display:flex;align-items:center;justify-content:center}
.kc-mark img{display:block;max-width:min(100%,var(--k-client-mark-width));max-height:var(--k-client-mark-height);width:auto;height:auto;filter:grayscale(1);opacity:.65;object-fit:contain;transition:filter var(--k-dur-hover) var(--k-ease),opacity var(--k-dur-hover) var(--k-ease)}
.kc-logo-symbol .kc-mark img{max-width:48px;max-height:28px}
.kc-mark img.kc-dark-ink{filter:brightness(0)}
a.kc-logo:hover img,a.kc-logo:focus-visible img{filter:url('#kc-logo-orange');opacity:1}
a.kc-logo:hover img.kc-tonal-mark,a.kc-logo:focus-visible img.kc-tonal-mark{filter:grayscale(1) contrast(3) url('#kc-logo-orange-tonal')}
@media(prefers-reduced-motion:reduce){.kc-mark img{transition:none}}
.kc-logo:focus-visible{outline:var(--k-hairline) solid var(--k-flare);outline-offset:2px}
@media(max-width:760px){
  .kc-clients{margin-bottom:var(--k-client-space)}
  .kc-heading{display:block;margin-bottom:var(--k-gap)}
  .kc-intro{margin-top:var(--k-gap-sm);font-size:var(--k-type-small)}
  .kc-grid{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--k-gap-sm)}
  .kc-divider{margin:var(--k-gap-sm) 0 var(--k-gap)}
  .kc-logo{min-height:calc(var(--k-client-row) * .72);padding:var(--k-gap-sm) 0}
  .kc-mark{height:calc(var(--k-client-mark-height) * .82)}
  .kc-mark img{max-width:min(100%,calc(var(--k-client-mark-width) * .82));max-height:calc(var(--k-client-mark-height) * .82)}
  .kc-logo-symbol .kc-mark img{max-height:calc(var(--k-client-mark-height) * .82);max-width:calc(var(--k-client-mark-width) * .52)}
}
@media(max-width:520px){.kc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.kc-logo{transition:none}}

/* ABOUT: identity follows the manifesto, collaborations close the studio story. */
/* Service detail: one reading column and one scroll surface at every size. */
.studio-service .b-body{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable;padding-bottom:32px}
.studio-service .b-body>*{flex-shrink:0;min-width:0}
.studio-service .b-body h3{padding-right:22px}
.studio-service .b-body .b-lead{max-width:none}
.studio-service .b-content,.studio-service .b-tasks,.studio-service .b-detail{display:block;width:100%;min-width:0}
.studio-service .b-content{margin-top:12px}
.studio-service .b-body .b-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:10px 0 0;padding:0}
.studio-service .b-body .b-tags li{display:block;max-width:100%;margin:0;padding:6px 10px;border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:4px;font-size:12px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
.studio-service .b-detail{margin-top:24px;padding-top:8px;border-top:1px solid color-mix(in srgb,currentColor 24%,transparent)}
.studio-service .b-detail p{margin:0 0 16px;font-size:14px;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
.studio-service .b-detail p:last-child{margin-bottom:0}
@media(max-width:760px){
  .studio-service .b-body .b-tags{gap:6px}
  .studio-service .b-body .b-tags li{padding:5px 8px;font-size:11px}
}

.studio-about{
  --k-about-gutter:max(clamp(28px,7vw,120px),50vw - 800px);
  --k-about-section:clamp(72px,8vw,128px);
}
.studio-about .ki-identity{
  margin:0;padding:0 var(--k-about-gutter) var(--k-about-section);
}
.studio-about .ki-heading{padding-top:var(--k-identity-gap);border-top:var(--k-hairline) solid var(--k-line)}
.studio-about .ki-about-eyebrow{font-size:var(--k-identity-label);font-family:var(--k-face-mono);letter-spacing:var(--k-identity-tracking);color:var(--k-ink-faint);margin-bottom:var(--k-gap-sm)}
.studio-about .ki-heading h2{font-family:var(--k-identity-face);font-size:var(--k-client-title);letter-spacing:var(--k-ls-display);line-height:1.15;font-weight:600}
.studio-about .ki-heading h2>span{color:var(--k-flare)}
.studio-about .ki-heading .h2ko{font-size:var(--k-type-small);line-height:var(--k-lh-body);color:var(--k-ink-mid);margin-top:var(--k-gap-sm)}
.studio-about .kc-clients{grid-column:1/-1;background:var(--k-client-paper);color:var(--k-client-ink);margin:0;padding:var(--k-about-section) var(--k-about-gutter);border-top:0}
@media(max-width:760px){
  .studio-about .kc-heading h2{font-size:clamp(24px,6.5vw,36px)}
  .studio-about .kc-clients{padding-block:var(--k-client-space)}
  .studio-about #khdr > span:has(> a){display:none!important}
}

/* Service capabilities belong with the service offer; studio founder stays in ABOUT. */
.studio-service{overflow-x:clip}
.studio-service .rise-wrap{overflow-x:clip;overflow-y:visible}
.studio-service .core-wrap{width:calc(100% + var(--k-gutter) * 2);margin-inline:calc(-1 * var(--k-gutter))}
.ks-modules{margin-top:var(--k-identity-top);scroll-margin-top:var(--k-identity-section-offset)}
.ks-module-grid{list-style:none;padding:0;margin:var(--k-client-space) 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--k-identity-gap)}
.ks-module-grid>li{padding:var(--k-gap) 0;border-top:var(--k-hairline) solid var(--k-line);min-width:0}
.ks-module-grid h3{font-family:var(--k-identity-face);font-size:clamp(17px,1.65vw,24px);font-weight:600;line-height:1.35;letter-spacing:-.025em;margin:0}
.ks-module-grid p{font-family:'Pretendard Variable',sans-serif;font-size:var(--k-type-small);line-height:var(--k-lh-body);color:var(--k-ink-mid);margin:var(--k-gap-sm) 0 0;word-break:keep-all}
.ka-founder{grid-column:1/-1;display:flex;align-items:center;gap:var(--k-gap);padding:0 var(--k-about-gutter) var(--k-client-space);font-size:var(--k-type-small);color:var(--k-ink-mid)}
.ka-founder>span:first-child{white-space:nowrap}.ka-founder b{font-weight:600;color:var(--k-flare)}
.ka-founder-rule{flex:1;height:var(--k-hairline);background:var(--k-line)}
.ka-founder a{white-space:nowrap}.ka-founder a:hover{color:var(--k-flare)}
@media(max-width:760px){.studio-service .rise{transform:none!important}.ks-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--k-gap)}.ka-founder{gap:var(--k-gap-sm);font-size:11px}}
@media(max-width:520px){.ks-module-grid{grid-template-columns:1fr}}

/* Patent partner: an explicit link below the collaborator wall. */
.kc-partnership{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--k-gap);margin-top:var(--k-client-space);padding-top:var(--k-client-space);border-top:var(--k-hairline) solid var(--k-client-rule)}
.kc-partnership-copy{flex:1 1 34rem;min-width:0}
.kc-partnership h3{margin:0;font-family:var(--k-face-body);font-size:var(--k-t-body);line-height:var(--k-lh-body);font-weight:600;color:var(--k-client-ink)}
.kc-partnership-copy p{margin:var(--k-gap-sm) 0 0;font-family:var(--k-face-body);font-size:var(--k-type-small);line-height:var(--k-lh-body);color:var(--k-client-muted);word-break:keep-all}
.kc-partnership a{display:flex;align-items:center;gap:var(--k-gap);max-width:100%;color:var(--k-client-muted);font-family:var(--k-face-body);font-size:var(--k-type-small);line-height:var(--k-lh-body);text-decoration:none;transition:color var(--k-dur-hover) var(--k-ease)}
.kc-partnership img{mix-blend-mode:multiply;display:block;width:var(--k-partner-mark-width);max-width:100%;height:auto;object-fit:contain}
.kc-partnership a>span{white-space:nowrap}
.kc-partnership a:hover,.kc-partnership a:focus-visible{color:var(--k-flare)}
.kc-partnership a:focus-visible{outline:var(--k-focus-w) solid var(--k-flare);outline-offset:var(--k-focus-gap)}
