.koto-case { background:#f4f3f1; }
.koto-case > .hero-wrapper,
.koto-case > main:not(.k2-main),
.koto-case > .back-to-top { display:none !important; }
.koto-v2 { --red:#d71920; --ink:#161616; --muted:#64615d; --line:#d9d6d1; --paper:#f4f3f1; --surface:#fff; --dark:#171717; --shell:min(1200px,calc(100% - 48px)); color:var(--ink); font-family:Outfit,sans-serif; }
.koto-v2 *, .koto-v2 *::before, .koto-v2 *::after { box-sizing:border-box; }
.koto-v2 .k2-main { min-height:0; padding:0; background:var(--paper); }
.k2-shell { width:var(--shell); margin-inline:auto; }
.k2-hero { position:relative; min-height:700px; padding:116px 0 56px; overflow:hidden; background:radial-gradient(circle at 82% 22%,rgba(215,25,32,.34),transparent 30%),radial-gradient(circle at 68% 76%,rgba(255,255,255,.08),transparent 28%),linear-gradient(145deg,#090909,#1c1b1a); color:#fff; }
.k2-hero::before { position:absolute; right:-10%; bottom:16%; width:58%; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent); content:""; transform:rotate(-12deg); }
.k2-hero::after { position:absolute; right:-7%; bottom:10%; width:52%; height:3px; border-radius:999px; background:linear-gradient(90deg,transparent,var(--red) 34%,#ff6a6f 58%,transparent); box-shadow:0 0 28px rgba(215,25,32,.65); content:""; transform:rotate(-12deg); }
.k2-hero__grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(520px,1.22fr); gap:clamp(32px,5vw,72px); align-items:center; }
.k2-hero__copy { position:relative; z-index:2; }
.k2-kicker { margin:0 0 18px; color:var(--red)!important; font-size:13px!important; font-weight:600; letter-spacing:.09em; text-transform:uppercase; }
.k2-hero h1 { max-width:10ch; margin:0; color:#fff; font-size:clamp(48px,5.2vw,72px); font-weight:600; line-height:.98; letter-spacing:-.045em; }
.k2-hero__copy>p:not(.k2-kicker) { max-width:31rem; margin:26px 0 0; color:#c8c5c1; font-size:clamp(18px,1.5vw,21px); line-height:1.5; }
.k2-button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; margin-top:30px; padding:0 24px; border:1px solid #fff; border-radius:999px; background:#fff; color:var(--ink); font-size:15px; font-weight:600; text-decoration:none; transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease; }
.k2-button:hover { background:var(--red); border-color:var(--red); color:#fff; transform:translateY(-2px); }
.k2-button:active { transform:scale(.98); }
.k2-hero__visual { position:relative; z-index:1; margin:0; }
.k2-hero__visual::before { position:absolute; inset:12% 5% 8%; border:1px solid rgba(255,255,255,.13); border-radius:42% 58% 54% 46% / 56% 42% 58% 44%; background:rgba(255,255,255,.035); content:""; filter:blur(.2px); }
.k2-hero__visual img { position:relative; display:block; width:100%; height:auto; filter:drop-shadow(0 30px 42px rgba(0,0,0,.42)); }
.k2-summary { border-bottom:1px solid var(--line); background:#fff; }
.k2-proof { display:grid; grid-template-columns:repeat(3,1fr); }
.k2-proof>div { position:relative; min-height:146px; padding:34px 30px; border-left:1px solid var(--line); }
.k2-proof>div:first-child { border-left:0; padding-left:0; }
.k2-proof strong { display:block; font-size:clamp(38px,4vw,56px); line-height:1; letter-spacing:-.04em; }
.k2-proof span { display:block; max-width:22ch; margin-top:12px; color:var(--muted); font-size:15px; line-height:1.4; }
.k2-snapshot { display:grid; grid-template-columns:.65fr 1.55fr 1fr 1fr; gap:28px; padding:30px 0 34px; border-top:1px solid var(--line); }
.k2-snapshot span { display:block; margin-bottom:8px; color:#817d78; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.k2-snapshot strong { font-size:14px; line-height:1.45; }
.k2-chapters { position:fixed; inset:0 0 auto; z-index:9000; border-bottom:1px solid var(--line); background:rgba(255,255,255,.94); backdrop-filter:blur(16px); opacity:0; pointer-events:none; transform:translateY(-110%); transition:opacity .18s ease,transform .24s cubic-bezier(.22,1,.36,1); }
.k2-chapters--visible { opacity:1; pointer-events:auto; transform:none; }
.k2-chapters__inner { display:flex; min-height:66px; align-items:center; justify-content:center; gap:clamp(20px,3vw,40px); }
.k2-chapters a { color:var(--muted); font-size:14px; font-weight:500; text-decoration:none; }
.k2-chapters a::after { display:block; width:100%; height:2px; margin-top:5px; border-radius:2px; background:var(--red); content:""; opacity:0; transform:scaleX(.3); transition:.2s ease; }
.k2-chapters a:hover,.k2-chapters a.is-active { color:var(--ink); }
.k2-chapters a:hover::after,.k2-chapters a.is-active::after { opacity:1; transform:scaleX(1); }
.k2-section { margin:0!important; padding:clamp(86px,9vw,128px) 0; scroll-margin-top:76px; }
.k2-section--problem,.k2-section--iteration,.k2-section--appendix { background:#fff; }
.k2-intro { max-width:820px; margin-bottom:clamp(44px,6vw,72px); }
.k2-intro h2,.k2-decision h2 { max-width:16ch; margin:0 0 28px; font-size:clamp(40px,4.7vw,62px); font-weight:500; line-height:1.02; letter-spacing:-.035em; }
.k2-intro>p:not(.k2-kicker) { max-width:68ch; margin:0; color:var(--muted); font-size:18px; line-height:1.65; }
.k2-problem-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.7fr); gap:70px; align-items:center; }
.k2-callouts { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.k2-callouts li { display:grid; grid-template-columns:36px 1fr; gap:18px; align-items:center; padding:25px 0; border-bottom:1px solid var(--line); }
.k2-callouts li>span { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; background:var(--red); color:#fff; font-size:13px; font-weight:600; }
.k2-callouts strong { font-size:18px; }
.k2-callouts p { margin:5px 0 0; color:var(--muted); font-size:15px; line-height:1.5; }
.k2-media { margin:0; }
.k2-media img { display:block; width:100%; height:auto; transition:transform .32s cubic-bezier(.22,1,.36,1),filter .28s ease; }
.k2-media:hover img { transform:translateY(-3px); }
.k2-media figcaption { padding-top:16px; color:var(--muted); font-size:14px; line-height:1.5; text-align:center; }
.k2-problem-art { position:relative; overflow:visible; }
.k2-problem-art::after { display:none; }
.k2-problem-art img { position:relative; z-index:1; max-width:400px; margin:auto; }
.k2-thesis { max-width:960px; margin:clamp(86px,9vw,126px) 0 0; padding-left:clamp(24px,4vw,50px); border-left:4px solid var(--red); font-size:clamp(30px,3.2vw,44px); font-weight:500; line-height:1.18; letter-spacing:-.025em; }
.k2-principles { display:grid; grid-template-columns:repeat(3,1fr); border-top:2px solid var(--red); }
.k2-principles article { min-height:220px; padding:28px 28px 24px 0; border-right:1px solid var(--line); transition:background .2s ease,transform .25s ease; }
.k2-principles article:not(:first-child) { padding-left:28px; }
.k2-principles article:last-child { border-right:0; }
.k2-principles article:hover { background:rgba(215,25,32,.04); transform:translateY(-4px); }
.k2-principles span { color:var(--red); font-size:13px; font-weight:600; }
.k2-principles h3 { margin:24px 0 12px; font-size:24px; }
.k2-principles p { margin:0; color:var(--muted); font-size:15px; line-height:1.55; }
.k2-discovery { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:76px; }
.k2-discovery img { aspect-ratio:1.55/1; object-fit:contain; background:#fff; }
.k2-section--decision { background:var(--dark); color:#fff; }
.k2-decision { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(60px,9vw,126px); }
.k2-decision h2 { color:#fff; }
.k2-decision__line { max-width:28ch; margin:40px 0 0; color:#f46a6f; font-size:20px; font-weight:600; line-height:1.45; }
.k2-decision dl { margin:0; }
.k2-decision dl>div { padding:24px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.k2-decision dl>div:first-child { padding-top:0; }
.k2-decision dt { margin-bottom:8px; color:#f46a6f; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.k2-decision dd { margin:0; color:#eee; font-size:19px; line-height:1.5; }
.k2-moment { display:grid; grid-template-columns:minmax(270px,.7fr) minmax(0,1.6fr); gap:clamp(38px,6vw,82px); align-items:center; margin-top:96px; }
.k2-moment--reverse { grid-template-columns:minmax(0,1.6fr) minmax(270px,.7fr); }
.k2-moment--reverse .k2-moment__copy { grid-column:2; }
.k2-moment--reverse .k2-media { grid-column:1; grid-row:1; }
.k2-moment__copy>span { color:var(--red); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.k2-moment__copy h3 { margin:18px 0; font-size:clamp(30px,3vw,43px); font-weight:500; line-height:1.08; letter-spacing:-.025em; }
.k2-moment__copy p { color:var(--muted); font-size:17px; line-height:1.62; }
.k2-moment__copy ul { display:grid; gap:9px; padding-left:20px; color:var(--muted); font-size:15px; line-height:1.5; }
.k2-moment>.k2-media { overflow:visible; padding:0; border-radius:0; background:transparent; }
.k2-moment>.k2-media figcaption { color:var(--muted); }
.k2-section--iteration img { filter:drop-shadow(0 12px 24px rgba(73,54,45,.1)); }
.k2-section--impact { position:relative; overflow:hidden; background:#eeeae6; }
.k2-section--impact::before { position:absolute; top:8%; right:-14%; width:46%; aspect-ratio:1; border:1px solid rgba(215,25,32,.14); border-radius:50%; box-shadow:0 0 0 38px rgba(215,25,32,.035),0 0 0 76px rgba(215,25,32,.02); content:""; }
.k2-results { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid #c9c4be; }
.k2-results article { padding:38px 26px; border-right:1px solid #c9c4be; transition:background .2s ease; }
.k2-results article:first-child { padding-left:0; }
.k2-results article:last-child { border-right:0; }
.k2-results article:hover { background:rgba(255,255,255,.45); }
.k2-results strong { display:block; color:var(--red); font-size:clamp(34px,3.7vw,52px); line-height:1; letter-spacing:-.035em; }
.k2-results h3 { margin:18px 0 8px; font-size:18px; }
.k2-results p { margin:0; color:var(--muted); font-size:14px; line-height:1.5; }
.k2-reflection { display:grid; grid-template-columns:1fr 1fr; gap:64px; margin-top:90px; }
.k2-reflection>div { padding-top:22px; border-top:2px solid var(--red); }
.k2-reflection h3 { margin:0 0 18px; font-size:24px; }
.k2-reflection p { margin:0; color:var(--muted); font-size:17px; line-height:1.65; }
.k2-quote-section { position:relative; margin:0!important; padding:clamp(110px,12vw,176px) 0; overflow:hidden; background:#151515; color:#fff; }
.k2-quote-section::after { position:absolute; right:-5%; bottom:16%; width:62%; height:3px; border-radius:99px; background:linear-gradient(90deg,transparent,var(--red),transparent); box-shadow:0 0 32px rgba(215,25,32,.72); content:""; transform:rotate(-8deg); }
.k2-closing { position:relative; z-index:1; max-width:1100px; margin:0 auto; padding:0; border:0; background:transparent; color:#fff; font-size:clamp(40px,6vw,76px); font-weight:500; line-height:1; text-align:center; letter-spacing:-.045em; }
.k2-appendix { border-top:1px solid var(--line); }
.k2-appendix details { border-bottom:1px solid var(--line); }
.k2-appendix summary { padding:24px 4px; font-size:18px; font-weight:600; cursor:pointer; transition:color .18s ease,padding-left .22s ease; }
.k2-appendix summary:hover,.k2-appendix details[open] summary { padding-left:12px; color:var(--red); }
.k2-appendix__grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:4px 0 44px; }
.k2-appendix__grid img { display:block; width:100%; height:auto; }
@media (prefers-reduced-motion:no-preference) {
  .k2-hero__copy,.k2-hero__visual { animation:k2-enter .65s cubic-bezier(.22,1,.36,1) both; }
  .k2-hero__visual { animation-delay:.1s; }
  .k2-motion-ready .k2-reveal { opacity:0; transform:translateY(20px); transition:opacity .56s ease,transform .62s cubic-bezier(.22,1,.36,1); }
  .k2-motion-ready .k2-reveal.is-visible { opacity:1; transform:none; }
  @keyframes k2-enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
}
@media (max-width:1023px) {
  .k2-hero { min-height:0; }
  .k2-hero__grid { grid-template-columns:.85fr 1.15fr; gap:28px; }
  .k2-problem-grid,.k2-moment,.k2-moment--reverse { grid-template-columns:1fr; }
  .k2-moment--reverse .k2-moment__copy,.k2-moment--reverse .k2-media { grid-column:auto; grid-row:auto; }
  .k2-results { grid-template-columns:1fr 1fr; }
  .k2-results article:nth-child(2) { border-right:0; }
  .k2-results article:nth-child(-n+2) { border-bottom:1px solid #c9c4be; }
}
@media (max-width:767px) {
  .koto-v2 { --shell:min(1200px,calc(100% - 32px)); }
  .k2-hero { padding:96px 0 46px; }
  .k2-hero__grid { grid-template-columns:1fr; gap:34px; }
  .k2-hero h1 { font-size:clamp(42px,12vw,54px); }
  .k2-proof { grid-template-columns:1fr 1fr; }
  .k2-proof>div { min-height:128px; padding:24px 18px; border-bottom:1px solid var(--line); }
  .k2-proof>div:nth-child(3) { grid-column:1/-1; border-left:0; }
  .k2-snapshot { grid-template-columns:1fr; gap:24px; }
  .k2-chapters__inner { justify-content:flex-start; gap:24px; overflow-x:auto; }
  .k2-section { padding:76px 0; }
  .k2-intro h2,.k2-decision h2 { font-size:38px; }
  .k2-principles,.k2-discovery,.k2-decision,.k2-results,.k2-reflection,.k2-appendix__grid { grid-template-columns:1fr; }
  .k2-principles article,.k2-principles article:not(:first-child) { min-height:0; padding:26px 0; border-right:0; border-bottom:1px solid var(--line); }
  .k2-results article,.k2-results article:first-child { padding:28px 0; border-right:0; border-bottom:1px solid #c9c4be; }
  .k2-thesis { margin-top:76px; }
  .k2-quote-section { padding:96px 0; }
}
@media (prefers-reduced-motion:reduce) { .koto-v2 *,.koto-v2 *::before,.koto-v2 *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }
