/* All design rules stay inside .kl, leaving AFFINGER's article design intact. */
.kl{--ink:#171c34;--muted:#5f667d;--violet:#655ad9;--deep:#11162e;--line:#e8e9f3;--wash:#f6f7fc;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.85;width:100%;max-width:1180px;margin:0 auto;padding:0 20px 36px;box-sizing:border-box}.kl *{box-sizing:border-box}.kl h1,.kl h2,.kl h3,.kl p{margin:0}.kl h1,.kl h2,.kl h3{line-height:1.35;letter-spacing:-.035em;font-weight:750}.kl a{text-decoration:none;transition:background .2s,color .2s,transform .2s}.kl a:hover{color:#5144c7}.kl a:focus-visible{outline:3px solid #8477ff;outline-offset:4px}.kl .kl-eyebrow{font-family:ui-sans-serif,system-ui,sans-serif;color:#7467cf;font-size:12px;letter-spacing:.2em;font-weight:800;line-height:1.5}.kl-hero{position:relative;display:grid;grid-template-columns:1.06fr .94fr;min-height:580px;align-items:center;overflow:hidden;border-radius:27px;background:radial-gradient(circle at 83% 48%,#dedbff 0,#f5f3ff 35%,#fafbff 67%);padding:62px 0 54px 65px;margin:14px 0 90px}.kl-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#a09adb11 1px,transparent 1px),linear-gradient(90deg,#a09adb11 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent,#000)}.kl-hero-copy{position:relative;z-index:2;max-width:550px}.kl-hero h1{font-size:clamp(34px,4.1vw,55px);letter-spacing:-.065em;margin:25px 0 23px}.kl-hero h1 em{font-style:normal;color:#5d50c7}.kl-lead{font-size:16px;line-height:2.05;color:#4c536e;max-width:510px}.kl-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:30px 0}.kl .kl-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 22px;border-radius:12px;font-size:14px;font-weight:700;border:1px solid transparent;line-height:1.5}.kl .kl-button-primary{background:#252344;color:#fff;box-shadow:0 12px 25px #25234422}.kl .kl-button-primary:hover{background:#5144a5;color:#fff;transform:translateY(-2px)}.kl .kl-button-quiet{background:#fff;color:#28284b;border-color:#e0def2}.kl .kl-button-quiet:hover{background:#f3f0ff}.kl .kl-button-outline{border-color:#8887af;color:#fff;background:transparent}.kl .kl-button-outline:hover{background:#ffffff1b;color:#fff}.kl-hero-facts{display:flex;flex-wrap:wrap;gap:14px;color:#777492;font-size:12px;font-weight:700}.kl-hero-facts span:before{content:"✦";color:#8b79db;margin-right:7px}.kl-hero-art{position:relative;align-self:stretch;min-height:420px}.kl-hero-art img{position:absolute;z-index:1;width:110%;max-width:none;height:auto;bottom:-95px;right:-16px;filter:drop-shadow(0 15px 22px #36305e21)}.kl-orbit{position:absolute;border:1px solid #9690cb44;border-radius:50%;width:390px;height:390px;right:11%;top:13%}.kl-orbit-two{width:510px;height:510px;right:-2%;top:0;border-style:dashed}.kl-section{margin:0 0 100px}.kl-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:0 0 27px}.kl-heading h2,.kl-feature h2,.kl-end h2{font-size:clamp(25px,3.1vw,38px);margin-top:9px}.kl-heading>p{color:var(--muted);font-size:14px}.kl-grid{display:grid;gap:17px}.kl-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.kl-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.kl-card,.kl-panel{border:1px solid var(--line);border-radius:18px;padding:30px;background:#fff;box-shadow:0 8px 35px #181d3809}.kl-card-number{font-size:11px;letter-spacing:.18em;color:#8073d7;font-weight:800}.kl-card h2,.kl-card h3,.kl-panel h3{font-size:19px;margin:18px 0 12px}.kl-card p,.kl-panel p{color:var(--muted);font-size:14px;line-height:1.9}.kl .kl-textlink{display:inline-block;color:#5b50c4;font-size:13px;font-weight:800;margin-top:23px}.kl-feature{background:#f7f7fc;border-radius:22px;display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:62px;align-items:center}.kl-feature p:not(.kl-eyebrow){color:var(--muted);font-size:14px;max-width:470px;margin:22px 0 0;line-height:2}.kl-flow{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:center;min-height:170px;background:#fff;border:1px solid #eceafa;border-radius:20px;padding:25px}.kl-flow span{display:inline-block;border-radius:10px;background:#efedff;color:#3f3977;font-size:13px;font-weight:750;padding:12px 13px}.kl-flow b{color:#a4a0c9}.kl-panel{padding:35px}.kl-symbol{display:grid;place-items:center;background:#f0eeff;color:#5f54cf;border-radius:14px;width:48px;height:48px;font-size:24px}.kl-portal{margin:0 0 90px;background:#20223d;border-radius:22px;color:#fff;padding:48px 55px;display:flex;justify-content:space-between;gap:25px;align-items:center}.kl-portal .kl-eyebrow{color:#aca3ff}.kl-portal h2{font-size:26px;margin:10px 0}.kl-portal p:not(.kl-eyebrow){font-size:14px;color:#d4d3e5;max-width:600px}.kl-end{text-align:center;background:linear-gradient(130deg,#f6f5ff,#fafaff);padding:65px 20px;border-radius:22px}.kl-end h2{margin:14px 0 24px}.kl-local-footer{margin-top:70px;border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#64687a;font-size:12px;font-weight:750;letter-spacing:.08em}.kl-local-footer small{font-weight:400;letter-spacing:0;margin-left:8px}.kl-local-footer nav{display:flex;gap:22px}.kl-local-footer a{color:#686a7a}.kl-page-head{background:radial-gradient(circle at 85% 0%,#e7e3ff,#f9f9ff 65%);padding:67px 65px;border-radius:22px;margin:16px 0 38px}.kl-page-head h1{font-size:clamp(30px,4vw,48px);margin:17px 0}.kl-page-head>p:last-child{max-width:750px;color:var(--muted);font-size:15px}.kl-prose{padding:30px 4px;max-width:840px}.kl-prose h2{font-size:23px;margin:22px 0 12px}.kl-prose p{color:var(--muted)}.kl-small{font-size:13px;color:var(--muted);margin:24px 0}.kl-adult-head{background:linear-gradient(120deg,#1d213b,#333354);color:white}.kl-adult-head>p:last-child{color:#dfdff0}.kl-adult-head .kl-eyebrow{color:#bbb0ff}.kl-adult-box{border:1px solid var(--line);border-radius:18px;padding:35px;display:flex;gap:30px;align-items:center}.kl-adult-mark{font-size:50px;color:#7166d5;font-weight:800;white-space:nowrap}.kl-adult-mark span{font-size:25px}.kl-adult-box h2{font-size:24px;margin-bottom:12px}.kl-adult-box p{color:var(--muted);font-size:14px;margin-top:9px}.kl-about{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center}.kl-about h2{font-size:27px}.kl-about p{color:var(--muted);margin:18px 0}.kl-about img{width:100%;height:auto;background:#f6f4ff;border-radius:20px}.kl-note{font-size:12px;color:var(--muted)}
@media(max-width:900px){.kl-hero{padding:50px 0 30px 40px;min-height:515px}.kl-hero-art img{width:125%;right:-50px;bottom:-50px}.kl-hero h1{font-size:38px}.kl-grid-three{grid-template-columns:1fr 1fr}.kl-grid-three .kl-card:last-child{grid-column:span 2}}
@media(max-width:680px){.kl{padding:0 12px 28px}.kl-hero{display:flex;flex-direction:column;align-items:stretch;padding:38px 24px 0;min-height:0;margin:8px 0 60px}.kl-hero h1{font-size:clamp(31px,9vw,43px)}.kl-lead{font-size:14px}.kl-hero-art{height:320px;min-height:0}.kl-hero-art img{width:min(100%,390px);right:-23px;bottom:-59px}.kl-orbit{width:250px;height:250px;right:0;top:45px}.kl-orbit-two{width:320px;height:320px;right:-32px;top:8px}.kl-section{margin-bottom:62px}.kl-heading{display:block}.kl-heading>p{margin-top:10px}.kl-grid-three,.kl-grid-two,.kl-feature,.kl-about{grid-template-columns:1fr}.kl-grid-three .kl-card:last-child{grid-column:auto}.kl-card,.kl-panel{padding:24px}.kl-feature{padding:28px;gap:25px}.kl-flow{min-height:130px}.kl-portal{display:block;padding:32px 27px;margin-bottom:60px}.kl-portal .kl-button{margin-top:24px}.kl-page-head{padding:40px 27px}.kl-adult-box{align-items:flex-start;padding:24px;gap:15px}.kl-adult-mark{font-size:35px}.kl-local-footer{display:block}.kl-local-footer nav{margin-top:12px;flex-wrap:wrap}.kl-about img{max-width:360px}.kl-end{padding:50px 18px}}
@media(prefers-reduced-motion:reduce){.kl a{transition:none}}

/* === KUROHA LAB. 2.5.0: richer, non-redundant home === */

.kl-home-article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.kl-home-article{position:relative;padding:30px 32px;border:1px solid #dddfea;border-radius:20px;background:#fff;box-shadow:0 10px 34px rgba(27,31,58,.055)}
.kl-home-article:before{content:"";position:absolute;left:0;top:28px;bottom:28px;width:4px;border-radius:0 5px 5px 0;background:linear-gradient(#6e60dc,#9a83ff)}
.kl-home-article-meta{font-size:11px;font-weight:800;letter-spacing:.12em;color:#7567ce;text-transform:uppercase}
.kl-home-article h3{font-size:21px;margin:13px 0 11px;line-height:1.55}
.kl-home-article h3 a{color:var(--ink)}
.kl-home-article h3 a:hover{color:#5749c7}
.kl-home-article p{color:var(--muted);font-size:13px;line-height:1.9}
.kl-empty-note{padding:28px 30px;border:1px solid var(--line);border-radius:18px;background:#fff}

.kl-workflow-map{padding:42px 38px!important;border:1px solid #dde0eb;border-radius:22px;background:linear-gradient(135deg,#fbfbff,#f4f2ff);box-shadow:0 12px 36px rgba(34,31,72,.055)}
.kl-workflow-map>.kl-heading{padding-left:0!important;padding-right:0!important}
.kl-pipeline{display:grid;grid-template-columns:minmax(112px,1fr) auto minmax(112px,1fr) auto minmax(112px,1fr) auto minmax(112px,1fr) auto minmax(112px,1fr) auto minmax(112px,1fr);gap:8px;align-items:center;margin-top:8px}
.kl-pipeline>div{min-height:126px;padding:18px 12px;border:1px solid #dedff0;border-radius:15px;background:#fff;display:flex;flex-direction:column;justify-content:center;text-align:center;box-shadow:0 7px 22px rgba(29,31,56,.04)}
.kl-pipeline>div>span{font-size:10px;letter-spacing:.12em;font-weight:800;color:#8375de}
.kl-pipeline strong{margin:8px 0 5px;font-size:14px;color:#252a45}
.kl-pipeline small{font-size:10px;color:#747990;line-height:1.45}
.kl-pipeline>b{color:#8a82b8;font-size:16px;text-align:center}
.kl-map-note{margin:18px 0 0!important;font-size:12px!important;color:#6d7185!important;line-height:1.8!important}

.kl-tool-spotlight{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:54px;align-items:center;padding:54px!important;border:1px solid #dcdfea;border-radius:22px;background:#fff;box-shadow:0 14px 40px rgba(31,34,67,.06)}
.kl-tool-copy h2{font-size:clamp(28px,3vw,40px);margin:12px 0 18px}
.kl-tool-copy>p:not(.kl-eyebrow){max-width:620px;color:var(--muted);font-size:14px;line-height:2}
.kl-tool-points{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px}
.kl-tool-points span{padding:7px 11px;border:1px solid #e2e1ef;border-radius:999px;background:#f8f7ff;color:#5a5575;font-size:11px;font-weight:750}
.kl-tool-visual{min-width:0}
.kl-tool-window{overflow:hidden;border:1px solid #dedff0;border-radius:18px;background:#f7f7fb;box-shadow:0 20px 45px rgba(31,30,68,.12)}
.kl-tool-window-bar{height:34px;display:flex;align-items:center;gap:6px;padding:0 12px;background:#252742}
.kl-tool-window-bar i{display:block;width:7px;height:7px;border-radius:50%;background:#9b95c4}
.kl-tool-nodes{display:flex;align-items:center;justify-content:center;gap:8px;min-height:126px;padding:24px 16px;background-image:linear-gradient(#8d87c70d 1px,transparent 1px),linear-gradient(90deg,#8d87c70d 1px,transparent 1px);background-size:22px 22px}
.kl-tool-nodes span{padding:10px 12px;border:1px solid #d8d6ef;border-radius:9px;background:#fff;color:#363455;font-size:11px;font-weight:800;box-shadow:0 5px 15px rgba(37,36,71,.06)}
.kl-tool-nodes em{font-style:normal;color:#8177c3;font-weight:800}
.kl-tool-code{padding:17px 20px 21px;background:#fff;border-top:1px solid #e8e8f1}
.kl-tool-code i{display:block;height:6px;margin:7px 0;border-radius:4px;background:#e6e5f0}
.kl-tool-code i:nth-child(1){width:78%}.kl-tool-code i:nth-child(2){width:62%}.kl-tool-code i:nth-child(3){width:88%}.kl-tool-code i:nth-child(4){width:48%}

.kl-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kl-policy-grid>div{padding:28px;border-top:3px solid #7265d5;border-radius:4px 4px 16px 16px;background:#f8f8fc}
.kl-policy-grid strong{display:inline-block;font-size:11px;letter-spacing:.16em;color:#796bd4}
.kl-policy-grid h3{font-size:18px;margin:12px 0 10px}
.kl-policy-grid p{font-size:13px;line-height:1.9;color:var(--muted)}

@media(max-width:1100px){
  .kl-pipeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .kl-pipeline>b{display:none}
  .kl-tool-spotlight{grid-template-columns:1fr;gap:34px}
  .kl-tool-visual{max-width:640px;width:100%}
}
@media(max-width:680px){
  .kl-home-article-grid,.kl-policy-grid{grid-template-columns:1fr}
  .kl-workflow-map{padding:28px 22px!important}
  .kl-pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kl-pipeline>div{min-height:112px}
  .kl-tool-spotlight{padding:30px 24px!important}
  .kl-tool-nodes{flex-wrap:wrap}
}
@media(max-width:420px){
  .kl-pipeline{grid-template-columns:1fr}
}

/* === KUROHA LAB. 2.6.0: editable home content === */
.kl-tool-spotlight{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);gap:44px;align-items:center;padding:48px!important;border:1px solid #dddfea;border-radius:24px;background:linear-gradient(135deg,#fcfcff,#f6f5ff);box-shadow:0 14px 40px rgba(31,34,67,.055)}
.kl-tool-copy h2{font-size:clamp(28px,3vw,40px);margin:12px 0 18px;line-height:1.32}
.kl-tool-copy>p:not(.kl-eyebrow){max-width:620px;color:var(--muted);font-size:14px;line-height:2}
.kl-tool-points{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px}
.kl-tool-points span{padding:7px 11px;border:1px solid #e2e1ef;border-radius:999px;background:#fff;color:#5a5575;font-size:11px;font-weight:750}
.kl-tool-visual{min-width:0}
.kl-tool-stack{display:grid;gap:14px}
.kl-tool-mini{padding:22px 24px;border:1px solid #e0e2ef;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(33,35,62,.05)}
.kl-tool-mini-featured{background:linear-gradient(135deg,#2d2d54,#5e52cd);border-color:#2f3160;box-shadow:0 18px 34px rgba(54,53,112,.22)}
.kl-tool-mini span{display:inline-block;font-size:11px;letter-spacing:.14em;font-weight:800;color:#776bd4;text-transform:uppercase}
.kl-tool-mini strong{display:block;margin:10px 0 8px;font-size:22px;line-height:1.35;color:#1b1f38}
.kl-tool-mini p{margin:0;color:#60667d;font-size:13px;line-height:1.9}
.kl-tool-mini-featured span{color:#d2cbff}
.kl-tool-mini-featured strong,.kl-tool-mini-featured p{color:#fff}
@media(max-width:1100px){
  .kl-tool-spotlight{grid-template-columns:1fr;gap:28px}
}
@media(max-width:680px){
  .kl-tool-spotlight{padding:30px 24px!important}
  .kl-tool-mini{padding:20px}
  .kl-tool-mini strong{font-size:20px}
}
.kl-tool-mini strong a{color:inherit;text-decoration:none}
.kl-tool-mini strong a:hover{color:inherit;opacity:.82}

/* === KUROHA LAB. 2.7.5: PICK UP thumbnails === */
.kl-home-article{padding:0;overflow:hidden;display:flex;flex-direction:column}
.kl-home-article:before{display:none}
.kl-home-article-thumb{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,#f1f0ff,#f8f8fc)}
.kl-home-article-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.kl-home-article-thumb:hover img{transform:scale(1.025)}
.kl-home-article-body{position:relative;padding:26px 30px 28px;display:flex;flex-direction:column;flex:1}
.kl-home-article-body:before{content:"";position:absolute;left:0;top:26px;bottom:26px;width:4px;border-radius:0 5px 5px 0;background:linear-gradient(#6e60dc,#9a83ff)}
.kl-home-article.no-thumbnail .kl-home-article-body{padding-top:30px}
.kl-home-article h3{margin-top:11px}
.kl-home-article .kl-textlink{margin-top:auto;padding-top:18px}
@media(max-width:680px){
  .kl-home-article-body{padding:23px 24px 25px}
}
