@charset "utf-8";

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;scroll-behavior:smooth;overflow-x:clip}
body{margin:0}
img,svg,video,canvas,iframe{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,figure,dd,blockquote{margin:0}
:where(ul,ol){padding:0}

:root{
  
  --kfj-wrap:1204px;
  --kfj-pad:clamp(16px,4vw,32px);

  --kfj-bg:#fbfcf6;
  --kfj-surface:#f3f5ea;
  --kfj-surface-2:#e9ecdb;
  --kfj-hairline:color-mix(in srgb, var(--kfj-ink) 16%, transparent);
  --kfj-hairline-2:color-mix(in srgb, var(--kfj-ink) 9%, transparent);

  --kfj-ink:#191b12;
  --kfj-ink-2:#3a3d2e;
  --kfj-ink-3:#5b5f49;

  --kfj-dark:#16180e;
  --kfj-dark-2:#20231a;
  --kfj-dark-ink:#eef1e0;
  --kfj-dark-ink-2:#b9bda7;
  --kfj-dark-line:color-mix(in srgb, #95b90f 38%, transparent);

  --kfj-accent:#cfff0a;                 
  --kfj-accent-2:#95b90f;               
  --kfj-accent-ink:#1a1f00;             
  --kfj-accent-link:#586a00;            
  --kfj-cta:#b9e407;                    
  --kfj-cta-ink:#181d00;
  --kfj-brand:#2c1d1c;                  
  --kfj-tp-star:#cfff0a;

  --kfj-step--1:.8rem;
  --kfj-step-0:1rem;
  --kfj-step-1:1.25rem;
  --kfj-step-2:1.563rem;
  --kfj-step-3:1.953rem;
  --kfj-step-4:2.441rem;
  --kfj-step-5:3.052rem;

  --kfj-space:clamp(40px,6vw,56px);
  --kfj-space-s:clamp(28px,4vw,40px);
  --kfj-gap:16px;

  --kfj-r:3px;
  --kfj-r-sm:2px;
  --kfj-r-card:3px 3px 0 0;             

  --kfj-shadow:0 1px 0 var(--kfj-hairline-2), 0 18px 38px -22px rgba(20,22,12,.5);
  --kfj-glow:0 0 0 1px color-mix(in srgb,var(--kfj-accent) 40%,transparent), 0 0 26px -2px color-mix(in srgb,var(--kfj-accent) 55%,transparent);

  --kfj-ease:cubic-bezier(.16,1,.3,1);
  --kfj-dur:.2s;
  --kfj-dur-s:.14s;
  --kfj-dur-l:.28s;

  --kfj-fdisplay:"Space Grotesk",system-ui,"Segoe UI",Arial,sans-serif;
  --kfj-ftext:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --kfj-fmono:ui-monospace,"Cascadia Code","SFMono-Regular","Source Code Pro",Menlo,Consolas,monospace;
}

body.kfj-body{
  font-family:var(--kfj-ftext);
  font-size:1rem;line-height:1.62;
  color:var(--kfj-ink);background:var(--kfj-bg);
  font-variant-numeric:tabular-nums lining-nums;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
::selection{background:color-mix(in srgb,var(--kfj-accent) 55%,transparent);color:var(--kfj-accent-ink)}
:focus-visible{outline:2px solid var(--kfj-accent-2);outline-offset:2px}
:where(input,select,textarea){accent-color:var(--kfj-accent-2)}

h1,h2,h3,h4{font-family:var(--kfj-fdisplay);line-height:1.12;color:var(--kfj-ink);font-weight:700;letter-spacing:-.015em;text-wrap:balance}

.kfj-wrap{width:100%;max-width:var(--kfj-wrap);margin-inline:auto;padding-inline:var(--kfj-pad)}
.kfj-main{width:100%;max-width:var(--kfj-wrap);margin-inline:auto;padding-inline:var(--kfj-pad);padding-block:clamp(28px,5vw,52px)}
.kfj-grid{display:grid;gap:var(--kfj-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.kfj-grid>*{min-width:0}

.kfj-skip{position:absolute;left:-999px;top:0;z-index:400;background:var(--kfj-accent);color:var(--kfj-accent-ink);padding:10px 18px;font-weight:800;text-decoration:none}
.kfj-skip:focus{left:8px;top:8px}

.kfj-head{position:sticky;top:0;z-index:100;background:var(--kfj-dark);color:var(--kfj-dark-ink);border-bottom:1px solid var(--kfj-dark-line)}
.kfj-head__bar{min-height:64px}
.kfj-logo{flex:0 0 auto;line-height:0}
.kfj-nav__list a{font-family:var(--kfj-ftext);text-decoration:none;color:var(--kfj-dark-ink);transition:color var(--kfj-dur) var(--kfj-ease)}
.kfj-nav__list a:hover,.kfj-nav__list a[aria-current="page"]{color:var(--kfj-accent)}
.kfj-burger{color:var(--kfj-dark-ink);border:1px solid var(--kfj-dark-line);background:none;border-radius:var(--kfj-r-sm);cursor:pointer}

.kfj-cta{
  position:relative;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--kfj-ftext);font-weight:800;font-size:.86rem;
  letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  border:0;border-top:3px solid color-mix(in srgb,var(--kfj-cta) 60%,#000);
  border-radius:var(--kfj-r);padding:14px 26px;min-height:48px;white-space:nowrap;cursor:pointer;
  background:var(--kfj-cta);color:var(--kfj-cta-ink);
  transition:transform var(--kfj-dur) var(--kfj-ease), background-color var(--kfj-dur) var(--kfj-ease);
}
.kfj-cta::before{                
  content:"";position:absolute;inset:-10px;z-index:-1;pointer-events:none;border-radius:inherit;
  background:radial-gradient(60% 120% at 50% 50%,color-mix(in srgb,var(--kfj-accent) 70%,transparent),transparent 72%);
  filter:blur(9px);opacity:.32;animation:kfj-pulse 3.6s var(--kfj-ease) infinite;
}
.kfj-cta:hover{transform:translateY(-1px);filter:brightness(1.05)}
.kfj-cta:hover::before{opacity:.6}
.kfj-cta:active{transform:translateY(1px)}
.kfj-cta--ghost{background:transparent;color:var(--kfj-accent-link);border-top-color:var(--kfj-accent-2);box-shadow:inset 0 0 0 1.5px var(--kfj-accent-2)}
.kfj-cta--ghost::before{opacity:0}
.kfj-cta--ghost:hover{background:var(--kfj-accent);color:var(--kfj-accent-ink)}

.kfj-ctarow{display:flex;justify-content:center;margin:1.5em 0}
.kfj-main>.kfj-cta,
.kfj-main :not(.kfj-hero__cta):not(.kfj-nav__cta)>.kfj-cta{display:flex;width:fit-content;margin:1.4em auto}

@keyframes kfj-pulse{0%,100%{opacity:.28}50%{opacity:.5}}

.kfj-hero{
  position:relative;isolation:isolate;
  background:var(--kfj-dark);color:var(--kfj-dark-ink);
  padding-block:clamp(32px,5vw,48px);
  border-bottom:1px solid var(--kfj-dark-line);
  overflow-x:clip;
}
.kfj-hero::before{                 
  content:"";position:absolute;inset:-12% 0 auto auto;width:62%;height:120%;z-index:-1;pointer-events:none;
  background:radial-gradient(58% 58% at 72% 30%,color-mix(in srgb,var(--kfj-accent) 26%,transparent),transparent 70%);
}
.kfj-hero__kicker{
  display:block;font-family:var(--kfj-fmono);font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.22em;color:var(--kfj-accent);
}
.kfj-hero__h1{color:var(--kfj-dark-ink);text-shadow:0 0 28px color-mix(in srgb,var(--kfj-accent) 22%,transparent)}
.kfj-hero__lead{color:var(--kfj-dark-ink-2);line-height:1.55}
.kfj-hero__media img{box-shadow:0 1px 0 var(--kfj-dark-line),0 26px 60px -28px rgba(0,0,0,.8);background:var(--kfj-dark-2)}
.kfj-hero__tile-k{font-family:var(--kfj-fmono);text-transform:uppercase;letter-spacing:.08em;color:var(--kfj-dark-ink-2)}
.kfj-hero__tile-v{font-family:var(--kfj-fdisplay);color:var(--kfj-accent);font-variant-numeric:tabular-nums}
.kfj-hero .kfj-cta{border-top-color:color-mix(in srgb,var(--kfj-cta) 55%,#000)}

.kfj-pagetitle{
  position:relative;background:var(--kfj-dark);color:var(--kfj-dark-ink);
  padding-block:clamp(40px,7vw,76px);border-bottom:1px solid var(--kfj-dark-line);overflow-x:clip;
}
.kfj-pagetitle::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(50% 80% at 50% 0%,color-mix(in srgb,var(--kfj-accent) 14%,transparent),transparent 72%)}
.kfj-pagetitle__h1{color:var(--kfj-dark-ink)}
.kfj-pagetitle__kicker{display:block;font-family:var(--kfj-fmono);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:700;color:var(--kfj-accent);margin-bottom:.6em}
.kfj-pagetitle__lead{color:var(--kfj-dark-ink-2)}

.kfj-crumbs{color:var(--kfj-ink-3)}
.kfj-crumbs__list{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.1em;margin:0;padding:0;font-family:var(--kfj-fmono)}
.kfj-crumbs a{text-decoration:none;color:var(--kfj-ink-3);transition:color var(--kfj-dur) var(--kfj-ease)}
.kfj-crumbs a:hover{color:var(--kfj-accent-link)}
.kfj-crumbs [aria-current]{color:var(--kfj-accent-link)}

.kfj-byline{display:flex;gap:12px;align-items:center;padding-block:12px}
.kfj-byline__photo{border-radius:var(--kfj-r);flex:0 0 auto;object-fit:cover}
.kfj-byline__names{font-weight:700}
.kfj-byline__role,.kfj-byline__dates{color:var(--kfj-ink-3);font-size:.84rem;font-weight:400}

.kfj-main>*+*{margin-top:1em}
.kfj-main h2{margin-top:1.7em}
.kfj-main h3{margin-top:1.3em}

.kfj-prose{max-width:none}
.kfj-prose>*+*{margin-top:1.05em}

.kfj-prose p{margin:0;line-height:1.72;color:var(--kfj-ink-2)}
.kfj-prose>p:first-of-type{font-size:1.06rem;color:var(--kfj-ink)}

.kfj-prose{counter-reset:kfj-sec}
.kfj-prose h2{
  counter-increment:kfj-sec;
  font-size:var(--kfj-step-3);line-height:1.14;margin:1.7em 0 .55em;
  padding-top:.65em;border-top:1px solid var(--kfj-hairline);
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.6em;
}
.kfj-prose h2::before{
  content:counter(kfj-sec,decimal-leading-zero);
  font-family:var(--kfj-fmono);font-size:.62em;font-weight:700;
  color:var(--kfj-accent-link);letter-spacing:.04em;
  border-bottom:3px solid var(--kfj-accent);padding-bottom:.1em;line-height:1;
}
.kfj-prose h3{font-size:var(--kfj-step-1);line-height:1.2;margin:1.3em 0 .4em;color:var(--kfj-ink)}
.kfj-prose h3::before{content:"";display:inline-block;width:.7em;height:.7em;margin-right:.5em;
  border-left:2px solid var(--kfj-accent-2);border-bottom:2px solid var(--kfj-accent-2)}

.kfj-prose a:not(.kfj-cta){
  color:var(--kfj-accent-link);text-decoration:none;font-weight:600;
  background-image:linear-gradient(var(--kfj-accent-2),var(--kfj-accent-2));
  background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat;
  text-underline-offset:2px;transition:background-size var(--kfj-dur) var(--kfj-ease), color var(--kfj-dur) var(--kfj-ease);
}
.kfj-prose a:not(.kfj-cta):hover{background-size:100% 2px;color:var(--kfj-ink)}
.kfj-prose strong{font-weight:800;color:var(--kfj-ink)}

.kfj-prose ul,.kfj-prose ol{margin:1em 0;padding-left:0;list-style:none}
.kfj-prose ul li,.kfj-prose ol li{position:relative;padding-left:1.7em;margin:.5em 0;line-height:1.6;color:var(--kfj-ink-2)}
.kfj-prose ul li::before{content:"";position:absolute;left:.35em;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--kfj-accent-2)}
.kfj-prose ol{counter-reset:kfj-li}
.kfj-prose ol li{counter-increment:kfj-li}
.kfj-prose ol li::before{content:counter(kfj-li);position:absolute;left:0;top:0;width:1.3em;
  font-family:var(--kfj-fmono);font-size:.85em;font-weight:700;color:var(--kfj-accent-link)}
.kfj-prose li>strong:first-child{color:var(--kfj-ink);font-weight:800}

/* blockquote */
.kfj-prose blockquote{
  margin:1.5em 0;padding:.8em 1.2em;border-left:4px solid var(--kfj-accent);
  background:color-mix(in srgb,var(--kfj-accent) 7%,transparent);
  font-size:1.05rem;color:var(--kfj-ink);font-style:normal;line-height:1.6;
}
.kfj-prose blockquote p{color:inherit}

.kfj-callout{
  position:relative;margin:1.6em 0;padding:1em 1.2em 1em 3.2em;
  border:1px solid var(--kfj-hairline);border-left:4px solid var(--kfj-accent);
  background:var(--kfj-surface);border-radius:0 var(--kfj-r) var(--kfj-r) 0;
  color:var(--kfj-ink-2);line-height:1.6;
}
.kfj-callout::before{
  content:"!";position:absolute;left:1em;top:1em;
  display:inline-flex;align-items:center;justify-content:center;
  width:1.5em;height:1.5em;border-radius:50%;
  background:var(--kfj-accent);color:var(--kfj-accent-ink);
  font-family:var(--kfj-fdisplay);font-weight:800;font-size:.9em;
}
.kfj-callout>:first-child{margin-top:0}
.kfj-callout>:last-child{margin-bottom:0}
.kfj-callout strong{color:var(--kfj-ink)}

.kfj-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.6em 0}
.kfj-prose table,.kfj-main table,table{
  width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums lining-nums;
  font-size:.95rem;background:var(--kfj-bg);
}
.kfj-prose caption,table caption{caption-side:top;text-align:left;font-family:var(--kfj-fmono);
  font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--kfj-ink-3);padding:0 0 .6em}
.kfj-prose th,.kfj-prose td,table th,table td{
  padding:12px 14px;text-align:left;border:0;border-bottom:1px solid var(--kfj-hairline-2);
  vertical-align:top;
}
.kfj-prose thead th,table thead th{
  font-family:var(--kfj-fdisplay);font-weight:700;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.05em;color:var(--kfj-ink);
  background:var(--kfj-surface-2);border-bottom:2px solid var(--kfj-accent-2);
}
.kfj-prose tbody tr:hover td,table tbody tr:hover td{background:color-mix(in srgb,var(--kfj-accent) 6%,transparent)}
.kfj-prose tbody td:first-child,table tbody td:first-child{font-weight:700;color:var(--kfj-ink)}

.kfj-doc{max-width:none}
.kfj-doc p,.kfj-authorpage p{max-width:none}
.kfj-authorpage__photo{border-radius:var(--kfj-r);width:220px;height:auto;aspect-ratio:3/4;object-fit:cover;float:left;margin:.3em 1.6em 1em 0}
@media(max-width:640px){.kfj-authorpage__photo{float:none;width:160px;margin:0 0 1.2em}}

.kfj-slots{padding-block:var(--kfj-space-s)}
.kfj-slots__h{font-family:var(--kfj-fdisplay);font-size:var(--kfj-step-2);margin-bottom:.5em}
.kfj-slots__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:14px}
.kfj-slots__grid>*{min-width:0}
.kfj-slot{
  display:block;text-decoration:none;color:inherit;
  background:var(--kfj-surface);border:1px solid var(--kfj-hairline-2);
  border-top:1px solid var(--kfj-hairline);overflow:hidden;
  transition:transform var(--kfj-dur) var(--kfj-ease), border-color var(--kfj-dur) var(--kfj-ease);
}
.kfj-slot:hover{transform:translateY(-3px);border-color:var(--kfj-accent-2);box-shadow:0 14px 30px -18px rgba(20,22,12,.6)}
.kfj-slot__img{display:block;width:100%;aspect-ratio:457/512;object-fit:contain}
.kfj-slot__name{display:block;padding:8px 10px;font-weight:700;font-size:.9rem;color:var(--kfj-ink)}

.kfj-cookie{position:fixed;left:0;right:0;bottom:0;z-index:300;background:var(--kfj-dark);color:var(--kfj-dark-ink);border-top:2px solid var(--kfj-accent);box-shadow:0 -10px 30px -16px rgba(0,0,0,.6)}
.kfj-cookie__inner{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:14px}
.kfj-cookie__txt{font-size:.86rem;line-height:1.5;margin:0;color:var(--kfj-dark-ink-2);min-width:0;flex:1 1 320px}
.kfj-cookie__txt a{color:var(--kfj-accent)}
.kfj-cookie__btns{display:flex;gap:10px;flex:0 0 auto}
.kfj-cookie__btn{border:1px solid var(--kfj-dark-line);background:transparent;color:var(--kfj-dark-ink);padding:10px 16px;border-radius:var(--kfj-r);cursor:pointer;font-weight:700;font-size:.84rem;min-height:44px;transition:background-color var(--kfj-dur) var(--kfj-ease), color var(--kfj-dur) var(--kfj-ease)}
.kfj-cookie__btn:hover{border-color:var(--kfj-accent)}
.kfj-cookie__btn--ok{background:var(--kfj-cta);color:var(--kfj-cta-ink);border-color:var(--kfj-cta)}
.kfj-cookie__btn--ok:hover{filter:brightness(1.05)}

/* ---------- 404 ---------- */
.kfj-404__code{font-family:var(--kfj-fmono);font-size:clamp(3rem,12vw,6rem);font-weight:700;color:var(--kfj-accent-link);letter-spacing:-.02em}

.kfj-related{margin:2em 0}
.kfj-related__h{font-family:var(--kfj-fmono);font-size:.92rem;text-transform:uppercase;letter-spacing:.06em}
.kfj-related a{color:var(--kfj-accent-link);text-decoration:none}
.kfj-related a:hover{color:var(--kfj-ink)}

@property --kfj-fxang{syntax:'<angle>';inherits:false;initial-value:120deg}
.kfj-cta{
  background:linear-gradient(var(--kfj-fxang),var(--kfj-cta),color-mix(in srgb,var(--kfj-cta) 72%,#e6ff5e));
  transition:transform var(--kfj-dur) var(--kfj-ease), --kfj-fxang var(--kfj-dur-l) var(--kfj-ease);
}
.kfj-cta:hover{--kfj-fxang:215deg}

@supports (view-transition-name:none){
  @view-transition{navigation:auto}
}

@media(max-width:900px){
  .kfj-main{padding-block:clamp(22px,5vw,40px)}
  .kfj-prose h2{font-size:var(--kfj-step-2)}
  .kfj-prose>p:first-of-type{font-size:1.02rem}
}
@media(max-width:640px){
  body.kfj-body{font-size:16px}
  .kfj-prose h2{grid-template-columns:minmax(0,1fr);gap:.15em}
  .kfj-prose h2::before{justify-self:start;font-size:.85rem}
  .kfj-callout{padding:.9em 1em .9em 1em}
  .kfj-callout::before{position:static;display:inline-flex;margin-bottom:.4em}
  .kfj-prose th,.kfj-prose td,table th,table td{padding:10px 11px}
  .kfj-cookie__btns{width:100%}
  .kfj-cookie__btn{flex:1 1 auto}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .kfj-cta::before{animation:none;opacity:.34}
}
html,body{overflow-x:hidden}

/* container-guarantee */
.kfj-prose{max-width:var(--kfj-wrap,1200px);margin-inline:auto;padding-inline:clamp(16px,4vw,32px);box-sizing:border-box}
.kfj-main .kfj-prose,.kfj-main>.kfj-wrap{max-width:none;padding-inline:0;margin-inline:0}
