/* v7.2 original vector Sora menu characters. Random click tricks; full-width conveyor and sidebar background rail. */
@media (min-width:901px) {
  html[data-theme] body header.top {isolation:isolate;overflow:hidden;}
  /* The old 30px header padding left a visible empty strip on the right. */
  html[data-theme] body header.top.sora-kawaii-ready {padding-right:0!important;}
  html[data-theme] body header.top>a.brand {position:relative;z-index:4;flex:0 0 auto;}
  html[data-theme] body header.top .sora-kawaii-scene {
    --belt-width:1000px;position:relative!important;flex:1 1 auto!important;
    align-self:stretch;height:auto!important;min-width:0;overflow:hidden!important;
    isolation:isolate;background:transparent;max-width:none!important;margin:0!important;
    pointer-events:none;
  }
  html[data-theme] body header.top .sora-kawaii-backdrop {
    position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(236,129,175,.035) 30%,rgba(236,129,175,.055) 80%,transparent);
  }
  html[data-theme="light"] body header.top .sora-kawaii-backdrop {
    background:linear-gradient(90deg,transparent,rgba(220,89,151,.02) 30%,rgba(220,89,151,.06) 80%,transparent);
  }
  html[data-theme] body header.top .sora-kawaii-ambient-dots {
    position:absolute;inset:0;opacity:.17;background-image:radial-gradient(circle,#EF9BC1 1px,transparent 1.8px);background-size:116px 40px;
  }
  html[data-theme] body header.top .sora-kawaii-conveyor {
    position:absolute;bottom:0;left:0;right:0;height:13px;border-top:2px solid rgba(237,144,184,.55);
    background:linear-gradient(180deg,rgba(209,100,149,.32),rgba(100,66,95,.13));
    box-shadow:inset 0 2px 3px rgba(255,239,243,.07),0 -3px 8px rgba(242,141,186,.13);
  }
  html[data-theme] body header.top .sora-kawaii-belt-stripes {
    height:100%;width:100%;opacity:.75;
    background-image:repeating-linear-gradient(95deg,transparent 0 43px,rgba(255,216,234,.37) 43px 45px,transparent 45px 80px);
    background-size:80px 100%;animation:sora-kawaii-belt-shift 4s linear infinite;
  }
  html[data-theme] body header.top .sora-kawaii-train {
    position:absolute;left:0;bottom:8px;display:flex;width:max-content;height:43px;align-items:end;
    animation:sora-kawaii-ride 42s linear infinite;will-change:transform;
    pointer-events:none;
  }
  html[data-theme] body header.top .sora-kawaii-group {
    flex:0 0 var(--belt-width);width:var(--belt-width);height:43px;display:flex;align-items:end;justify-content:space-around;
  }
  html[data-theme] body header.top .sora-kawaii-sushi {
    all:unset;box-sizing:border-box;display:block;position:relative;width:64px;height:44px;flex:0 0 64px;
    transform-origin:center 90%;animation:sora-kawaii-bob 1.4s ease-in-out var(--delay,0s) infinite;
    filter:drop-shadow(0 1px 1px rgba(10,8,16,.18));cursor:pointer;
    pointer-events:auto;perspective:110px;z-index:2;
  }
  html[data-theme] body header.top .sora-kawaii-sushi:hover {filter:drop-shadow(0 0 5px rgba(249,150,193,.64));}
  html[data-theme] body header.top .sora-kawaii-sushi:focus-visible {outline:2px solid #F1A0C2;outline-offset:2px;border-radius:9px;}
  html[data-theme] body header.top .sora-kawaii-flipper {
    position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;
    transition:transform .5s cubic-bezier(.22,.82,.3,1.14);
  }
  html[data-theme] body header.top .sora-kawaii-sushi.is-playing .sora-kawaii-flipper {
    animation-name:var(--sora-trick-name,sora-trick-pop);
    animation-duration:var(--sora-trick-duration,1100ms);
    animation-timing-function:cubic-bezier(.25,.7,.25,1);
    animation-fill-mode:both;
    animation-iteration-count:1;
    transition:none;
  }
  html[data-theme] body header.top .sora-kawaii-front,
  html[data-theme] body header.top .sora-kawaii-back {position:absolute;inset:0;backface-visibility:hidden;display:block;}
  html[data-theme] body header.top .sora-kawaii-back {transform:rotateY(180deg)}
  html[data-theme] body header.top .sora-kawaii-front svg,
  html[data-theme] body header.top .sora-kawaii-back svg,
  html[data-theme] body header.top .sora-kawaii-dipper svg{display:block;width:100%;height:100%;overflow:visible;}
  html[data-theme] body header.top .sora-kawaii-dip {
    position:absolute;right:19px;bottom:4px;width:62px;height:38px;z-index:5;
    filter:drop-shadow(0 2px 3px rgba(11,9,22,.18));pointer-events:none;
  }
  html[data-theme] body header.top .sora-kawaii-bowl {position:absolute;left:0;bottom:-1px;width:62px;height:27px;z-index:3;}
  html[data-theme] body header.top .sora-kawaii-dipper {position:absolute;width:27px;height:24px;left:18px;top:-9px;z-index:2;animation:sora-kawaii-soy-dip 8s ease-in-out infinite;}
  html[data-theme] body header.top .sora-kawaii-ripple {position:absolute;left:24px;bottom:14px;width:14px;height:5px;border:1px solid rgba(255,216,225,.8);border-radius:50%;z-index:4;animation:sora-kawaii-soy-ripple 8s linear infinite;}
  html[data-theme] body header.top .sora-kawaii-chopsticks {position:absolute;width:64px;height:44px;right:5px;top:-10px;z-index:6;transform-origin:85% 5%;animation:sora-kawaii-chop 8s ease-in-out infinite;}
  html[data-theme] body header.top .sora-kawaii-chopsticks svg{width:100%;height:100%;display:block;}
  html[data-theme] body header.top .sora-kawaii-petals {position:absolute;inset:0;pointer-events:none;}
  html[data-theme] body header.top .sora-kawaii-petal {position:absolute;left:var(--x);top:-10px;width:5px;height:7px;background:#F2A2C4;border-radius:75% 12% 75% 15%;opacity:0;animation:sora-kawaii-petal-fall 10s linear var(--pdelay) infinite;}
  html[data-theme="light"] body header.top .sora-kawaii-petal {background:#C96D9A;}
}
@keyframes sora-kawaii-ride {from{transform:translate3d(0,0,0)}to{transform:translate3d(-1000px,0,0)}}
@keyframes sora-kawaii-belt-shift {to{background-position:-80px 0}}
@keyframes sora-kawaii-bob {0%,100%{transform:translateY(0) rotate(-1.4deg)}50%{transform:translateY(-4px) rotate(1.5deg)}}
@keyframes sora-kawaii-soy-dip {0%,18%,67%,100%{transform:translateY(-6px) rotate(-7deg)}32%,46%{transform:translateY(11px) rotate(6deg)}57%{transform:translateY(-2px) rotate(-4deg)}}
@keyframes sora-kawaii-chop {0%,18%,66%,100%{transform:rotate(-5deg) translateY(-3px)}31%,46%{transform:rotate(8deg) translateY(7px)}58%{transform:rotate(0deg) translateY(0)}}
@keyframes sora-kawaii-soy-ripple {0%,25%,56%,100%{opacity:0;transform:scale(.5)}34%,46%{opacity:.8;transform:scale(1.35)}}
@keyframes sora-kawaii-petal-fall {0%{transform:translate(0,-3px) rotate(0deg);opacity:0}13%{opacity:.7}78%{opacity:.5}100%{transform:translate(var(--pdrift),62px) rotate(230deg);opacity:0}}
/* Ten random, independent tricks; movement is restricted to the clicked character. */
@keyframes sora-trick-flip {0%,100%{transform:rotateY(0)}45%,62%{transform:rotateY(180deg)}}
@keyframes sora-trick-spin {0%{transform:rotate(0deg)}65%{transform:rotate(380deg)}100%{transform:rotate(360deg)}}
@keyframes sora-trick-grow {0%,100%{transform:scale(1)}35%{transform:scale(1.42)}64%{transform:scale(.91)}82%{transform:scale(1.08)}}
@keyframes sora-trick-hop {0%,100%{transform:translateY(0)}25%{transform:translateY(-16px) rotate(-10deg)}46%{transform:translateY(0) scaleY(.8)}70%{transform:translateY(-7px) rotate(7deg)}}
@keyframes sora-trick-wiggle {0%,100%{transform:rotate(0)}16%,48%,80%{transform:rotate(-17deg)}32%,64%{transform:rotate(18deg)}}
@keyframes sora-trick-shake {0%,100%{transform:translateX(0)}15%,45%,75%{transform:translateX(-9px)}30%,60%,90%{transform:translateX(9px)}}
@keyframes sora-trick-squish {0%,100%{transform:scale(1)}22%{transform:scale(1.23,.68)}48%{transform:scale(.8,1.32)}72%{transform:scale(1.13,.87)}}
@keyframes sora-trick-tilt {0%,100%{transform:rotate(0deg)}32%{transform:rotate(-35deg) translateY(-5px)}67%{transform:rotate(28deg) translateY(-3px)}}
@keyframes sora-trick-cartwheel {0%{transform:rotate(0deg) translateY(0)}40%{transform:rotate(190deg) translateY(-4px)}85%{transform:rotate(365deg)}100%{transform:rotate(360deg)}}
@keyframes sora-trick-tada {0%,100%{transform:scale(1) rotate(0)}24%{transform:scale(.83) rotate(-9deg)}44%{transform:scale(1.25) rotate(11deg)}60%{transform:scale(1.18) rotate(-12deg)}78%{transform:scale(1.13) rotate(8deg)}}

/* The menu should visually run to the bottom of the document on long pages,
   without losing its existing sticky/collapsible desktop behavior. */
@media (min-width:901px) {
  html[data-theme] body .shell:has(> .side) {
    background-image:linear-gradient(to right,
      var(--panel) 0px,var(--panel) 230px,
      transparent 230px,transparent 100%);
    background-repeat:no-repeat;
    background-size:100% 100%;
    position:relative;
  }
  html.sora-sidebar-collapsed[data-theme] body .shell:has(> .side) {
    background-image:linear-gradient(to right,
      var(--panel) 0px,var(--panel) 74px,
      transparent 74px,transparent 100%);
  }
  html[data-theme] body .shell:has(> .side)::before {
    content:"";
    position:absolute;top:0;bottom:0;left:229px;width:1px;
    background:var(--line);pointer-events:none;
  }
  html.sora-sidebar-collapsed[data-theme] body .shell:has(> .side)::before {left:73px;}
}
@media (max-width:900px),print {html[data-theme] body header.top .sora-kawaii-scene {display:none!important;}}

@media (prefers-reduced-motion:reduce) {
  html[data-theme] body header.top .sora-kawaii-scene *{animation:none!important;transition:none!important;}
  html[data-theme] body header.top .sora-kawaii-sushi.is-playing .sora-kawaii-flipper{outline:2px solid #F1A0C2;outline-offset:2px;border-radius:10px;}
  html[data-theme] body header.top .sora-kawaii-scene .sora-kawaii-petal{display:none!important;}
}
