.portfolio-orbit .case-card { animation:none!important; will-change:auto; }

.portfolio-orbit .generated-case { position:relative; width:100%; aspect-ratio:4/3; overflow:visible; filter:none; }
.portfolio-orbit .generated-case>img { width:100%; height:100%; display:block; object-fit:contain; }

@media (min-width:901px) {
  .portfolio-orbit { min-height:760px; padding-bottom:58px; }
  .portfolio-orbit .case-grid { width:min(1060px,100%); min-height:560px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 42px; align-items:center; }
  .portfolio-orbit .case-card { min-height:250px; }
  .portfolio-orbit .mini-case { max-width:310px; }
}

.knowledge-dock { width:min(560px,calc(100% - 48px)); margin:18px auto 84px; padding:0; overflow:hidden; display:block; border:3px solid #eceae3; border-right-color:#34332f; border-bottom-color:#34332f; border-radius:0; background:#d7d4cc; color:#111318; content-visibility:visible; contain-intrinsic-size:none; }
.knowledge-dock::before,.knowledge-dock::after { display:none; content:none; animation:none!important; }
.knowledge-dock>* { position:relative; z-index:1; }
.knowledge-dock__bar { min-height:31px; padding:0 5px 0 9px; display:flex; align-items:center; gap:3px; background:#083e89; color:#fff; font:700 12px Arial,Helvetica,sans-serif; }
.knowledge-dock__bar span { margin-right:auto; }
.knowledge-dock__bar i { width:21px; height:20px; display:grid; place-items:center; border:2px solid #fff; border-right-color:#4d4b46; border-bottom-color:#4d4b46; background:#c6c3bb; color:#111; font-style:normal; }
.knowledge-dock__shortcut { min-height:96px; padding:14px 16px; display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:14px; background:#fffef8; color:#111318; transition:background-color 140ms ease; }
.knowledge-dock__shortcut:hover,.knowledge-dock__shortcut:focus-visible { background:#eaf1ff; outline:3px solid #083e89; outline-offset:-6px; }
.knowledge-dock__shortcut:active { background:#dce9ff; }
.knowledge-dock__shortcut>span:nth-child(2) { min-width:0; max-width:none; margin:0; display:grid; gap:6px; color:#111318; }
.knowledge-dock__shortcut b { font:900 clamp(20px,2.2vw,26px)/1 Arial,Helvetica,sans-serif; letter-spacing:-.045em; }
.knowledge-dock__shortcut small { color:#555d67; font:13px/1.35 Arial,Helvetica,sans-serif; }
.knowledge-dock__shortcut strong { min-height:38px; padding:0 14px; display:flex; align-items:center; border:2px solid #fff; border-right-color:#514f49; border-bottom-color:#514f49; background:#f4c934; font:800 13px Arial,Helvetica,sans-serif; }
.knowledge-dock__icon { width:48px; height:48px; position:relative; display:block; border:2px solid #fff; border-right-color:#4b4943; border-bottom-color:#4b4943; background:#d7d4cc; }
.knowledge-dock__icon::before { content:""; position:absolute; inset:7px; border:2px solid #2c3038; background:#fffef8; }
.knowledge-dock__icon i { position:absolute; left:14px; right:9px; height:3px; background:#083e89; }
.knowledge-dock__icon i:nth-child(1) { top:15px; }
.knowledge-dock__icon i:nth-child(2) { top:23px; }
.knowledge-dock__icon i:nth-child(3) { top:31px; width:15px; }

body.is-route-leaving { overflow:hidden; }
.fake-route-loader { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; padding:24px; visibility:hidden; opacity:0; background:rgba(2,3,10,.94); transition:opacity 120ms ease-out; }
.fake-route-loader.is-visible { visibility:visible; opacity:1; }
.fake-route-loader__window { width:min(430px,100%); border:3px solid #f5f3ec; border-right-color:#272621; border-bottom-color:#272621; background:#c6c3bb; color:#111318; font-family:Arial,Helvetica,sans-serif; }
.fake-route-loader__bar { height:31px; padding:0 7px 0 10px; display:flex; align-items:center; justify-content:space-between; background:#083e89; color:#fff; font-size:12px; font-weight:800; letter-spacing:.04em; }
.fake-route-loader__bar span:last-child { color:#111; background:#c6c3bb; padding:2px 5px; border:2px solid #fff; border-right-color:#4d4b46; border-bottom-color:#4d4b46; letter-spacing:.12em; }
.fake-route-loader__body { min-height:190px; padding:26px 28px 24px; display:grid; grid-template-columns:54px 1fr; align-content:center; gap:6px 16px; background:#fffef8; }
.fake-route-loader__mark { grid-row:1/3; width:54px; height:54px; display:grid; place-items:center; background:#0b1020; color:#f4c934; font-size:18px; font-weight:900; }
.fake-route-loader__body strong { align-self:end; font-size:31px; line-height:.95; letter-spacing:-.055em; }
.fake-route-loader__body small { color:#555d67; font-size:13px; }
.fake-route-loader__progress { grid-column:1/-1; height:18px; margin-top:18px; padding:2px; overflow:hidden; border:2px solid #6f6c65; background:#fff; }
.fake-route-loader__progress i { width:100%; height:100%; display:block; background:#083e89; transform:translateX(-104%); animation:fake-lab-load 820ms 100ms linear forwards; }
@keyframes fake-lab-load { to { transform:translateX(0); } }

@media (max-width:900px) {
  .portfolio-orbit .case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-orbit .case-card:nth-child(5),.portfolio-orbit .case-card:nth-child(6) { grid-column:auto; }
}

@media (max-width:560px) {
  .portfolio-orbit .case-grid { grid-template-columns:1fr; gap:30px; }
  .portfolio-orbit .case-card { min-height:205px; }
  .portfolio-orbit .generated-case { max-width:285px; }
  .knowledge-dock { width:calc(100% - 40px); margin:18px auto 58px; }
  .knowledge-dock__shortcut { min-height:92px; padding:13px; grid-template-columns:44px minmax(0,1fr); gap:12px; }
  .knowledge-dock__icon { width:44px; height:44px; }
  .knowledge-dock__icon::before { inset:7px; }
  .knowledge-dock__icon i { left:13px; right:9px; }
  .knowledge-dock__icon i:nth-child(1) { top:14px; }
  .knowledge-dock__icon i:nth-child(2) { top:21px; }
  .knowledge-dock__icon i:nth-child(3) { top:28px; }
  .knowledge-dock__shortcut b { font-size:20px; }
  .knowledge-dock__shortcut small { font-size:12px; }
  .knowledge-dock__shortcut strong { grid-column:1/-1; min-height:40px; justify-content:center; }
}

@media (prefers-reduced-motion:reduce) {
  * { transition-duration:.01ms!important; }
  .fake-route-loader__progress i { animation-duration:120ms; animation-delay:0ms; }
}
