/* The original gold symbol becomes the host of the DNA entrance. */
.mascot-intro{width:46%;max-width:620px;top:51%;text-shadow:none}
.mascot-speech{position:relative;border:1px solid #d5bcf346;border-radius:26px;background:linear-gradient(135deg,#151724f5,#080f18eb);padding:26px 30px 25px;box-shadow:0 24px 90px #0004,inset 0 1px 0 #ffffff0c;backdrop-filter:blur(18px)}
.mascot-speech:after{content:'';position:absolute;right:-11px;top:38%;width:20px;height:20px;background:#0b121c;border-top:1px solid #d5bcf346;border-right:1px solid #d5bcf346;transform:rotate(45deg)}
.mascot-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 17px;color:#b8c9c5;font:9px/1.5 Consolas,monospace;letter-spacing:.16em}
.mascot-eyebrow>span{width:5px;height:5px;flex:none;border-radius:50%;background:#91e6c2;box-shadow:0 0 12px #91e6c2aa}
.mascot-greeting{margin:0 0 12px;color:#c0bdcb;font-size:17px;line-height:1.5}
.mascot-greeting strong{color:#f5dd9f;font-weight:500}.mascot-wave{display:inline-block;margin-left:5px;color:#f5dd9f}
.mascot-intro h1{font-size:clamp(36px,3.65vw,58px);line-height:1.12;letter-spacing:-.045em;font-weight:400;margin:0;text-wrap:balance}
.mascot-intro h1 em{color:#d7bdf4}
.mascot-description{margin:17px 0 19px;color:#b8bbc7;font-size:14px;line-height:1.65}
.mascot-intro-form{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 8px 7px 16px;border:1px solid #c3b2e14a;border-radius:14px;background:#060d16;transition:border-color .2s,box-shadow .2s}
.mascot-intro-form:focus-within{border-color:#d6bcf5;box-shadow:0 0 0 3px #d6bcf512}
.mascot-intro-form input{flex:1;min-width:0;width:100%;padding:9px 0;border:0;background:transparent;color:#f2eff7;font-family:inherit;font-size:14px;line-height:1.5;outline:none}
.mascot-intro-form input::placeholder{color:#8c91a2;font-size:13px}
.mascot-intro-form button{display:grid;place-items:center;flex:none;width:43px;height:43px;border:0;border-radius:10px;background:#d5bbf0;color:#171021;font-size:26px;cursor:pointer;transition:background .2s,transform .2s}
.mascot-intro-form button:hover{background:#e5ceff;transform:translateY(-1px)}
.mascot-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.mascot-choices button{display:flex;align-items:center;gap:9px;text-align:left;min-width:0;min-height:42px;padding:9px 11px;border:1px solid #a6a2ba30;border-radius:10px;background:#ffffff03;color:#d1d1dd;font-family:inherit;font-size:12px;line-height:1.4;cursor:pointer;transition:background .2s,border-color .2s}
.mascot-choices button>span{color:#c6a6ec;font-size:16px;flex:none}.mascot-choices button:hover{background:#d0b4f00f;border-color:#c6a6ec99}
.mascot-intro-links{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-inline:3px}
.mascot-intro-links a,.mascot-intro-links button{display:inline-flex;align-items:center;gap:10px;min-height:36px;padding:0;background:none;border:0;color:#b9bdc8;font-size:11px;line-height:1.5;text-decoration:none;cursor:pointer}
.mascot-intro-links a{color:#e4d8f2}.mascot-intro-links a span{color:#c8a7ed}
.mascot-intro a:focus-visible,.mascot-intro button:focus-visible,.mascot-skip:focus-visible{outline:2px solid #d5bbf0;outline-offset:4px}
.mascot-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mascot-skip{position:absolute;z-index:8;top:115px;right:6vw;min-height:36px;padding:8px 12px;border:1px solid #d6c0ed36;border-radius:20px;background:#0b121acc;color:#d5c6e6;font-size:10px;cursor:pointer}
.mascot-skip[hidden]{display:none}
.mascot-orbit{position:absolute;top:13%;left:53%;width:38%;height:68%;z-index:1;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse,#d4b8790b,transparent 68%);opacity:.8}
.mascot-orbit:before,.mascot-orbit:after{content:'';position:absolute;border:1px solid #e8c57916;border-radius:50%;inset:9%;transform:rotate(-23deg) scaleX(.84)}
.mascot-orbit:after{inset:4%;border-color:#c7a4ef0c;transform:rotate(20deg) scaleX(.94)}
.cinema-stage[data-chapter]:not([data-chapter="0"]) .mascot-orbit,.cinema-stage[data-chapter]:not([data-chapter="0"]) .mascot-skip{visibility:hidden}
.cinema-stage[data-chapter="0"] .cinema-footer .cinema-next{visibility:hidden}
.cinema-stage[data-mascot="arriving"] .mascot-wave{animation:mascot-wave 1.2s ease-in-out .8s 2}
.mascot-intro.is-entering .mascot-speech{animation:mascot-speech-in .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes mascot-wave{0%,100%{transform:rotate(0) scale(1)}40%{transform:rotate(30deg) scale(1.3)}70%{transform:rotate(-15deg) scale(1.1)}}
@keyframes mascot-speech-in{from{opacity:.2;transform:translate3d(12px,10px,0) scale(.98)}to{opacity:1;transform:none}}
@media(min-width:1500px){.mascot-intro{left:6vw}.mascot-speech{padding:32px 34px}.mascot-description{font-size:16px}.mascot-choices button{font-size:13px;min-height:45px}}
@media(min-width:651px) and (max-width:1050px){.mascot-intro{left:30px;width:47%}.mascot-speech{padding:22px}.mascot-intro h1{font-size:38px}.mascot-choices button{font-size:11px;padding:8px}.mascot-description{font-size:13px}.mascot-desktop-break{display:none}}
@media(min-width:651px) and (max-height:680px){.mascot-intro{top:50%}.mascot-speech{padding:19px 24px}.mascot-eyebrow{margin-bottom:9px}.mascot-greeting{font-size:15px;margin-bottom:8px}.mascot-intro h1{font-size:clamp(34px,3.5vw,46px)}.mascot-description{margin:12px 0}.mascot-choices{gap:6px;margin-top:9px}.mascot-choices button{min-height:37px}.mascot-intro-links{margin-top:7px}}
@media(max-width:650px){
  .cinematic-journey{--mobile-scene-height:max(810px,100svh);min-height:calc(var(--mobile-scene-height)*8)}
  .mascot-intro{top:clamp(267px,36svh,335px);left:16px;right:16px;width:auto;max-width:none;bottom:auto}
  .mascot-speech{padding:21px 19px 19px;border-radius:21px;background:linear-gradient(135deg,#151724f5,#080f18f5)}
  .mascot-speech:after{right:23%;top:-9px;width:16px;height:16px;transform:rotate(-45deg)}
  .mascot-eyebrow{font-size:8px;letter-spacing:.14em;margin-bottom:11px}
  .mascot-greeting{font-size:15px;margin-bottom:9px}
  .mascot-intro h1{font-size:clamp(27px,7.3vw,40px);line-height:1.12;letter-spacing:-.04em}
  .mascot-description{font-size:12px;line-height:1.6;margin:13px 0 15px}.mascot-desktop-break{display:none}
  .mascot-intro-form{padding:6px 6px 6px 12px;border-radius:12px}.mascot-intro-form input{font-size:16px}.mascot-intro-form input::placeholder{font-size:11px}.mascot-intro-form button{width:44px;height:44px}
  .mascot-choices{gap:7px;margin-top:10px}.mascot-choices button{min-height:44px;font-size:11.5px;gap:7px;padding:8px}.mascot-choices button>span{font-size:14px}
  .mascot-intro-links{margin-top:9px;padding-left:48px}.mascot-intro-links a,.mascot-intro-links button{font-size:10px;min-height:34px}
  body:has(.cinema-stage[data-chapter="0"]) .ecosystem-motion{width:44px;min-width:44px;height:44px;min-height:44px;padding:12px;justify-content:center}
  body:has(.cinema-stage[data-chapter="0"]) .ecosystem-motion>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  body:has(.cinema-stage[data-chapter="0"]) .ecosystem-motion>i{display:none}
  body:has(.cinema-stage[data-chapter="0"]) .ecosystem-motion:after{content:'Ⅱ';font-size:15px;color:#ddd0ed}
  body:has(.cinema-stage[data-chapter="0"]) .ecosystem-motion[aria-pressed="true"]:after{content:'▷'}
  .mascot-skip{top:81px;right:17px;font-size:9px;padding:7px 10px}
  .mascot-orbit{left:12%;top:76px;width:76%;height:190px}
  .cinema-stage[data-chapter="0"] .cinema-footer{display:none}
}
@media(prefers-reduced-motion:reduce){.mascot-intro.is-entering .mascot-speech,.cinema-stage[data-mascot="arriving"] .mascot-wave{animation:none}.mascot-intro-form,.mascot-intro-form button,.mascot-choices button{transition:none}}
.motion-paused .mascot-wave,.motion-paused .mascot-speech{animation-play-state:paused}
