@font-face{
  font-family:"PLCFont";
  src:
    url("../assets/fonts/Phi.woff2") format("woff2"),
    url("../assets/fonts/Phi.ttf") format("truetype");
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}

:root{
  --bg:#070914;
  --panel:rgba(14,18,36,.76);
  --panel-strong:rgba(18,24,48,.9);
  --line:rgba(255,255,255,.13);
  --text:#f7fbff;
  --muted:#aeb9cc;
  --cyan:#58e0ff;
  --pink:#ff6bba;
  --red:#ff2432;
  --green:#95ffbd;
  --yellow:#ffe66d;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  min-height:100vh;
  color:var(--text);
  background:
    linear-gradient(135deg, rgba(5,9,22,.72), rgba(9,12,28,.92)),
    image-set(
      url("../assets/bg.webp") type("image/webp"),
      url("../assets/bg.png") type("image/png")
    ) center/cover fixed;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  overflow-x:hidden;
  position:relative;
}

body.modal-open{
  overflow:hidden;
}

.plc-restore-toast{
  position:fixed;
  left:50%;
  top:18px;
  z-index:360;
  display:grid;
  gap:2px;
  min-width:min(360px, calc(100vw - 36px));
  padding:14px 18px 13px;
  border:1px solid rgba(149,255,189,.34);
  border-radius:18px;
  color:#edf7fb;
  background:
    linear-gradient(90deg, rgba(149,255,189,.16), rgba(8,16,24,.78) 42%, rgba(88,224,255,.1)),
    rgba(4,12,18,.88);
  box-shadow:
    0 18px 58px rgba(0,0,0,.42),
    0 0 26px rgba(149,255,189,.1),
    inset 0 0 0 1px rgba(255,255,255,.045);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%, -22px) scale(.98);
  transition:opacity .28s ease, transform .28s ease;
  backdrop-filter:blur(14px);
}

.plc-restore-toast.is-visible{
  opacity:1;
  transform:translate(-50%, 0) scale(1);
}

.plc-restore-toast span{
  color:rgba(149,255,189,.82);
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.plc-restore-toast strong{
  color:#fff;
  font-size:20px;
  line-height:1.2;
  font-weight:400;
  text-shadow:
    1px 0 rgba(88,224,255,.34),
    0 0 18px rgba(149,255,189,.18);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(to bottom, black, transparent 72%);
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.26) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.26) 1px, transparent 1px);
  background-size:46px 46px;
  opacity:0;
  filter:
    drop-shadow(0 0 5px rgba(255,255,255,.24))
    drop-shadow(0 0 14px rgba(255,255,255,.12));
  mask-image:linear-gradient(to bottom, transparent 0%, black 12%, black 38%, transparent 54%);
  mask-size:100% 320%;
  animation:gridRhythm 16s linear infinite;
}

body.first-layer-echo-unlocked::before{
  background:
    linear-gradient(90deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.78) 12%, rgba(3,8,18,.14) 36%, rgba(3,8,18,.1) 64%, rgba(0,0,0,.78) 88%, rgba(0,0,0,.92) 100%),
    linear-gradient(rgba(149,255,189,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(149,255,189,.035) 1px, transparent 1px);
  background-size:100% 100%, 46px 46px, 46px 46px;
  mask-image:none;
}

body.first-layer-echo-unlocked::after{
  opacity:.58;
  background:
    linear-gradient(0deg, transparent 0%, rgba(255,255,255,0) 14%, rgba(255,255,255,.94) 44%, rgba(255,255,255,.2) 58%, transparent 78%),
    linear-gradient(0deg, transparent 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,.7) 48%, rgba(255,255,255,.16) 64%, transparent 82%),
    linear-gradient(0deg, transparent 0%, rgba(255,255,255,0) 14%, rgba(255,255,255,.86) 46%, rgba(255,255,255,.18) 62%, transparent 80%),
    linear-gradient(0deg, transparent 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,.62) 44%, rgba(255,255,255,.14) 60%, transparent 78%),
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.12) 48%, transparent 100%),
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.08) 48%, transparent 100%),
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.1) 48%, transparent 100%),
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.07) 48%, transparent 100%);
  background-size:3px 42vh, 2px 34vh, 3px 46vh, 2px 38vh, 28px 42vh, 24px 34vh, 28px 46vh, 24px 38vh;
  background-position:left 7vw top 118vh, left 14vw top 144vh, right 8vw top 126vh, right 15vw top 156vh, left calc(7vw - 13px) top 118vh, left calc(14vw - 11px) top 144vh, right calc(8vw - 13px) top 126vh, right calc(15vw - 11px) top 156vh;
  background-repeat:no-repeat;
  filter:
    drop-shadow(0 0 5px rgba(255,255,255,.62))
    drop-shadow(0 0 12px rgba(255,255,255,.24))
    drop-shadow(0 0 20px rgba(149,255,189,.08));
  mask-image:linear-gradient(90deg, black 0%, black 21%, transparent 35%, transparent 65%, black 79%, black 100%);
  mask-size:100% 100%;
  mask-position:0 0;
  animation:firstLayerSideWave 7.4s linear infinite;
}

body.first-layer-echo-transition::after,
body.first-layer-echo-awakening::after{
  opacity:.72;
  animation:firstLayerSideWave 3.1s linear infinite, firstLayerPulse 1.4s ease both;
}

a{
  color:inherit;
  text-decoration:none;
}

.site-header{
  position:sticky;
  top:0;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:min(1180px, calc(100% - 32px));
  margin:18px auto 0;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(5,8,18,.74);
  backdrop-filter:blur(16px);
  transform-origin:top;
  animation:folderDrop 1.15s cubic-bezier(.16,.86,.2,1) .08s both;
}

main,
.site-footer{
  position:relative;
  z-index:1;
}

.brand{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  font-size:18px;
}

.brand-logo{
  display:block;
  width:42px;
  height:42px;
  object-fit:contain;
  flex:0 0 auto;
}

.site-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  color:var(--muted);
  font-size:14px;
}

.site-nav a{
  transition:color .2s ease;
}

.site-nav a:hover{
  color:var(--text);
}

main{
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
}

.hero{
  min-height:620px;
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(300px, .85fr);
  align-items:center;
  gap:36px;
  padding:46px 0 28px;
  transform-origin:top;
  animation:folderOpen 1.34s cubic-bezier(.16,.86,.2,1) .24s both;
}

.hero-content{
  max-width:760px;
}

.eyebrow{
  color:var(--cyan);
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
}

.hero h1{
  margin-top:14px;
  font-size:clamp(54px, 7vw, 104px);
  line-height:.92;
  letter-spacing:0;
  text-shadow:
    0 0 24px rgba(88,224,255,.45),
    0 0 56px rgba(255,107,186,.22);
}

.hero-lead{
  max-width:680px;
  margin-top:18px;
  color:var(--muted);
  font-size:20px;
  line-height:1.8;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:26px;
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 22px;
  border-radius:8px;
  border:1px solid var(--line);
  font-size:15px;
  transition:
    transform .2s ease,
    border-color .2s ease,
    background .2s ease;
}

.button:hover{
  transform:translateY(-2px);
}

.button.primary{
  color:#061018;
  border-color:transparent;
  background:linear-gradient(135deg, var(--cyan), var(--green));
}

.button.secondary{
  background:rgba(255,255,255,.07);
}

.hero-card,
.intro-panel,
.signal-gate-panel,
.final-signal-panel,
.timeline-item,
.rule-card,
.format-panel,
.requirement-list,
.ranking-preview-list{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--panel);
  box-shadow:0 24px 70px rgba(0,0,0,.32);
  backdrop-filter:blur(14px);
  animation:panelFloatIn .62s ease both;
}

.hero-card{
  padding:26px;
}

.card-label{
  color:var(--pink);
  font-size:12px;
  letter-spacing:2px;
}

.event-facts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:24px;
}

.event-facts div{
  min-height:96px;
  padding:16px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;
  background:rgba(255,255,255,.05);
}

.event-facts .tips-fact{
  grid-column:1 / -1;
  overflow:hidden;
}

.event-facts dt{
  color:var(--muted);
  font-size:13px;
}

.event-facts dd{
  margin-top:14px;
  font-size:20px;
}

.tips-roller{
  display:block;
  min-height:1.35em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  animation:tipSlideIn .7s ease both;
}

.tips-roller.is-switching{
  animation:tipSlideOut .34s ease both;
}

.pac-promo-section{
  position:relative;
  display:grid;
  margin:34px 0 42px;
  padding:20px 0 8px;
  scroll-margin-top:96px;
  transform-origin:top;
  animation:folderOpen 1.18s cubic-bezier(.16,.86,.2,1) .42s both;
}

.pac-promo-section.is-collapsed{
  margin:28px 0 34px;
}

.pac-promo-toggle{
  width:min(640px, 100%);
  min-height:72px;
  justify-self:center;
  margin-left:0;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  border:0;
  padding:0 clamp(34px, 4vw, 54px);
  color:#303233;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(238,240,243,.94));
  clip-path:polygon(7% 0, 100% 0, 93% 100%, 0 100%);
  box-shadow:
    0 24px 54px rgba(0,0,0,.28),
    inset 0 0 0 1px rgba(255,255,255,.72);
  font:inherit;
  font-size:clamp(27px, 3vw, 42px);
  line-height:1;
  letter-spacing:.02em;
  text-align:left;
  text-shadow:0 2px 3px rgba(0,0,0,.28);
  cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease, filter .22s ease;
}

.pac-promo-toggle:hover,
.pac-promo-toggle:focus-visible{
  outline:none;
  transform:translateY(-2px);
  filter:brightness(1.04);
  box-shadow:
    0 30px 66px rgba(0,0,0,.34),
    0 0 28px rgba(255,255,255,.12),
    inset 0 0 0 1px rgba(255,255,255,.8);
}

.pac-promo-section.is-expanded .pac-promo-toggle{
  display:none;
}

.pac-promo-card{
  position:relative;
  min-height:clamp(520px, 48vw, 660px);
  overflow:visible;
  isolation:isolate;
  filter:drop-shadow(0 32px 48px rgba(0,0,0,.34));
}

.pac-promo-card[hidden]{
  display:none;
}

.pac-promo-section.is-expanded .pac-promo-card{
  animation:pacPromoReveal .78s cubic-bezier(.16,.86,.2,1) both;
}

.pac-promo-art{
  position:relative;
  z-index:2;
  width:calc(100% - clamp(76px, 12vw, 170px));
  height:clamp(198px, 17vw, 250px);
  margin-left:clamp(70px, 12vw, 168px);
  overflow:visible;
}

.pac-promo-banner-frame{
  position:absolute;
  inset:0;
  overflow:hidden;
  clip-path:polygon(4.5% 0, 100% 0, 96% 100%, 0 100%);
  background:
    url("../assets/pac-2026-preliminary-bg.png") center/cover no-repeat,
    #e7ebf4;
  box-shadow:
    0 12px 28px rgba(0,0,0,.18),
    inset 0 0 0 1px rgba(255,255,255,.36);
}

.pac-promo-bg{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.02) contrast(1.02);
}

.pac-promo-character{
  position:absolute;
  z-index:3;
  top:clamp(-54px, -4vw, -34px);
  right:clamp(-42px, -2.8vw, -16px);
  width:clamp(300px, 30vw, 430px);
  max-width:48%;
  height:auto;
  pointer-events:none;
  user-select:none;
  filter:
    drop-shadow(0 15px 22px rgba(57,58,98,.18))
    drop-shadow(0 0 10px rgba(255,255,255,.32));
}

.pac-promo-panel{
  position:relative;
  z-index:1;
  width:calc(100% - clamp(18px, 3.4vw, 44px));
  min-height:clamp(326px, 34vw, 438px);
  margin-top:-2px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  color:#fff;
  background:
    linear-gradient(115deg, rgba(76,80,78,.96), rgba(43,46,45,.98) 48%, rgba(31,34,34,.99)),
    #2a2d2c;
  clip-path:polygon(9.2% 0, 100% 0, 91.4% 100%, 0 100%);
  box-shadow:
    0 30px 54px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.pac-promo-panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), transparent 38%),
    radial-gradient(circle at 30% 8%, rgba(255,255,255,.075), transparent 28%);
}

.pac-promo-copy{
  position:relative;
  z-index:1;
  flex:1;
  padding:clamp(22px, 3vw, 40px) clamp(74px, 7vw, 104px) clamp(26px, 3vw, 38px);
}

.pac-promo-title{
  width:max-content;
  max-width:100%;
  margin:0 0 clamp(22px, 2.4vw, 32px);
  padding:5px clamp(22px, 2.6vw, 34px) 7px clamp(28px, 3vw, 42px);
  color:#303233;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,246,247,.94));
  clip-path:polygon(3.2% 0, 100% 0, 96.5% 100%, 0 100%);
  font-size:clamp(26px, 2.8vw, 40px);
  line-height:1.12;
  font-weight:400;
  letter-spacing:.02em;
  text-shadow:0 2px 3px rgba(0,0,0,.32);
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}

.pac-promo-quote,
.pac-promo-source,
.pac-promo-signoff{
  max-width:930px;
  color:rgba(255,255,255,.94);
  font-size:clamp(20px, 2.08vw, 31px);
  line-height:1.34;
  letter-spacing:.01em;
  text-shadow:0 2px 5px rgba(0,0,0,.38);
}

.pac-promo-source{
  margin-top:clamp(14px, 1.6vw, 22px);
}

.pac-promo-signoff{
  margin-top:clamp(24px, 2.5vw, 36px);
}

.pac-promo-actions{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:clamp(82px, 8.4vw, 118px);
  padding:0 clamp(68px, 7vw, 112px) 0 clamp(50px, 5.2vw, 76px);
  background:linear-gradient(180deg, rgba(19,21,21,.86), rgba(10,12,12,.95));
}

.pac-promo-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:100%;
  border:0;
  padding:0;
  color:rgba(255,255,255,.94);
  background:transparent;
  font:inherit;
  font-size:clamp(28px, 3.1vw, 44px);
  line-height:1;
  letter-spacing:.02em;
  text-shadow:0 2px 4px rgba(0,0,0,.42);
  cursor:pointer;
  transition:transform .2s ease, color .2s ease, text-shadow .2s ease;
}

.pac-promo-button:hover,
.pac-promo-button:focus-visible{
  outline:none;
  color:#fff;
  transform:translateY(-2px);
  text-shadow:
    0 2px 5px rgba(0,0,0,.46),
    0 0 18px rgba(255,255,255,.2);
}

.notice-band{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--line);
  transform-origin:top;
  animation:folderOpen 1.26s cubic-bezier(.16,.86,.2,1) .48s both;
}

.notice-card{
  display:block;
  width:100%;
  padding:22px;
  border:0;
  color:inherit;
  text-align:left;
  background:rgba(9,13,29,.9);
  font:inherit;
  animation:panelFloatIn .92s ease both;
}

.notice-card-action{
  cursor:pointer;
  transition:
    background .25s ease,
    box-shadow .25s ease,
    transform .25s ease;
}

.notice-card-action:hover,
.notice-card-action:focus-visible{
  z-index:1;
  background:linear-gradient(135deg, rgba(88,224,255,.16), rgba(149,255,189,.11));
  box-shadow:
    inset 0 0 0 1px rgba(88,224,255,.46),
    0 18px 38px rgba(0,0,0,.26),
    0 0 32px rgba(88,224,255,.18);
  transform:translateY(-2px);
  outline:none;
}

.notice-card-action:active{
  transform:translateY(0);
}

.notice-card:nth-child(1){
  animation-delay:.66s;
}

.notice-card:nth-child(2){
  animation-delay:.78s;
}

.notice-card:nth-child(3){
  animation-delay:.9s;
}

.notice-card:nth-child(4){
  animation-delay:1.02s;
}

.notice-card span{
  display:block;
  color:var(--muted);
  font-size:13px;
}

.notice-card strong{
  display:block;
  margin-top:10px;
  font-size:22px;
}

.notice-card-action strong::after{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  margin-left:10px;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .25s ease;
}

.notice-card-action:hover strong::after,
.notice-card-action:focus-visible strong::after{
  transform:rotate(45deg) translate(2px, -4px);
}

.section{
  padding:86px 0 0;
  transform-origin:top;
  animation:folderOpen 1.18s cubic-bezier(.16,.86,.2,1) both;
}

.section:nth-of-type(3){
  animation-delay:.72s;
}

.section:nth-of-type(4){
  animation-delay:.92s;
}

.section:nth-of-type(5){
  animation-delay:1.12s;
}

.section:nth-of-type(6){
  animation-delay:1.32s;
}

.section:nth-of-type(7){
  animation-delay:1.52s;
}

.section:nth-of-type(8){
  animation-delay:1.72s;
}

.section:nth-of-type(9){
  animation-delay:1.92s;
}

.section-title{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
}

.section-title h2{
  margin-top:8px;
  font-size:clamp(30px, 4vw, 54px);
  line-height:1.05;
}

.intro-grid{
  display:grid;
  grid-template-columns:1.25fr .875fr .875fr;
  gap:16px;
}

.intro-grid.single{
  grid-template-columns:1fr;
}

.intro-panel,
.timeline-item,
.rule-card,
.requirement-list{
  padding:24px;
}

.intro-panel.wide{
  min-height:260px;
}

.intro-panel-full{
  min-height:320px;
}

.intro-panel h3,
.timeline-item h3,
.format-panel h3,
.requirements-section h3{
  font-size:24px;
}

.intro-panel p,
.signal-gate-copy p,
.final-signal-copy p,
.timeline-item p,
.rule-card p,
.format-panel p,
.requirement-list li{
  margin-top:14px;
  color:var(--muted);
  line-height:1.75;
}

.signal-gate-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(360px, 1.1fr);
  gap:1px;
  overflow:hidden;
  background:
    repeating-linear-gradient(90deg, rgba(88,224,255,.08) 0 1px, transparent 1px 18px),
    repeating-linear-gradient(0deg, rgba(255,107,186,.06) 0 1px, transparent 1px 24px),
    rgba(9,13,29,.92);
}

.signal-gate-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent),
    repeating-linear-gradient(0deg, transparent 0 7px, rgba(88,224,255,.1) 7px 8px);
  opacity:.18;
  transform:translateX(-56%);
  animation:signalSweep 8s ease-in-out infinite;
}

.signal-gate-panel::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:0;
}

.signal-gate-copy,
.signal-gate-console{
  position:relative;
  z-index:1;
  padding:28px;
  background:rgba(5,8,18,.62);
}

.signal-gate-copy h3{
  margin-top:12px;
  font-size:30px;
  line-height:1.2;
}

.signal-gate-console{
  display:grid;
  gap:16px;
  border-left:1px solid rgba(255,255,255,.12);
}

.gate-readout{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:
    linear-gradient(90deg, rgba(255,107,186,.1), rgba(88,224,255,.09)),
    rgba(255,255,255,.045);
}

.gate-readout-value{
  display:grid;
  justify-items:end;
  gap:6px;
  min-width:0;
}

.gate-readout:has(strong.is-offset-final){
  min-height:58px;
}

.gate-readout:has(strong.is-offset-final) strong{
  width:auto;
  justify-content:flex-end;
}

.gate-readout span,
.gate-status{
  color:var(--muted);
  font-size:13px;
}

.gate-readout strong{
  display:inline-flex;
  justify-content:flex-end;
  min-width:9ch;
  color:var(--yellow);
  font-size:24px;
  font-variant-numeric:tabular-nums;
  text-shadow:1px 0 rgba(255,107,186,.8), -1px 0 rgba(88,224,255,.7);
}

.gate-readout strong.is-offset-scrambling{
  color:#f7fbff;
  animation:offsetTableScramble .13s steps(2, end) infinite;
}

.gate-readout strong.is-offset-final{
  min-width:0;
  color:var(--green);
  text-shadow:
    1px 0 rgba(255,107,186,.55),
    -1px 0 rgba(88,224,255,.65),
    0 0 20px rgba(149,255,189,.52),
    0 0 42px rgba(88,224,255,.22);
}

#offsetTableValue.is-offset-final{
  display:inline-flex !important;
  width:auto !important;
  min-width:9ch !important;
  color:var(--green) !important;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif !important;
  font-size:24px !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-align:right !important;
}

#offsetTableValue.is-offset-digit-tick{
  animation:offsetDigitTick .16s steps(2, end) both;
}

.offset-encrypted-time{
  min-height:1em;
  color:rgba(149,255,189,.72);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:11px;
  line-height:1;
  letter-spacing:.08em;
  opacity:0;
  text-align:right;
  text-shadow:0 0 14px rgba(149,255,189,.18);
  transition:opacity .28s ease;
}

.offset-encrypted-time.is-visible{
  opacity:1;
}

.gate-progress{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:8px;
}

.gate-progress span{
  height:6px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}

.gate-progress span.is-active{
  background:linear-gradient(90deg, var(--pink), var(--cyan));
  box-shadow:0 0 18px rgba(88,224,255,.32);
}

.gate-progress span.is-failed{
  background:linear-gradient(90deg, #ff0018, var(--red), #ff6b42);
  box-shadow:
    0 0 18px rgba(255,36,50,.62),
    0 0 2px rgba(255,255,255,.7);
}

.gate-progress span.is-complete{
  background:linear-gradient(90deg, var(--green), var(--cyan));
  box-shadow:0 0 20px rgba(149,255,189,.42);
}

.gate-status{
  min-height:20px;
  text-shadow:1px 0 rgba(255,107,186,.45), -1px 0 rgba(88,224,255,.42);
}

.gate-status.is-failed{
  color:var(--red);
  text-shadow:
    2px 0 rgba(255,0,24,.9),
    0 0 18px rgba(255,36,50,.7);
  animation:gateJolt .12s steps(1, end) 7;
}

.gate-status.is-complete{
  color:var(--green);
}

.gate-keypad{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.gate-keypad button,
.gate-reset{
  min-height:46px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  color:var(--text);
  background:
    linear-gradient(135deg, rgba(88,224,255,.1), rgba(255,107,186,.08)),
    rgba(255,255,255,.045);
  font:inherit;
  cursor:pointer;
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.gate-keypad button:hover,
.gate-keypad button:focus-visible,
.gate-reset:hover,
.gate-reset:focus-visible{
  border-color:rgba(88,224,255,.56);
  box-shadow:0 0 24px rgba(88,224,255,.18);
  outline:none;
}

.gate-keypad button.is-used{
  color:var(--cyan);
  border-color:rgba(88,224,255,.46);
  background:
    repeating-linear-gradient(90deg, rgba(88,224,255,.18) 0 1px, transparent 1px 7px),
    rgba(88,224,255,.08);
  box-shadow:inset 0 0 16px rgba(88,224,255,.12);
}

.gate-keypad button:disabled,
.gate-reset:disabled{
  cursor:default;
  transform:none;
}

.gate-reset:disabled{
  color:rgba(247,251,255,.42);
  border-color:rgba(255,255,255,.08);
  box-shadow:none;
}

.gate-keypad button.is-rejected{
  border-color:rgba(255,36,50,.9);
  color:#fff3f3;
  background:
    repeating-linear-gradient(0deg, rgba(255,36,50,.28) 0 2px, transparent 2px 6px),
    rgba(80,0,8,.58);
  box-shadow:
    0 0 28px rgba(255,36,50,.45),
    inset 0 0 18px rgba(255,36,50,.22);
  animation:gateJolt .12s steps(1, end) 5;
}

.gate-keypad button.is-accepted{
  color:#071018;
  border-color:transparent;
  background:linear-gradient(135deg, var(--green), var(--cyan));
  box-shadow:0 0 24px rgba(149,255,189,.28);
}

.gate-reset{
  color:var(--cyan);
}

.signal-gate-panel.is-unlocked{
  box-shadow:
    0 24px 70px rgba(0,0,0,.32),
    0 0 36px rgba(149,255,189,.18);
}

.signal-gate-panel.is-failed{
  border-color:rgba(255,36,50,.88);
  box-shadow:
    0 24px 70px rgba(0,0,0,.32),
    0 0 58px rgba(255,36,50,.5),
    inset 0 0 54px rgba(255,36,50,.22);
  animation:gateFailBurst .58s steps(1, end) both;
}

.signal-gate-panel.is-failed::before{
  background:
    linear-gradient(90deg, transparent, rgba(255,36,50,.72), transparent),
    repeating-linear-gradient(0deg, transparent 0 2px, rgba(255,36,50,.36) 2px 4px),
    repeating-linear-gradient(90deg, transparent 0 18px, rgba(255,255,255,.22) 18px 20px);
  opacity:.9;
  animation:gateFailScan .28s steps(1, end) infinite;
}

.signal-gate-panel.is-failed::after{
  background:
    linear-gradient(90deg, rgba(255,0,24,.62), transparent 16%, rgba(255,36,50,.34) 52%, transparent),
    repeating-linear-gradient(0deg, rgba(255,36,50,.42) 0 2px, transparent 2px 8px),
    repeating-linear-gradient(90deg, transparent 0 32px, rgba(255,255,255,.2) 32px 34px);
  opacity:.82;
  mix-blend-mode:screen;
  animation:gateRedOverload .58s steps(1, end) both;
}

.signal-gate-panel.is-resolving{
  border-color:rgba(149,255,189,.62);
  box-shadow:
    0 24px 70px rgba(0,0,0,.32),
    0 0 54px rgba(149,255,189,.36),
    inset 0 0 42px rgba(149,255,189,.14);
  animation:gateResolvePulse .62s steps(1, end) both;
}

.signal-gate-panel.is-resolving::before{
  background:
    linear-gradient(90deg, transparent, rgba(149,255,189,.46), transparent),
    repeating-linear-gradient(0deg, transparent 0 6px, rgba(149,255,189,.18) 6px 8px);
  opacity:.72;
  animation:signalSweep .62s steps(3, end) infinite;
}

.final-signal-section.is-locked{
  display:none;
}

.final-signal-section.is-revealed{
  animation:
    folderOpen 1.18s cubic-bezier(.16,.86,.2,1) both,
    revealStatic .72s steps(5, end) both;
}

.final-signal-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1.18fr) minmax(320px, .82fr);
  gap:0;
  overflow:hidden;
  background:
    repeating-linear-gradient(90deg, rgba(88,224,255,.08) 0 1px, transparent 1px 16px),
    repeating-linear-gradient(0deg, rgba(255,107,186,.07) 0 1px, transparent 1px 21px),
    radial-gradient(circle at 17% 12%, rgba(255,107,186,.22), transparent 32%),
    radial-gradient(circle at 82% 72%, rgba(88,224,255,.2), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.015)),
    var(--panel);
}

.final-signal-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, transparent, rgba(88,224,255,.16), transparent),
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.06) 0 1px,
      transparent 1px 8px
    );
  opacity:.34;
  mix-blend-mode:screen;
  transform:translateX(-58%);
  animation:signalSweep 7.4s ease-in-out infinite;
}

.final-art-stage{
  position:relative;
  min-height:360px;
  overflow:hidden;
  background:#050711;
  isolation:isolate;
  scroll-margin-top:86px;
}

.final-art-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(115deg, transparent 0 43%, rgba(255,255,255,.72) 43.2% 43.55%, transparent 43.8%),
    linear-gradient(22deg, transparent 0 62%, rgba(88,224,255,.48) 62.2% 62.45%, transparent 62.8%),
    linear-gradient(150deg, transparent 0 34%, rgba(255,107,186,.44) 34.15% 34.42%, transparent 34.7%);
  mix-blend-mode:screen;
}

.final-signal-section.is-fractured .final-art-stage::after{
  opacity:.74;
  animation:fractureVeins 2.8s steps(2, end) infinite;
}

.final-art-frame{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:360px;
  border:0;
  color:inherit;
  overflow:hidden;
  background:#050711;
  cursor:pointer;
  font:inherit;
  text-align:left;
  isolation:isolate;
}

.final-art-frame img{
  display:block;
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  opacity:1;
  filter:
    blur(1px)
    brightness(1.04)
    saturate(1.28)
    contrast(1.18);
  transform:scale(1.035) skewX(-.45deg);
  animation:artCorrupt 4.8s steps(2, end) infinite;
  transition:
    opacity .42s ease,
    filter .42s ease,
    transform .42s ease;
}

.final-art-frame.is-fractured img{
  filter:
    blur(1.3px)
    brightness(.82)
    saturate(1.45)
    contrast(1.48);
  transform:scale(1.045) skewX(-.7deg);
}

.final-art-frame.is-fracturing img{
  animation:
    artCorrupt 4.8s steps(2, end) infinite,
    glassBaseImpact 1.18s steps(7, end) both;
}

.final-signal-panel:hover .final-art-frame img,
.final-signal-panel:focus-within .final-art-frame img{
  opacity:.98;
  filter:
    blur(.8px)
    brightness(1.12)
    saturate(1.32)
    contrast(1.22);
  transform:scale(1.045) skewX(.35deg);
}

.final-art-frame::before,
.final-art-frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}

.final-art-frame::before{
  background:
    linear-gradient(90deg, rgba(7,9,20,.3), transparent 24%, rgba(7,9,20,.08) 50%, transparent 74%, rgba(7,9,20,.38)),
    linear-gradient(180deg, rgba(7,9,20,.04), rgba(7,9,20,.24)),
    repeating-linear-gradient(
      0deg,
      rgba(88,224,255,.16) 0 1px,
      transparent 1px 4px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0 8px,
      rgba(255,107,186,.12) 8px 10px,
      transparent 10px 28px
    );
  animation:noiseTear 1.8s steps(4, end) infinite;
}

.final-art-frame::after{
  inset:auto 0 0;
  height:36%;
  background:
    linear-gradient(0deg, rgba(5,7,17,.68), transparent),
    repeating-linear-gradient(90deg, rgba(255,255,255,.1) 0 2px, transparent 2px 12px);
  opacity:.54;
}

.final-art-status{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(88,224,255,.42);
  border-radius:6px;
  color:var(--cyan);
  background:rgba(5,8,18,.72);
  font-size:13px;
  box-shadow:0 0 24px rgba(88,224,255,.16);
}

.final-art-prompt{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:2;
  color:rgba(247,251,255,.72);
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
  text-shadow:2px 0 rgba(255,107,186,.75), -2px 0 rgba(88,224,255,.65);
}

.glitch-slice{
  position:absolute;
  left:-2%;
  z-index:1;
  width:104%;
  height:22%;
  pointer-events:none;
  background:image-set(
    url("../assets/zishiquhui-signal.webp") type("image/webp"),
    url("../assets/zishiquhui-signal.png") type("image/png")
  ) center/cover;
  opacity:.38;
  mix-blend-mode:screen;
  filter:
    blur(3px)
    contrast(2.2)
    saturate(2.4)
    hue-rotate(80deg);
  animation:glitchSlice 2.6s steps(2, end) infinite;
}

.fracture-map{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  opacity:0;
}

.final-art-frame.is-fracturing .fracture-map{
  opacity:1;
}

.fracture-piece{
  position:absolute;
  inset:-1px;
  background:image-set(
    url("../assets/zishiquhui-signal.webp") type("image/webp"),
    url("../assets/zishiquhui-signal.png") type("image/png")
  ) center/cover;
  opacity:.86;
  filter:
    brightness(1.15)
    contrast(1.7)
    saturate(1.8);
  mix-blend-mode:screen;
  transform:translate3d(0,0,0) rotate(0);
}

.final-art-frame.is-fracturing .fracture-piece{
  animation:fracturePieceBurst 1.2s steps(6, end) both;
}

.piece-a{
  --burst-x:-34px;
  --burst-y:-20px;
  --burst-rot:-3deg;
  clip-path:polygon(0 0, 40% 0, 35% 30%, 13% 42%, 0 38%);
}

.piece-b{
  --burst-x:30px;
  --burst-y:-28px;
  --burst-rot:4deg;
  animation-delay:.03s;
  clip-path:polygon(40% 0, 100% 0, 100% 36%, 70% 28%, 35% 30%);
}

.piece-c{
  --burst-x:-24px;
  --burst-y:18px;
  --burst-rot:2deg;
  animation-delay:.07s;
  clip-path:polygon(0 38%, 13% 42%, 35% 30%, 48% 58%, 22% 72%, 0 68%);
}

.piece-d{
  --burst-x:20px;
  --burst-y:10px;
  --burst-rot:-2deg;
  animation-delay:.1s;
  clip-path:polygon(35% 30%, 70% 28%, 82% 60%, 48% 58%);
}

.piece-e{
  --burst-x:-16px;
  --burst-y:34px;
  --burst-rot:-5deg;
  animation-delay:.14s;
  clip-path:polygon(0 68%, 22% 72%, 48% 58%, 56% 100%, 0 100%);
}

.piece-f{
  --burst-x:28px;
  --burst-y:30px;
  --burst-rot:3deg;
  animation-delay:.17s;
  clip-path:polygon(48% 58%, 82% 60%, 100% 36%, 100% 100%, 56% 100%);
}

.artifact-shards{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  opacity:0;
  transition:opacity .28s steps(2, end);
}

.final-signal-section.is-fractured .artifact-shards{
  opacity:1;
}

.artifact-hitboxes{
  position:absolute;
  inset:0;
  z-index:9;
  pointer-events:none;
}

.artifact-hitbox{
  position:absolute;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
}

.artifact-hitbox:focus-visible{
  outline:1px solid rgba(149,255,189,.72);
  outline-offset:-2px;
  box-shadow:0 0 34px rgba(149,255,189,.28);
}

.hitbox-one{
  inset:0 0 auto auto;
  z-index:4;
  width:37%;
  height:34%;
  clip-path:polygon(18% 0, 100% 0, 100% 68%, 86% 100%, 58% 88%, 36% 70%, 0 52%, 8% 19%);
}

.hitbox-two{
  inset:0 auto auto 0;
  z-index:4;
  width:40%;
  height:42%;
  clip-path:polygon(0 0, 100% 0, 87.5% 71.4%, 32.5% 100%, 0 90.4%);
}

.hitbox-three{
  inset:30% auto auto 0;
  z-index:4;
  width:48%;
  height:42%;
  clip-path:polygon(0 19.05%, 27.08% 28.57%, 72.92% 0, 100% 66.67%, 45.83% 100%, 0 90.48%);
}

.hitbox-four{
  inset:0 0 auto 0;
  z-index:3;
  width:100%;
  height:66%;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 73% 94%, 52% 88%, 36% 87%, 20% 98%, 0 90%);
}

.hitbox-five{
  inset:auto 0 0 auto;
  z-index:5;
  width:52%;
  height:44%;
  clip-path:polygon(0 24%, 45% 4%, 100% 0, 100% 100%, 18% 100%);
}

.final-signal-section.is-shard-one-open .hitbox-one,
.final-signal-section.is-shard-two-open .hitbox-two,
.final-signal-section.is-shard-three-open .hitbox-three,
.final-signal-section.is-shard-four-open .hitbox-four,
.final-signal-section.is-shard-five-open .hitbox-five{
  visibility:visible;
  pointer-events:auto;
}

.artifact-shard{
  position:absolute;
  inset:0;
  display:block;
  overflow:hidden;
  border:0;
  color:rgba(247,251,255,.72);
  background:
    linear-gradient(135deg, rgba(5,8,18,.72), rgba(5,8,18,.18)),
    image-set(
      url("../assets/zishiquhui-signal.webp") type("image/webp"),
      url("../assets/zishiquhui-signal.png") type("image/png")
    ) center/cover;
  opacity:0;
  filter:
    blur(1.2px)
    brightness(.82)
    contrast(1.5)
    saturate(1.5);
}

.artifact-shard span{
  position:absolute;
  z-index:2;
  left:16px;
  bottom:14px;
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:6px;
  background:rgba(5,8,18,.72);
  color:rgba(247,251,255,.68);
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.final-signal-section.is-fractured .artifact-shard{
  opacity:.48;
  animation:lockedShardWake .9s steps(4, end) both;
}

.shard-one{
  inset:0 0 auto auto;
  z-index:2;
  width:37%;
  height:34%;
  padding:0;
  cursor:pointer;
  background:transparent;
  filter:none;
  clip-path:polygon(18% 0, 100% 0, 100% 68%, 86% 100%, 58% 88%, 36% 70%, 0 52%, 8% 19%);
  transform-origin:72% 18%;
}

.shard-one img{
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  filter:none;
  transform:none;
}

.shard-one span{
  right:14px;
  left:auto;
  bottom:12px;
  border-color:rgba(88,224,255,.42);
  color:var(--cyan);
  text-shadow:1px 0 rgba(255,107,186,.8), -1px 0 rgba(88,224,255,.7);
}

.final-signal-section.is-shard-one-open .shard-one{
  pointer-events:auto;
  opacity:1;
  animation:shardOneReveal 1.16s steps(8, end) both;
  box-shadow:
    0 0 34px rgba(88,224,255,.28),
    -12px 14px 34px rgba(255,107,186,.18);
}

.shard-one:hover,
.shard-one:focus-visible{
  outline:none;
  filter:brightness(1.12) contrast(1.08);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.36),
    0 0 42px rgba(88,224,255,.42),
    -18px 20px 36px rgba(255,107,186,.22);
}

.shard-two{
  inset:0 auto auto 0;
  z-index:2;
  width:40%;
  height:42%;
  clip-path:polygon(0 0, 100% 0, 87.5% 71.4%, 32.5% 100%, 0 90.4%);
}

.shard-two img{
  display:none;
  width:100%;
  height:100%;
  object-fit:fill;
  filter:
    brightness(1.04)
    contrast(1.28)
    saturate(1.12);
}

.final-signal-section.is-shard-two-open .shard-two{
  pointer-events:auto;
  cursor:pointer;
  opacity:1;
  background:transparent;
  filter:none;
  animation:shardTwoReveal 1.04s steps(7, end) both;
  box-shadow:
    0 0 32px rgba(255,222,89,.22),
    14px 18px 36px rgba(88,224,255,.16);
}

.final-signal-section.is-shard-two-open .shard-two img{
  display:block;
}

.final-signal-section.is-shard-two-open .shard-two span{
  display:none;
}

.shard-two:hover,
.shard-two:focus-visible{
  outline:none;
  filter:brightness(1.08) contrast(1.08);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.32),
    0 0 38px rgba(255,222,89,.3),
    14px 18px 34px rgba(88,224,255,.18);
}

.shard-three{
  inset:30% auto auto 0;
  z-index:2;
  width:48%;
  height:42%;
  clip-path:polygon(0 19.05%, 27.08% 28.57%, 72.92% 0, 100% 66.67%, 45.83% 100%, 0 90.48%);
}

.shard-three img{
  display:none;
  width:100%;
  height:100%;
  object-fit:fill;
  filter:
    brightness(1.05)
    contrast(1.18)
    saturate(1.08);
}

.final-signal-section.is-shard-three-open .shard-three{
  pointer-events:auto;
  cursor:pointer;
  opacity:1;
  background:transparent;
  filter:none;
  animation:shardThreeReveal 1.08s steps(7, end) both;
  box-shadow:
    0 0 34px rgba(88,224,255,.22),
    14px -8px 32px rgba(255,107,186,.16);
}

.final-signal-section.is-shard-three-open .shard-three img{
  display:block;
}

.final-signal-section.is-shard-three-open .shard-three span{
  display:none;
}

.shard-three:hover,
.shard-three:focus-visible{
  outline:none;
  filter:brightness(1.1) contrast(1.08);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.32),
    0 0 40px rgba(88,224,255,.28),
    14px -8px 34px rgba(255,107,186,.2);
}

.shard-four{
  inset:0 0 auto 0;
  z-index:3;
  width:100%;
  height:66%;
  cursor:default;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 73% 94%, 52% 88%, 36% 87%, 20% 98%, 0 90%);
}

.final-signal-section.is-fractured .shard-four{
  opacity:0;
  animation:none;
}

.shard-four img{
  display:none;
  width:100%;
  height:100%;
  object-fit:fill;
  filter:
    brightness(.86)
    contrast(.98)
    saturate(.96);
}

.shard-four::before,
.shard-four::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
}

.shard-four::before{
  background:
    linear-gradient(112deg, transparent 0 38%, rgba(255,222,89,.18) 38.2% 38.55%, transparent 38.9%),
    linear-gradient(24deg, transparent 0 62%, rgba(88,224,255,.18) 62.2% 62.5%, transparent 62.9%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 6px);
  mix-blend-mode:screen;
}

.shard-four::after{
  background:
    radial-gradient(circle at 46% 42%, rgba(255,222,89,.18), transparent 18%),
    radial-gradient(circle at 64% 48%, rgba(88,224,255,.14), transparent 20%);
  mix-blend-mode:screen;
}

.final-signal-section.is-shard-four-open .shard-four{
  pointer-events:auto;
  cursor:pointer;
  opacity:1;
  background:transparent;
  filter:none;
  animation:shardFourReveal 1.18s steps(8, end) both;
  box-shadow:
    0 0 28px rgba(88,224,255,.12),
    0 18px 34px rgba(0,0,0,.22);
}

.final-signal-section.is-shard-four-open .shard-four img{
  display:block;
}

.final-signal-section.is-shard-four-open .shard-four::before{
  opacity:0;
  animation:shardFourCircuit 2.6s steps(4, end) infinite;
}

.final-signal-section.is-shard-four-open .shard-four::after{
  opacity:0;
  animation:shardFourCorePulse 1.9s steps(3, end) infinite;
}

.final-signal-section.is-shard-four-open .shard-one,
.final-signal-section.is-shard-four-open .shard-two,
.final-signal-section.is-shard-four-open .shard-three{
  z-index:4;
  pointer-events:auto;
  opacity:.001;
  animation:none;
  box-shadow:none;
}

.final-signal-section.is-shard-four-open .shard-four span{
  display:none;
  border-color:rgba(255,222,89,.46);
  color:var(--yellow);
  text-shadow:
    1px 0 rgba(255,107,186,.76),
    -1px 0 rgba(88,224,255,.68);
}

.shard-four:hover,
.shard-four:focus-visible{
  outline:none;
  filter:brightness(1.02) contrast(1.02);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.24),
    0 0 34px rgba(88,224,255,.2),
    0 18px 34px rgba(0,0,0,.22);
}

.shard-five{
  inset:auto 0 0 auto;
  z-index:5;
  width:52%;
  height:44%;
  clip-path:polygon(0 24%, 45% 4%, 100% 0, 100% 100%, 18% 100%);
}

.shard-five img{
  display:none;
  width:100%;
  height:100%;
  object-fit:fill;
  filter:
    blur(.65px)
    brightness(.78)
    contrast(1.36)
    saturate(1.32);
}

.shard-five::before,
.shard-five::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0;
}

.shard-five::before{
  background:
    linear-gradient(135deg, rgba(5,8,18,.22), rgba(5,8,18,.04)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.055) 0 1px, transparent 1px 7px);
  mix-blend-mode:multiply;
}

.shard-five::after{
  background:
    radial-gradient(circle at 42% 34%, rgba(88,224,255,.16), transparent 24%),
    linear-gradient(90deg, rgba(255,107,186,.12), transparent 28%, rgba(88,224,255,.14));
  mix-blend-mode:screen;
}

.final-signal-section.is-shard-five-open .shard-five{
  pointer-events:auto;
  cursor:pointer;
  opacity:1;
  background:transparent;
  filter:none;
  animation:shardFiveReveal 1.12s steps(8, end) both;
  box-shadow:
    0 0 36px rgba(149,255,189,.24),
    -14px -18px 34px rgba(88,224,255,.15);
}

.final-signal-section.is-shard-five-open .shard-five img{
  display:block;
}

.final-signal-section.is-shard-five-open .shard-five::before{
  opacity:.62;
}

.final-signal-section.is-shard-five-open .shard-five::after{
  opacity:.28;
}

.final-signal-section.is-shard-five-open .shard-five span{
  right:18px;
  left:auto;
  bottom:16px;
  border-color:rgba(149,255,189,.46);
  color:var(--green);
  text-shadow:
    1px 0 rgba(255,107,186,.66),
    -1px 0 rgba(88,224,255,.7);
}

.shard-five:hover,
.shard-five:focus-visible{
  outline:none;
  filter:brightness(1.02) contrast(1.06);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.28),
    0 0 40px rgba(149,255,189,.3),
    -14px -18px 34px rgba(88,224,255,.18);
}

.shard-six{
  clip-path:polygon(0 68%, 22% 72%, 48% 58%, 56% 100%, 0 100%);
}

.slice-a{
  top:24%;
  clip-path:polygon(0 8%, 100% 0, 100% 42%, 0 52%);
}

.slice-b{
  top:54%;
  opacity:.3;
  filter:
    blur(4px)
    contrast(2.4)
    saturate(2.8)
    hue-rotate(-88deg);
  animation-delay:-1.1s;
  clip-path:polygon(0 28%, 100% 18%, 100% 66%, 0 58%);
}

.final-art-status::before{
  content:"";
  width:7px;
  height:7px;
  margin-right:9px;
  border-radius:50%;
  background:var(--pink);
  box-shadow:0 0 14px rgba(255,107,186,.72);
  animation:signalBlink 1.7s ease-in-out infinite;
}

.final-signal-copy{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:34px;
  border-left:1px solid rgba(255,255,255,.12);
}

.final-signal-copy::before{
  content:"01110000 01101100 01100011 / 07-11 / 1101";
  position:absolute;
  top:14px;
  right:18px;
  color:rgba(88,224,255,.24);
  font-size:11px;
  letter-spacing:1px;
}

.final-signal-copy .signal-kicker{
  margin-top:0;
  color:var(--pink);
  font-size:13px;
  line-height:1.5;
}

.final-signal-copy h3{
  margin-top:12px;
  font-size:32px;
  line-height:1.18;
}

.final-signal-copy p{
  margin-top:16px;
}

.first-layer-echo-section{
  display:none;
  opacity:0;
  transform:translateY(28px);
}

.first-layer-echo-section.is-revealed{
  display:block;
  opacity:1;
  transform:none;
  animation:firstLayerEchoIn .86s cubic-bezier(.18,.82,.2,1) both;
}

.first-layer-echo-panel{
  border-color:rgba(149,255,189,.2);
  background:
    linear-gradient(90deg, rgba(149,255,189,.035), transparent 26%, rgba(198,40,255,.04)),
    rgba(8,14,28,.82);
  box-shadow:
    0 28px 90px rgba(0,0,0,.34),
    inset 0 0 64px rgba(149,255,189,.035);
}

.first-layer-art-stage{
  position:relative;
  min-height:420px;
  overflow:hidden;
  background:rgba(4,7,15,.72);
}

.first-layer-art-frame{
  position:absolute;
  inset:0;
  overflow:hidden;
  border:0;
  background:#020409;
}

.first-layer-art-frame > img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:1;
  filter:brightness(.92) saturate(1.06) contrast(1.02);
  transform:scale(1.02);
}

.first-layer-shards{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:0;
  transition:opacity .28s steps(2, end);
}

.first-layer-echo-section.is-fragment-one-open .first-layer-shards{
  opacity:1;
  pointer-events:auto;
}

.first-layer-shard{
  position:absolute;
  display:block;
  overflow:hidden;
  border:0;
  padding:0;
  color:inherit;
  font:inherit;
  opacity:0;
  background:transparent;
  pointer-events:none;
}

.first-layer-shard-one{
  inset:0 0 auto auto;
  width:37%;
  height:34%;
  clip-path:polygon(18% 0, 100% 0, 100% 68%, 86% 100%, 58% 88%, 36% 70%, 0 52%, 8% 19%);
  transform-origin:72% 18%;
}

.first-layer-shard img{
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  filter:
    brightness(1.04)
    contrast(1.16)
    saturate(1.12);
  transform:none;
}

.first-layer-echo-section.is-fragment-one-open .first-layer-shard-one{
  pointer-events:auto;
  cursor:pointer;
  opacity:1;
  animation:shardOneReveal 1.16s steps(8, end) both;
  box-shadow:
    0 0 34px rgba(149,255,189,.22),
    -12px 14px 34px rgba(198,40,255,.16);
}

.first-layer-echo-section.is-fragment-one-open .first-layer-shard-one:hover,
.first-layer-echo-section.is-fragment-one-open .first-layer-shard-one:focus-visible{
  outline:none;
  filter:brightness(1.12) contrast(1.08);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.28),
    0 0 38px rgba(149,255,189,.28),
    -14px 16px 34px rgba(198,40,255,.18);
}

.first-layer-shard:disabled{
  cursor:default;
}

.first-layer-art-mask{
  position:absolute;
  inset:0;
  z-index:2;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.16), rgba(0,0,0,.42) 58%, rgba(0,0,0,.64)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.015) 0 1px, transparent 1px 10px),
    linear-gradient(120deg, rgba(149,255,189,.035), rgba(198,40,255,.03));
  mix-blend-mode:normal;
  backdrop-filter:blur(1px) saturate(.92);
}

.first-layer-question{
  position:absolute;
  left:50%;
  top:50%;
  z-index:3;
  color:rgba(247,251,255,.92);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:clamp(110px, 16vw, 220px);
  line-height:1;
  transform:translate(-50%, -50%);
  text-shadow:
    4px 0 rgba(255,107,186,.62),
    -4px 0 rgba(88,224,255,.55),
    0 0 42px rgba(247,251,255,.34);
}

.first-layer-art-frame .final-art-status{
  z-index:4;
}

.first-layer-fragment-one{
  position:absolute;
  right:24px;
  bottom:24px;
  z-index:4;
  display:none;
  padding:8px 12px;
  border:1px solid rgba(149,255,189,.42);
  border-radius:6px;
  color:#95ffbd;
  background:rgba(3,16,12,.72);
  font-size:12px;
  letter-spacing:.08em;
  text-shadow:0 0 14px rgba(149,255,189,.32);
  box-shadow:0 0 18px rgba(149,255,189,.1);
}

.first-layer-echo-section.is-fragment-one-open .first-layer-fragment-one{
  display:inline-flex;
}

.first-layer-echo-section.is-fragment-one-open .first-layer-question{
  opacity:.42;
}

.first-layer-copy .signal-kicker{
  color:var(--green);
}

.first-layer-copy h3{
  text-shadow:
    1px 0 rgba(255,107,186,.42),
    -1px 0 rgba(149,255,189,.44),
    0 0 22px rgba(149,255,189,.13);
}

.first-layer-offset-button{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  border:1px solid rgba(255,230,109,.34);
  border-radius:6px;
  padding:4px 10px;
  color:var(--yellow);
  background:
    linear-gradient(90deg, rgba(255,230,109,.08), rgba(0,0,0,.12)),
    rgba(0,0,0,.22);
  font:inherit;
  font-size:inherit;
  cursor:pointer;
  text-align:left;
  text-shadow:0 0 14px rgba(255,230,109,.18);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.025),
    0 0 16px rgba(255,230,109,.06);
  transition:color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.first-layer-offset-button:not(:disabled)::after{
  content:"INPUT";
  color:rgba(255,230,109,.62);
  font-size:10px;
  letter-spacing:.12em;
}

.first-layer-offset-button:not(:disabled):hover,
.first-layer-offset-button:not(:disabled):focus-visible{
  outline:none;
  color:#fff4a8;
  border-color:rgba(255,230,109,.72);
  transform:translateX(2px);
  text-shadow:0 0 18px rgba(255,230,109,.42);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 0 22px rgba(255,230,109,.18);
}

.first-layer-offset-button:disabled{
  cursor:default;
  min-height:0;
  border:0;
  padding:0;
  color:var(--yellow);
  background:transparent;
  text-shadow:0 0 16px rgba(255,230,109,.22);
  box-shadow:none;
  transform:none;
}

.decrypt-skip-section{
  margin-top:clamp(36px, 5vw, 72px);
  padding-bottom:clamp(42px, 7vw, 96px);
  animation-delay:2.12s;
}

.decrypt-skip-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:24px;
  align-items:center;
  overflow:hidden;
  border:1px solid rgba(255,107,186,.26);
  border-radius:24px;
  padding:24px;
  background:
    linear-gradient(120deg, rgba(255,107,186,.1), transparent 42%, rgba(88,224,255,.08)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 9px),
    rgba(8,12,26,.78);
  box-shadow:
    0 26px 84px rgba(0,0,0,.32),
    inset 0 0 0 1px rgba(255,255,255,.035),
    0 0 34px rgba(255,107,186,.08);
}

.decrypt-skip-panel::before{
  content:"SKIP // OVERRIDE";
  position:absolute;
  right:22px;
  top:14px;
  color:rgba(88,224,255,.2);
  font-size:11px;
  letter-spacing:.18em;
  pointer-events:none;
}

.decrypt-skip-copy{
  display:grid;
  gap:10px;
}

.decrypt-skip-copy .eyebrow{
  margin:0;
  color:var(--pink);
}

.decrypt-skip-copy h2{
  margin:0;
  font-size:clamp(30px, 4.8vw, 54px);
  line-height:1;
  letter-spacing:.04em;
  text-shadow:
    2px 0 rgba(88,224,255,.38),
    -2px 0 rgba(255,107,186,.34),
    0 0 24px rgba(255,107,186,.16);
}

.decrypt-skip-copy p{
  max-width:680px;
  color:var(--muted);
  line-height:1.7;
}

.decrypt-skip-actions{
  position:relative;
  z-index:1;
  display:grid;
  gap:10px;
  justify-items:end;
}

.decrypt-skip-button{
  min-width:150px;
  min-height:54px;
  border:1px solid rgba(255,107,186,.55);
  border-radius:14px;
  padding:0 28px;
  color:#fff;
  background:
    linear-gradient(90deg, rgba(255,107,186,.34), rgba(88,224,255,.16)),
    rgba(9,13,28,.92);
  font:inherit;
  font-size:20px;
  letter-spacing:.18em;
  cursor:pointer;
  text-shadow:0 0 18px rgba(255,255,255,.22);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.06),
    0 0 28px rgba(255,107,186,.18);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, filter .18s ease;
}

.decrypt-skip-button:hover,
.decrypt-skip-button:focus-visible{
  outline:none;
  transform:translateY(-2px);
  border-color:rgba(88,224,255,.72);
  filter:brightness(1.06);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.1),
    0 0 36px rgba(88,224,255,.2),
    0 0 24px rgba(255,107,186,.18);
}

.decrypt-skip-button:disabled{
  cursor:wait;
  opacity:.66;
  transform:none;
}

.decrypt-skip-status{
  min-height:1.5em;
  color:rgba(247,251,255,.72);
  font-size:12px;
  letter-spacing:.04em;
  text-align:right;
}

.decrypt-skip-confirm{
  position:fixed;
  inset:0;
  z-index:430;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  pointer-events:none;
  transition:opacity .24s ease;
}

.decrypt-skip-confirm.is-open{
  opacity:1;
  pointer-events:auto;
}

.decrypt-skip-confirm-backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(88,224,255,.12), transparent 36%),
    rgba(2,4,12,.78);
  backdrop-filter:blur(12px);
}

.decrypt-skip-confirm-panel{
  position:relative;
  width:min(520px, 100%);
  overflow:hidden;
  border:1px solid rgba(255,107,186,.38);
  border-radius:22px;
  padding:30px;
  background:
    linear-gradient(120deg, rgba(255,107,186,.16), rgba(8,12,26,.92) 44%, rgba(88,224,255,.12)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 8px),
    rgba(6,10,22,.96);
  box-shadow:
    0 32px 120px rgba(0,0,0,.58),
    0 0 46px rgba(255,107,186,.14),
    inset 0 0 0 1px rgba(255,255,255,.05);
  transform:translateY(14px) scale(.98);
  transition:transform .24s ease;
}

.decrypt-skip-confirm.is-open .decrypt-skip-confirm-panel{
  transform:translateY(0) scale(1);
}

.decrypt-skip-confirm-panel::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:linear-gradient(90deg, transparent, var(--pink), var(--cyan), transparent);
  opacity:.72;
}

.decrypt-skip-confirm-close{
  position:absolute;
  top:14px;
  right:14px;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  color:var(--text);
  background:rgba(255,255,255,.06);
  font:inherit;
  cursor:pointer;
}

.decrypt-skip-confirm-code{
  margin:0 42px 10px 0;
  color:var(--pink);
  font-size:11px;
  letter-spacing:.18em;
}

.decrypt-skip-confirm-panel h2{
  margin:0;
  font-size:clamp(28px, 5vw, 42px);
  line-height:1.1;
}

.decrypt-skip-confirm-panel p{
  margin-top:14px;
  color:var(--muted);
  line-height:1.7;
}

.decrypt-skip-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:24px;
}

.decrypt-skip-confirm-actions button{
  min-height:42px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  padding:0 18px;
  color:var(--text);
  background:rgba(255,255,255,.06);
  font:inherit;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.decrypt-skip-confirm-actions button:hover,
.decrypt-skip-confirm-actions button:focus-visible,
.decrypt-skip-confirm-close:hover,
.decrypt-skip-confirm-close:focus-visible{
  outline:none;
  transform:translateY(-1px);
  border-color:rgba(88,224,255,.62);
  box-shadow:0 0 24px rgba(88,224,255,.14);
}

.decrypt-skip-confirm-accept{
  border-color:rgba(255,107,186,.58) !important;
  background:
    linear-gradient(90deg, rgba(255,107,186,.3), rgba(88,224,255,.14)),
    rgba(255,255,255,.08) !important;
  letter-spacing:.08em;
}

@media (max-width:720px){
  .decrypt-skip-panel{
    grid-template-columns:1fr;
    padding:20px;
  }

  .decrypt-skip-panel::before{
    display:none;
  }

  .decrypt-skip-actions{
    justify-items:stretch;
  }

  .decrypt-skip-button{
    width:100%;
  }

  .decrypt-skip-status{
    text-align:left;
  }

  .decrypt-skip-confirm{
    padding:16px;
  }

  .decrypt-skip-confirm-panel{
    padding:26px 18px 18px;
  }

  .decrypt-skip-confirm-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}

.signal-strip{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:22px;
  color:rgba(247,251,255,.82);
  font-size:12px;
}

.signal-strip span{
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  background:rgba(255,255,255,.055);
}

.cipher-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:1px;
  margin-top:22px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.1);
  overflow:hidden;
  border-radius:8px;
}

.cipher-grid span{
  min-height:38px;
  display:grid;
  place-items:center;
  color:rgba(247,251,255,.76);
  background:rgba(5,8,18,.7);
  font-size:13px;
  text-shadow:1px 0 rgba(255,107,186,.7), -1px 0 rgba(88,224,255,.65);
}

.cipher-grid span:nth-child(3),
.cipher-grid span:nth-child(5){
  color:var(--yellow);
  animation:signalBlink 1.4s ease-in-out infinite;
}

.signal-readout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:22px;
}

.signal-readout div{
  min-height:78px;
  padding:15px;
  border-top:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(255,255,255,.055), transparent);
}

.signal-readout dt{
  color:var(--muted);
  font-size:13px;
}

.signal-readout dd{
  margin-top:10px;
  color:var(--yellow);
  font-size:22px;
}

.read-retry-button{
  position:relative;
  display:inline-grid;
  place-items:center;
  max-width:100%;
  min-height:34px;
  padding:0;
  border:0;
  color:var(--yellow);
  background:transparent;
  font:inherit;
  font-size:22px;
  text-align:left;
  cursor:pointer;
  text-shadow:
    2px 0 rgba(255,107,186,.72),
    -2px 0 rgba(88,224,255,.68),
    0 0 18px rgba(255,222,89,.36);
  animation:retryTextFault 1.15s steps(2, end) infinite;
}

.read-retry-button > span{
  display:grid;
  gap:4px;
  justify-items:start;
}

.read-retry-button small{
  color:var(--yellow);
  font-size:16px;
  line-height:1;
  letter-spacing:1.4px;
  text-shadow:
    1px 0 rgba(255,107,186,.62),
    -1px 0 rgba(88,224,255,.58),
    0 0 16px rgba(255,222,89,.34);
}

.read-retry-button::before,
.read-retry-button::after{
  content:"";
  position:absolute;
  left:-4px;
  right:-4px;
  height:2px;
  pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--cyan), var(--pink), transparent);
  opacity:.72;
  transform:translateY(-7px);
  animation:retryTextSlice .82s steps(3, end) infinite;
}

.read-retry-button::after{
  height:1px;
  transform:translateY(9px);
  animation-delay:-.34s;
}

.read-retry-button:hover,
.read-retry-button:focus-visible{
  outline:none;
  color:#fff;
  text-shadow:
    3px 0 rgba(255,107,186,.82),
    -3px 0 rgba(88,224,255,.78),
    0 0 22px rgba(255,222,89,.48);
}

.read-retry-button.is-resolved{
  color:var(--green);
  cursor:default;
  animation:retryResolvedText 1.6s steps(3, end) infinite;
}

.read-retry-button.is-date-ready{
  color:var(--yellow);
  cursor:pointer;
  animation:retryTextFault 2.4s steps(2, end) infinite;
}

.read-retry-button.is-final-date-ready{
  cursor:pointer;
  animation:retryTextFault 2.8s steps(2, end) infinite;
}

.read-retry-button.is-fragment-five-ready{
  color:var(--green);
  cursor:pointer;
  animation:retryTextFault 2.2s steps(2, end) infinite;
}

.read-retry-button.is-final-date-ready:hover small,
.read-retry-button.is-final-date-ready:focus-visible small,
.read-retry-button.is-fragment-five-ready:hover small,
.read-retry-button.is-fragment-five-ready:focus-visible small{
  color:#fff2a6;
}

.read-retry-button.is-date-ready::before,
.read-retry-button.is-date-ready::after,
.read-retry-button.is-final-date-ready::before,
.read-retry-button.is-final-date-ready::after,
.read-retry-button.is-fragment-five-ready::before,
.read-retry-button.is-fragment-five-ready::after{
  opacity:.34;
}

.read-retry-button:disabled{
  pointer-events:none;
}

.retry-puzzle{
  display:none;
  max-height:0;
  margin-top:0;
  overflow:hidden;
  border:1px solid transparent;
  opacity:0;
  transform:translateY(-12px);
  transition:
    max-height .42s steps(5, end),
    margin-top .42s steps(5, end),
    opacity .28s steps(2, end),
    transform .34s steps(4, end),
    border-color .34s steps(3, end);
}

.retry-puzzle.is-open{
  display:block;
  max-height:820px;
  margin-top:22px;
  padding:16px;
  border-color:rgba(88,224,255,.26);
  opacity:1;
  transform:translateY(0);
  background:
    linear-gradient(90deg, rgba(88,224,255,.1), transparent 45%, rgba(255,107,186,.08)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 1px, transparent 1px 7px),
    rgba(5,8,18,.58);
  box-shadow:
    inset 0 0 28px rgba(88,224,255,.08),
    0 0 34px rgba(88,224,255,.08);
  animation:retryConsoleBoot .62s steps(5, end) both;
}

.retry-puzzle.is-failed{
  border-color:rgba(255,52,75,.72);
  box-shadow:
    inset 0 0 34px rgba(255,52,75,.22),
    0 0 42px rgba(255,52,75,.24);
  animation:retryRedCrash .62s steps(5, end) both;
}

.retry-puzzle.is-resolving{
  border-color:rgba(149,255,189,.72);
  box-shadow:
    inset 0 0 34px rgba(149,255,189,.18),
    0 0 44px rgba(149,255,189,.24);
  animation:retryGreenSplit .74s steps(6, end) infinite;
}

.retry-puzzle-header{
  display:grid;
  gap:6px;
}

.retry-puzzle-header p{
  margin:0;
  color:var(--pink);
  font-size:11px;
  letter-spacing:1.5px;
}

.retry-puzzle-header strong{
  color:var(--text);
  font-size:15px;
  line-height:1.45;
}

.phase-plate{
  position:relative;
  display:block;
  width:100%;
  margin:14px 0 0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.18);
  border-radius:6px;
  background:rgba(5,8,18,.74);
  color:inherit;
  cursor:zoom-in;
  text-align:left;
  font:inherit;
  box-shadow:
    inset 0 0 24px rgba(88,224,255,.08),
    0 0 28px rgba(255,107,186,.08);
}

.phase-plate:hover,
.phase-plate:focus-visible{
  outline:none;
  border-color:rgba(255,222,89,.52);
  box-shadow:
    inset 0 0 28px rgba(255,222,89,.1),
    0 0 34px rgba(255,222,89,.18),
    0 0 0 1px rgba(255,255,255,.16);
}

.phase-plate::before,
.phase-plate::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.phase-plate::before{
  background:
    linear-gradient(90deg, rgba(88,224,255,.22), transparent 18%, transparent 72%, rgba(255,107,186,.18)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.11) 0 1px, transparent 1px 5px);
  mix-blend-mode:screen;
  opacity:.18;
  animation:phasePlateScan 6.8s steps(4, end) infinite;
}

.phase-plate::after{
  background:
    linear-gradient(118deg, transparent 0 47%, rgba(255,255,255,.46) 47.2% 47.45%, transparent 47.8%),
    linear-gradient(21deg, transparent 0 62%, rgba(88,224,255,.28) 62.1% 62.38%, transparent 62.7%);
  opacity:.22;
  mix-blend-mode:screen;
}

.phase-plate img{
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  filter:
    brightness(.9)
    contrast(1.34)
    saturate(1.18);
  transform:scale(1.012);
}

.phase-plate span{
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  z-index:2;
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  color:rgba(247,251,255,.76);
  background:rgba(5,8,18,.76);
  font-size:11px;
  line-height:1.5;
  text-shadow:1px 0 rgba(255,107,186,.66), -1px 0 rgba(88,224,255,.62);
}

.phase-plate span::after{
  content:"ZOOM";
  float:right;
  margin-left:10px;
  color:var(--yellow);
  letter-spacing:1px;
}

.retry-layer-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-top:12px;
}

.retry-layer-grid span{
  min-height:42px;
  display:flex;
  align-items:center;
  padding:8px;
  border:1px solid rgba(255,255,255,.11);
  color:rgba(247,251,255,.7);
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
    rgba(5,8,18,.58);
  font-size:10px;
  letter-spacing:.8px;
  line-height:1.35;
}

.pulse-sequence{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:8px;
  margin-top:14px;
}

.pulse-sequence span{
  min-height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.12);
  color:rgba(247,251,255,.58);
  background:rgba(255,255,255,.045);
  font-size:13px;
  text-transform:uppercase;
}

.pulse-sequence span.is-active{
  color:var(--cyan);
  border-color:rgba(88,224,255,.36);
  text-shadow:1px 0 rgba(255,107,186,.7), -1px 0 rgba(88,224,255,.72);
}

.pulse-sequence span.is-failed{
  color:#ff3450;
  border-color:rgba(255,52,75,.62);
}

.pulse-sequence span.is-complete{
  color:var(--green);
  border-color:rgba(149,255,189,.48);
}

.pulse-options{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-top:12px;
}

.pulse-options button{
  min-height:38px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:6px;
  color:rgba(247,251,255,.78);
  background:rgba(5,8,18,.68);
  font:inherit;
  font-size:13px;
  cursor:pointer;
  transition:
    border-color .18s ease,
    color .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.pulse-options button span,
.pulse-options button small{
  display:block;
}

.pulse-options button small{
  margin-top:3px;
  color:rgba(247,251,255,.56);
  font-size:10px;
  letter-spacing:1px;
}

.pulse-options button[data-retry-pulse="cyan"]{
  --pulse-color:88,224,255;
}

.pulse-options button[data-retry-pulse="pink"]{
  --pulse-color:255,107,186;
}

.pulse-options button[data-retry-pulse="yellow"]{
  --pulse-color:255,222,89;
}

.pulse-options button[data-retry-pulse="green"]{
  --pulse-color:149,255,189;
}

.pulse-options button[data-retry-pulse="white"]{
  --pulse-color:247,251,255;
}

.pulse-options button[data-retry-pulse="violet"]{
  --pulse-color:170,118,255;
}

.artist-options button[data-artist-pulse="status"]{
  --pulse-color:255,107,186;
}

.artist-options button[data-artist-pulse="date"]{
  --pulse-color:88,224,255;
}

.artist-options button[data-artist-pulse="track"]{
  --pulse-color:149,255,189;
}

.artist-options button[data-artist-pulse="file"]{
  --pulse-color:255,222,89;
}

.artist-options button[data-artist-pulse="score"],
.artist-options button[data-artist-pulse="rank"]{
  --pulse-color:170,118,255;
}

.pulse-options button:hover,
.pulse-options button:focus-visible,
.pulse-options button.is-used{
  outline:none;
  color:#fff;
  border-color:rgba(var(--pulse-color), .58);
  background:
    linear-gradient(180deg, rgba(var(--pulse-color), .18), rgba(5,8,18,.66));
  box-shadow:
    inset 0 0 20px rgba(var(--pulse-color), .12),
    0 0 20px rgba(var(--pulse-color), .16);
}

.pulse-options button.is-accepted{
  border-color:rgba(149,255,189,.72);
  box-shadow:0 0 22px rgba(149,255,189,.24);
}

.pulse-options button.is-rejected{
  border-color:rgba(255,52,75,.76);
  color:#ff9aa5;
  box-shadow:0 0 24px rgba(255,52,75,.25);
}

.pulse-options button:disabled{
  cursor:default;
}

.retry-status{
  margin-top:12px;
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}

.retry-status.is-failed{
  color:#ff6678;
}

.retry-status.is-complete{
  color:var(--green);
}

.stage-two-puzzle{
  border-color:rgba(255,222,89,.2);
}

.stage-two-puzzle.is-open{
  background:
    linear-gradient(100deg, rgba(255,222,89,.1), transparent 35%, rgba(88,224,255,.1) 72%, rgba(255,107,186,.08)),
    repeating-linear-gradient(90deg, transparent 0 20px, rgba(255,255,255,.055) 20px 21px),
    rgba(5,8,18,.62);
}

.artist-layer-grid{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.artist-sequence{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.artist-options button span{
  font-size:15px;
  letter-spacing:1.4px;
}

.settlement-plate{
  position:relative;
  display:block;
  width:100%;
  margin:14px 0 0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.2);
  border-radius:6px;
  background:rgba(5,8,18,.74);
  color:inherit;
  cursor:zoom-in;
  text-align:left;
  font:inherit;
  box-shadow:
    inset 0 0 24px rgba(88,224,255,.08),
    0 0 28px rgba(255,107,186,.08);
}

.settlement-plate:hover,
.settlement-plate:focus-visible{
  outline:none;
  border-color:rgba(255,222,89,.52);
  box-shadow:
    inset 0 0 28px rgba(255,222,89,.1),
    0 0 34px rgba(255,222,89,.18),
    0 0 0 1px rgba(255,255,255,.16);
}

.settlement-plate::before,
.settlement-plate::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.settlement-plate::before{
  background:
    linear-gradient(90deg, rgba(88,224,255,.16), transparent 24%, transparent 76%, rgba(255,107,186,.14)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.1) 0 1px, transparent 1px 5px);
  opacity:.18;
  mix-blend-mode:screen;
}

.settlement-plate::after{
  background:
    linear-gradient(117deg, transparent 0 44%, rgba(255,255,255,.22) 44.2% 44.45%, transparent 44.8%),
    linear-gradient(0deg, transparent 0 72%, rgba(88,224,255,.18) 72.2% 72.6%, transparent 73%);
  opacity:.22;
  mix-blend-mode:screen;
}

.settlement-plate img{
  display:block;
  width:100%;
  aspect-ratio:1672 / 941;
  object-fit:cover;
  filter:brightness(.93) contrast(1.08) saturate(1.08);
}

.settlement-plate span{
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  z-index:2;
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  color:rgba(247,251,255,.78);
  background:rgba(5,8,18,.76);
  font-size:11px;
  line-height:1.5;
  text-shadow:1px 0 rgba(255,107,186,.66), -1px 0 rgba(88,224,255,.62);
}

.settlement-plate span::after{
  content:"ZOOM";
  float:right;
  margin-left:10px;
  color:var(--yellow);
  letter-spacing:1px;
}

.fragment-settlement-plate{
  margin-top:16px;
}

.palace-plate{
  position:relative;
  z-index:1;
  display:block;
  width:min(260px, 100%);
  margin-top:18px;
  overflow:hidden;
  border:1px solid rgba(255,222,89,.24);
  border-radius:7px;
  background:rgba(5,8,18,.72);
  cursor:pointer;
  box-shadow:
    inset 0 0 28px rgba(255,222,89,.08),
    0 0 30px rgba(88,224,255,.1);
}

.palace-plate::before,
.palace-plate::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.palace-plate::before{
  z-index:1;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.12) 0 1px, transparent 1px 5px),
    linear-gradient(90deg, rgba(88,224,255,.14), transparent 26%, rgba(255,107,186,.12));
  mix-blend-mode:screen;
  opacity:.28;
}

.palace-plate::after{
  z-index:2;
  top:auto;
  height:26%;
  background:linear-gradient(90deg, rgba(88,224,255,.5), transparent 35%, rgba(255,107,186,.42));
  opacity:.22;
  animation:palaceScan 3.8s steps(7, end) infinite;
}

.palace-plate:hover,
.palace-plate:focus-visible{
  outline:none;
  border-color:rgba(255,222,89,.55);
  box-shadow:
    inset 0 0 32px rgba(255,222,89,.12),
    0 0 38px rgba(255,222,89,.16),
    0 0 34px rgba(88,224,255,.14);
}

.palace-plate img{
  display:block;
  width:100%;
  aspect-ratio:7 / 11;
  object-fit:cover;
  filter:brightness(.88) contrast(1.12) saturate(.95);
}

.palace-plate span{
  position:absolute;
  z-index:3;
  left:10px;
  right:10px;
  bottom:10px;
  display:grid;
  min-height:28px;
  place-items:center;
  border:1px solid rgba(255,222,89,.34);
  border-radius:5px;
  color:var(--yellow);
  background:rgba(5,8,18,.72);
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
}

.palace-equation{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:6px;
  margin-top:16px;
}

.palace-equation span{
  min-height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(88,224,255,.22);
  border-radius:6px;
  color:rgba(247,251,255,.82);
  background:
    linear-gradient(180deg, rgba(88,224,255,.08), rgba(255,255,255,.025)),
    rgba(5,8,18,.72);
  font-size:15px;
  letter-spacing:1px;
  text-shadow:
    1px 0 rgba(255,107,186,.38),
    -1px 0 rgba(88,224,255,.42);
}

.palace-equation span:last-child{
  color:var(--yellow);
  border-color:rgba(255,222,89,.42);
}

.gate-answer{
  margin-top:16px;
}

.multisource-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.05fr 1fr .85fr;
  gap:10px;
  margin-top:16px;
}

.multisource-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.18);
  border-radius:7px;
  background:
    linear-gradient(145deg, rgba(88,224,255,.08), rgba(255,255,255,.018)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 6px),
    rgba(5,8,18,.72);
  padding:10px;
}

button.multisource-card{
  width:100%;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}

button.multisource-card:hover,
button.multisource-card:focus-visible{
  outline:none;
  border-color:rgba(255,222,89,.48);
  box-shadow:
    inset 0 0 26px rgba(255,222,89,.08),
    0 0 28px rgba(255,222,89,.12);
}

.multisource-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, transparent 0 48%, rgba(255,255,255,.12) 48.5% 49%, transparent 49.5%);
  opacity:.16;
  pointer-events:none;
  transform:translateX(-60%);
  animation:sourceSweep 4.8s steps(8, end) infinite;
}

.multisource-card p{
  position:relative;
  z-index:1;
  margin:0 0 8px;
  color:var(--pink);
  font-size:10px;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.visual-source img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  object-position:center 48%;
  border:1px solid rgba(255,255,255,.12);
  border-radius:5px;
  filter:brightness(.82) contrast(1.2) saturate(.9);
}

.visual-source span{
  position:relative;
  z-index:1;
  display:block;
  margin-top:8px;
  color:rgba(247,251,255,.62);
  font-size:10px;
  letter-spacing:.8px;
  text-transform:uppercase;
}

.web-address{
  position:relative;
  z-index:1;
  min-height:36px;
  display:grid;
  align-items:center;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:5px;
  color:rgba(247,251,255,.76);
  background:rgba(3,6,14,.72);
  font-size:11px;
  line-height:1.35;
  word-break:break-all;
}

.web-response{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:8px;
  margin-top:10px;
  align-items:center;
}

.web-response span,
.web-response small{
  min-height:28px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.1);
  border-radius:5px;
  color:rgba(247,251,255,.66);
  background:rgba(255,255,255,.04);
  font-size:10px;
  letter-spacing:.8px;
}

.web-response b{
  min-height:28px;
  display:grid;
  place-items:center;
  border:1px solid rgba(149,255,189,.32);
  border-radius:5px;
  color:var(--green);
  background:rgba(149,255,189,.08);
  font-size:15px;
  letter-spacing:1px;
  text-shadow:1px 0 rgba(255,107,186,.38), -1px 0 rgba(88,224,255,.42);
}

.web-response small{
  grid-column:1 / -1;
  color:var(--yellow);
}

.audio-pulse-button{
  position:relative;
  z-index:1;
  width:100%;
  min-height:42px;
  border:1px solid rgba(88,224,255,.32);
  border-radius:6px;
  color:var(--cyan);
  background:
    linear-gradient(180deg, rgba(88,224,255,.12), rgba(255,255,255,.02)),
    rgba(5,8,18,.7);
  font:inherit;
  cursor:pointer;
  text-shadow:1px 0 rgba(255,107,186,.7), -1px 0 rgba(88,224,255,.68);
}

.audio-pulse-button:hover,
.audio-pulse-button:focus-visible,
.audio-pulse-button.is-playing{
  outline:none;
  border-color:rgba(255,222,89,.56);
  color:var(--yellow);
  box-shadow:0 0 26px rgba(255,222,89,.16);
}

.audio-bars{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:8px;
  margin-top:12px;
  align-items:end;
  height:48px;
}

.audio-bars span{
  display:block;
  height:36%;
  border:1px solid rgba(88,224,255,.22);
  border-radius:4px 4px 0 0;
  background:linear-gradient(180deg, rgba(88,224,255,.42), rgba(255,107,186,.18));
  box-shadow:0 0 18px rgba(88,224,255,.12);
}

.audio-bars span:nth-child(2){
  height:72%;
}

.audio-bars span:nth-child(3){
  height:46%;
}

.audio-pulse-button.is-playing + .audio-bars span{
  animation:audioPulseBlink .32s steps(2, end) 3;
}

.chem-lattice{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin-top:18px;
}

.chem-lattice span{
  min-height:76px;
  display:grid;
  align-content:center;
  gap:5px;
  padding:12px;
  border:1px solid rgba(88,224,255,.18);
  border-radius:7px;
  background:
    linear-gradient(135deg, rgba(88,224,255,.08), rgba(255,255,255,.018)),
    rgba(5,8,18,.7);
}

.chem-lattice b{
  color:var(--cyan);
  font-size:24px;
  letter-spacing:1.5px;
  text-shadow:1px 0 rgba(255,107,186,.58), -1px 0 rgba(88,224,255,.52);
}

.chem-lattice small{
  color:rgba(247,251,255,.68);
  font-size:12px;
  line-height:1.45;
}

.fragment-three-rift .fragment-result{
  font-size:clamp(24px, 4.6vw, 40px);
}

.palace-panel{
  width:min(760px, 100%);
}

.palace-panel img{
  max-height:min(72vh, 760px);
  object-fit:contain;
}

.release-panel{
  width:min(1280px, 100%);
}

.release-panel img{
  aspect-ratio:1718 / 917;
  max-height:74vh;
  object-fit:contain;
}

.settlement-panel img{
  aspect-ratio:1672 / 941;
  object-fit:contain;
}

.timeline{
  display:grid;
  gap:16px;
}

.timeline-item{
  display:grid;
  grid-template-columns:64px minmax(0, 1fr);
  align-items:start;
  gap:22px;
}

.timeline-item span{
  grid-row:1 / span 2;
}

.timeline-item h3,
.timeline-item p{
  grid-column:2;
}

.timeline-item:nth-child(1),
.rule-card:nth-child(1){
  animation-delay:.1s;
}

.timeline-item:nth-child(2),
.rule-card:nth-child(2){
  animation-delay:.18s;
}

.timeline-item:nth-child(3),
.rule-card:nth-child(3){
  animation-delay:.26s;
}

.timeline-item:nth-child(4){
  animation-delay:.34s;
}

.timeline-item span,
.format-panel-heading span{
  display:inline-grid;
  place-items:center;
  width:42px;
  height:32px;
  border-radius:6px;
  color:#08111a;
  background:var(--yellow);
}

.format-layout{
  display:grid;
  gap:16px;
}

.format-panel{
  padding:24px;
}

.format-panel-heading{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}

.format-panel-heading h3{
  font-size:26px;
}

.format-subgrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.rule-card{
  padding:22px;
}

.rule-card h4{
  font-size:22px;
}

.format-panel:nth-child(2) .format-panel-heading span{
  background:var(--cyan);
}

.rule-card:nth-child(2) h4{
  color:var(--pink);
}

.rule-card:nth-child(1) h4{
  color:var(--yellow);
}

.format-song-pool-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  margin-top:16px;
  padding:0 18px;
  border:1px solid rgba(88,224,255,.28);
  border-radius:8px;
  background:rgba(88,224,255,.08);
  transition:
    transform .2s ease,
    border-color .2s ease,
    background .2s ease;
}

.format-song-pool-link span{
  color:var(--muted);
  font-size:14px;
}

.format-song-pool-link strong{
  color:var(--text);
  font-size:18px;
  font-weight:400;
}

.format-song-pool-link:hover,
.format-song-pool-link:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(88,224,255,.64);
  background:rgba(88,224,255,.13);
}

.format-panel:nth-child(2){
  background:
    linear-gradient(135deg, rgba(88,224,255,.08), rgba(255,255,255,.04)),
    var(--panel);
}

.format-panel:nth-child(2) .format-panel-heading h3{
  color:var(--cyan);
}

.format-panel:nth-child(1) .format-panel-heading h3{
  color:var(--pink);
}

.requirement-list{
  display:grid;
  gap:18px;
  padding:26px 30px 28px;
  list-style:none;
  counter-reset:requirement;
}

.requirement-list li{
  position:relative;
  min-height:52px;
  margin-top:0;
  padding-left:58px;
  font-size:18px;
}

.requirement-list li::before{
  counter-increment:requirement;
  content:counter(requirement, decimal-leading-zero);
  position:absolute;
  left:0;
  top:2px;
  display:grid;
  place-items:center;
  width:38px;
  height:30px;
  border-radius:6px;
  color:#08111a;
  background:var(--yellow);
}

.requirement-list li:nth-child(2)::before{
  background:var(--cyan);
}

.requirement-list li:nth-child(3)::before{
  background:var(--pink);
}

.ranking-preview-list{
  display:grid;
  gap:12px;
  padding:18px;
}

.ranking-preview-item{
  display:grid;
  grid-template-columns:54px minmax(0, 1fr) auto;
  align-items:center;
  gap:14px;
  min-height:70px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;
  background:rgba(255,255,255,.055);
}

.ranking-preview-rank{
  display:grid;
  place-items:center;
  width:42px;
  height:34px;
  border-radius:6px;
  color:#08111a;
  background:var(--yellow);
}

.ranking-preview-item[data-rank="2"] .ranking-preview-rank{
  background:var(--cyan);
}

.ranking-preview-item[data-rank="3"] .ranking-preview-rank{
  background:var(--pink);
}

.ranking-preview-name{
  min-width:0;
  font-size:22px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ranking-preview-score{
  color:var(--cyan);
  font-size:24px;
}

.ranking-preview-empty{
  padding:18px;
  color:var(--muted);
  text-align:center;
}

.ranking-link{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:62px;
  margin-top:14px;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.34);
  border-radius:8px;
  color:var(--text);
  background:rgba(9,13,29,.9);
  font-size:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}

.ranking-link::before{
  content:"";
  position:absolute;
  inset:-40% auto -40% -38%;
  width:34%;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.32),
    transparent
  );
  transform:skewX(-18deg);
  transition:left .65s ease;
}

.ranking-link::after{
  content:"";
  width:8px;
  height:8px;
  margin-left:12px;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}

.ranking-link:hover,
.ranking-link:focus-visible{
  border-color:rgba(88,224,255,.7);
  box-shadow:
    0 0 34px rgba(88,224,255,.18),
    0 24px 70px rgba(0,0,0,.32);
  outline:none;
}

.ranking-link:hover::before,
.ranking-link:focus-visible::before{
  left:104%;
}

body.qualifier-mystery-stage{
  background:
    radial-gradient(ellipse at 50% 30%, rgba(18,28,42,.72), rgba(5,7,13,.96) 78%),
    image-set(
      url("../assets/bg.webp") type("image/webp"),
      url("../assets/bg.png") type("image/png")
    ) center/cover fixed;
}

body.qualifier-mystery-stage::after{
  opacity:.34;
  background:
    linear-gradient(90deg, rgba(0,0,0,.72), transparent 22%, transparent 78%, rgba(0,0,0,.72)),
    radial-gradient(ellipse at 50% 45%, transparent 0 44%, rgba(0,0,0,.38) 78%, rgba(0,0,0,.64) 100%);
  animation:mysterySideDim 2.8s ease both;
}

body.qualifier-mystery-stage main > section:not(#signalGate):not(#rankingPreview):not(.decrypt-skip-section),
body.qualifier-mystery-stage .notice-band{
  max-height:0;
  margin-top:0;
  margin-bottom:0;
  padding-top:0;
  padding-bottom:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-18px) scale(.985);
  pointer-events:none;
  transition:
    max-height 1.1s ease,
    margin .9s ease,
    padding .9s ease,
    opacity .8s ease,
    transform 1.1s ease;
}

body.qualifier-mystery-stage #signalGate,
body.qualifier-mystery-stage #rankingPreview,
body.qualifier-mystery-stage .decrypt-skip-section{
  position:relative;
  z-index:1;
  animation:mysterySectionRemain 1.8s ease both;
}

body.qualifier-mystery-stage #rankingPreview .ranking-preview-list{
  border-color:rgba(149,255,189,.2);
  background:
    linear-gradient(120deg, rgba(149,255,189,.06), rgba(88,224,255,.04)),
    rgba(7,12,22,.8);
  box-shadow:
    0 28px 80px rgba(0,0,0,.38),
    inset 0 0 42px rgba(149,255,189,.035);
  animation:rankingMysteryBloom 2.4s ease both;
}

body.qualifier-mystery-stage .ranking-preview-item{
  border-color:rgba(255,255,255,.085);
  background:rgba(255,255,255,.035);
  animation:rankingMysteryRow 1.4s ease both;
}

body.qualifier-mystery-stage .ranking-preview-item:nth-child(2){
  animation-delay:.16s;
}

body.qualifier-mystery-stage .ranking-preview-item:nth-child(3){
  animation-delay:.32s;
}

body.qualifier-mystery-stage .ranking-link{
  border-color:rgba(149,255,189,.32);
  background:
    linear-gradient(90deg, rgba(149,255,189,.08), rgba(88,224,255,.035)),
    rgba(5,8,16,.88);
  box-shadow:
    0 24px 70px rgba(0,0,0,.32),
    0 0 36px rgba(149,255,189,.08);
}

.qualifier-ranking-rift{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:24px;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .72s ease, visibility .72s ease;
}

.qualifier-ranking-rift.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.qualifier-ranking-rift:not(.is-open){
  pointer-events:none !important;
  visibility:hidden;
}

.qualifier-ranking-rift:not(.is-open) .qualifier-reboot-stage{
  visibility:hidden;
  opacity:0;
  pointer-events:none;
}

.qualifier-ranking-backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 38%, rgba(14,24,38,.56), rgba(0,0,0,.82) 72%),
    linear-gradient(90deg, rgba(0,0,0,.64), transparent 28%, transparent 72%, rgba(0,0,0,.64));
  backdrop-filter:blur(10px);
}

.qualifier-ranking-panel{
  position:relative;
  z-index:1;
  width:min(980px, 100%);
  max-height:calc(100vh - 48px);
  max-height:calc(100dvh - 48px);
  overflow:auto;
  padding:30px;
  border:1px solid rgba(149,255,189,.2);
  border-radius:8px;
  background:
    linear-gradient(135deg, rgba(149,255,189,.055), rgba(88,224,255,.035)),
    rgba(8,12,22,.94);
  box-shadow:
    0 34px 110px rgba(0,0,0,.55),
    inset 0 0 60px rgba(149,255,189,.035);
  animation:qualifierPanelRise .9s ease both;
}

.qualifier-ranking-close{
  position:absolute;
  top:16px;
  right:16px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  color:var(--text);
  background:rgba(255,255,255,.04);
  font:inherit;
  cursor:pointer;
}

.qualifier-ranking-heading h2{
  margin-top:6px;
  font-size:clamp(30px, 5vw, 54px);
}

.qualifier-ranking-table{
  display:grid;
  gap:10px;
  margin-top:24px;
}

.qualifier-row{
  display:grid;
  grid-template-columns:64px minmax(0, 1fr) minmax(130px, auto);
  align-items:center;
  gap:14px;
  min-height:58px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:8px;
  background:rgba(255,255,255,.035);
}

.qualifier-row > span{
  color:var(--green);
}

.qualifier-row strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:22px;
}

.qualifier-row b{
  color:var(--cyan);
  font-size:22px;
  font-weight:400;
  text-align:right;
}

.qualifier-row.is-input{
  grid-template-columns:64px minmax(0, 1fr) minmax(140px, .42fr);
}

.qualifier-row label{
  display:grid;
  gap:5px;
}

.qualifier-row label span{
  color:var(--muted);
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.qualifier-row input{
  width:100%;
  min-height:38px;
  border:1px solid rgba(149,255,189,.24);
  border-radius:6px;
  color:var(--text);
  background:rgba(0,0,0,.26);
  padding:0 10px;
  font:inherit;
  font-size:18px;
}

.qualifier-row input:focus{
  outline:none;
  border-color:rgba(149,255,189,.66);
  box-shadow:0 0 0 1px rgba(149,255,189,.18), 0 0 28px rgba(149,255,189,.12);
}

.qualifier-ranking-status{
  min-height:24px;
  margin-top:18px;
  color:var(--muted);
  text-align:center;
}

.qualifier-ranking-status.is-failed{
  color:var(--pink);
}

.qualifier-ranking-status.is-complete{
  color:var(--green);
}

.qualifier-reboot-button{
  display:block;
  width:min(260px, 100%);
  min-height:50px;
  margin:12px auto 0;
  border:1px solid rgba(149,255,189,.38);
  border-radius:999px;
  color:var(--green);
  background:rgba(149,255,189,.05);
  font:inherit;
  font-size:20px;
  letter-spacing:2px;
  cursor:pointer;
}

.qualifier-reboot-button:hover,
.qualifier-reboot-button:focus-visible{
  outline:none;
  background:rgba(149,255,189,.13);
  box-shadow:0 0 32px rgba(149,255,189,.16);
}

.qualifier-ranking-rift.is-failed .qualifier-ranking-panel{
  animation:qualifierPanelDeny .42s ease both;
}

.qualifier-ranking-rift.is-complete .qualifier-ranking-panel{
  border-color:rgba(149,255,189,.54);
  box-shadow:
    0 34px 110px rgba(0,0,0,.55),
    0 0 54px rgba(149,255,189,.16),
    inset 0 0 68px rgba(149,255,189,.06);
}

.qualifier-ranking-rift.is-reboot-sequencing .qualifier-ranking-heading,
.qualifier-ranking-rift.is-reboot-sequencing .qualifier-ranking-status,
.qualifier-ranking-rift.is-reboot-sequencing .qualifier-reboot-button,
.qualifier-ranking-rift.is-blackout .qualifier-ranking-close{
  opacity:0;
  pointer-events:none;
  transition:opacity .7s ease;
}

.qualifier-row.is-extracting{
  animation:rankingRowExtract 1.18s cubic-bezier(.72,0,.18,1) both;
}

.qualifier-ranking-rift.is-blackout .qualifier-ranking-backdrop{
  background:#000;
  backdrop-filter:none;
  transition:background 3s ease, backdrop-filter 3s ease;
}

.qualifier-ranking-rift.is-blackout .qualifier-ranking-panel{
  border-color:rgba(0,0,0,0);
  background:#000;
  box-shadow:none;
  transition:
    background 3s ease,
    border-color 3s ease,
    box-shadow 3s ease;
}

.qualifier-reboot-stage{
  position:absolute;
  inset:0;
  z-index:4;
  display:grid;
  place-items:center;
  padding:28px;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
}

.qualifier-ranking-rift.is-fragment-five-ready .qualifier-reboot-stage{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transition:opacity 1.8s ease;
}

.reboot-art{
  position:relative;
  width:min(704px, 86vw);
  aspect-ratio:1.486 / 1;
  overflow:hidden;
  background:#050711;
  transform:scale(.96);
  opacity:0;
  filter:brightness(.86) saturate(.96);
  box-shadow:
    0 0 0 1px rgba(149,255,189,.16),
    0 0 78px rgba(149,255,189,.18),
    0 0 150px rgba(88,224,255,.08);
  animation:rebootArtReveal 2.2s ease .18s both;
}

.reboot-art-base{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.86;
  filter:
    brightness(.92)
    saturate(.96)
    contrast(1.04);
}

.reboot-art::before,
.reboot-art::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.reboot-art::before{
  z-index:3;
  background:
    linear-gradient(90deg, rgba(0,0,0,.18), transparent 24%, transparent 72%, rgba(0,0,0,.18)),
    linear-gradient(180deg, transparent 0 58%, rgba(0,0,0,.16) 100%);
  mix-blend-mode:multiply;
}

.reboot-art::after{
  z-index:7;
  border:1px solid rgba(149,255,189,.08);
  box-shadow:inset 0 0 80px rgba(0,0,0,.36);
}

.reboot-shard{
  position:absolute;
  z-index:2;
  display:block;
  object-fit:fill;
  opacity:0;
  filter:brightness(.96) contrast(1.04);
  pointer-events:none;
  animation:rebootShardSettle 1.75s ease both;
}

.reboot-shard-one{
  inset:0 0 auto auto;
  width:37%;
  height:34%;
  clip-path:polygon(18% 0, 100% 0, 100% 68%, 86% 100%, 58% 88%, 36% 70%, 0 52%, 8% 19%);
  animation-delay:.44s;
}

.reboot-shard-two{
  inset:0 auto auto 0;
  width:40%;
  height:42%;
  clip-path:polygon(0 0, 100% 0, 87.5% 71.4%, 32.5% 100%, 0 90.4%);
  animation-delay:.58s;
}

.reboot-shard-three{
  inset:30% auto auto 0;
  width:48%;
  height:42%;
  clip-path:polygon(0 19.05%, 27.08% 28.57%, 72.92% 0, 100% 66.67%, 45.83% 100%, 0 90.48%);
  animation-delay:.72s;
}

.reboot-shard-four{
  inset:0 0 auto 0;
  width:100%;
  height:66%;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 73% 94%, 52% 88%, 36% 87%, 20% 98%, 0 90%);
  animation-delay:.86s;
}

.reboot-shard-five{
  inset:auto 0 0 auto;
  z-index:8;
  width:52%;
  height:44%;
  clip-path:polygon(0 24%, 45% 4%, 100% 0, 100% 100%, 18% 100%);
  cursor:pointer;
  pointer-events:auto;
  animation-delay:2.05s;
}

.fragment-five-entry{
  position:absolute;
  inset:auto 0 0 auto;
  z-index:10;
  width:52%;
  height:44%;
  border:0;
  color:var(--green);
  background:transparent;
  backdrop-filter:none;
  clip-path:polygon(0 24%, 45% 4%, 100% 0, 100% 100%, 18% 100%);
  font:inherit;
  font-size:18px;
  letter-spacing:1px;
  cursor:pointer;
  pointer-events:auto;
  opacity:0;
  transform:translate(18px, 22px) scale(.82);
  box-shadow:none;
}

.fragment-five-entry span{
  position:absolute;
  right:18px;
  bottom:18px;
  padding:6px 10px;
  border:1px solid rgba(149,255,189,.32);
  border-radius:6px;
  background:rgba(0,0,0,.54);
}

.qualifier-ranking-rift.is-fragment-five-ready .fragment-five-entry{
  animation:fragmentFiveUnlock 1.75s cubic-bezier(.2,.78,.22,1) 2.05s both;
}

.fragment-five-entry:hover,
.fragment-five-entry:focus-visible{
  outline:none;
  background:transparent;
  box-shadow:none;
}

.fragment-five-entry:hover span,
.fragment-five-entry:focus-visible span{
  border-color:rgba(149,255,189,.64);
  box-shadow:
    0 0 0 1px rgba(149,255,189,.12),
    0 0 30px rgba(149,255,189,.22);
}

body.qualifier-mystery-stage .gate-keypad button{
  letter-spacing:1.4px;
}

.site-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:min(1180px, calc(100% - 32px));
  margin:90px auto 0;
  padding:28px 0 42px;
  color:var(--muted);
  border-top:1px solid var(--line);
  animation:panelFloatIn .9s ease 1.7s both;
}

.signal-rift{
  position:fixed;
  inset:0;
  z-index:90;
  display:grid;
  place-items:center;
  padding:24px;
  visibility:hidden;
  pointer-events:none;
}

.signal-rift::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    repeating-linear-gradient(0deg, transparent 0 10px, rgba(255,255,255,.18) 10px 11px),
    repeating-linear-gradient(90deg, transparent 0 34px, rgba(255,107,186,.2) 34px 38px, transparent 38px 72px);
  opacity:0;
  mix-blend-mode:screen;
  transform:translateX(-18px);
}

.signal-rift.is-open{
  visibility:visible;
  pointer-events:auto;
}

.signal-rift.is-open::before{
  animation:riftWorldBreak .56s steps(4, end) both;
}

.signal-rift-backdrop{
  position:absolute;
  inset:0;
  z-index:0;
  background:
    repeating-linear-gradient(0deg, rgba(88,224,255,.09) 0 1px, transparent 1px 5px),
    rgba(2,4,12,.74);
  opacity:0;
  backdrop-filter:blur(0);
  transition:
    opacity .34s ease,
    backdrop-filter .46s ease;
}

.signal-rift.is-open .signal-rift-backdrop{
  opacity:1;
  backdrop-filter:blur(8px);
}

.signal-rift.is-closing .signal-rift-backdrop{
  opacity:0;
  backdrop-filter:blur(0);
}

.signal-rift-panel{
  position:relative;
  z-index:2;
  width:min(640px, 100%);
  padding:34px 42px 36px;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.44);
  border-radius:8px;
  background:
    linear-gradient(90deg, rgba(255,107,186,.16), transparent 18%, rgba(88,224,255,.13) 56%, transparent),
    repeating-linear-gradient(0deg, rgba(255,255,255,.08) 0 1px, transparent 1px 7px),
    rgba(7,10,23,.96);
  box-shadow:
    0 34px 120px rgba(0,0,0,.62),
    0 0 42px rgba(88,224,255,.23),
    -18px 0 32px rgba(255,107,186,.12),
    12px 0 0 rgba(88,224,255,.04),
    -12px 0 0 rgba(255,107,186,.04);
  clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity:0;
  transform:skewX(-5deg);
}

.signal-rift.is-open .signal-rift-panel{
  animation:
    riftOpen .72s steps(7, end) both,
    riftFracture 1.18s steps(2, end) .72s infinite;
}

.signal-rift.is-closing .signal-rift-panel{
  animation:riftClose .42s steps(5, end) both;
}

.signal-rift-panel::before,
.signal-rift-panel::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.signal-rift-panel::before{
  background:
    linear-gradient(90deg, transparent 0 9%, rgba(255,255,255,.3) 9% 11%, transparent 11% 40%, rgba(88,224,255,.28) 40% 43%, transparent 43%),
    repeating-linear-gradient(90deg, transparent 0 20px, rgba(255,107,186,.22) 20px 25px, transparent 25px 52px),
    repeating-linear-gradient(0deg, transparent 0 12px, rgba(88,224,255,.12) 12px 15px);
  mix-blend-mode:screen;
  transform:translateX(-40%);
  animation:riftScan .82s steps(4, end) infinite;
}

.signal-rift-panel::after{
  inset:auto 0 0;
  height:5px;
  background:linear-gradient(90deg, var(--pink), var(--cyan), var(--yellow));
  box-shadow:0 0 24px rgba(88,224,255,.42);
}

.signal-rift-close{
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  color:var(--text);
  background:rgba(5,8,18,.68);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

.signal-rift-close:hover,
.signal-rift-close:focus-visible,
.final-art-frame:focus-visible{
  outline:none;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.26),
    0 0 28px rgba(88,224,255,.32);
}

.signal-rift-code{
  position:relative;
  z-index:1;
  color:var(--pink);
  font-size:12px;
  letter-spacing:2px;
}

.signal-rift-panel h2{
  position:relative;
  z-index:1;
  max-width:520px;
  margin-top:16px;
  font-size:clamp(26px, 4vw, 42px);
  line-height:1.22;
  text-shadow:
    2px 0 rgba(255,107,186,.74),
    -2px 0 rgba(88,224,255,.62),
    0 0 24px rgba(88,224,255,.26);
}

.final-date-panel{
  width:100%;
  height:100dvh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:0;
  background:#000205;
  box-shadow:
    inset 0 0 170px rgba(0,0,0,.86),
    0 0 42px rgba(88,224,255,.16),
    0 34px 120px rgba(0,0,0,.72);
}

.final-date-panel::before{
  z-index:2;
  background:
    linear-gradient(90deg, transparent 0 12%, rgba(255,255,255,.12) 12.3% 12.7%, transparent 13% 58%, rgba(88,224,255,.1) 58.2% 58.7%, transparent 59%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.065) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(90deg, rgba(255,107,186,.055) 0 1px, transparent 1px 17px);
  opacity:.36;
}

.final-date-panel::after{
  z-index:3;
  inset:0;
  height:auto;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.12), rgba(88,224,255,.04) 13%, transparent 29%),
    radial-gradient(circle at 50% 50%, transparent 0 19%, rgba(0,0,0,.48) 49%, rgba(0,0,0,.88) 100%),
    linear-gradient(180deg, rgba(0,0,0,.68), rgba(0,0,0,.28) 48%, rgba(0,0,0,.78));
  box-shadow:none;
  opacity:1;
  transition:opacity 3.2s ease, background 3.2s ease, z-index 0s linear 3.2s;
}

.final-date-obscured-bg{
  position:absolute;
  inset:-5%;
  z-index:1;
  overflow:hidden;
  background:#000205;
  opacity:.68;
  filter:
    brightness(.86)
    contrast(1.25)
    saturate(1.2);
  transform:scale(1.1);
  animation:finalDateImageDrift 8s steps(5, end) infinite;
}

.final-date-rift.is-open .final-date-obscured-bg{
  background:
    image-set(
      url("../assets/countdown-0620-obscured.webp") type("image/webp"),
      url("../assets/countdown-0620-obscured.png") type("image/png")
    ) center / cover no-repeat,
    #000205;
}

.final-date-obscured-bg::before,
.final-date-obscured-bg::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}

.final-date-obscured-bg::before{
  background:
    linear-gradient(98deg, rgba(0,0,0,.66), transparent 43%, rgba(0,0,0,.72)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.08) 0 1px, transparent 1px 9px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.34) 0 18px, rgba(255,255,255,.025) 18px 19px, rgba(0,0,0,.34) 19px 38px);
  mix-blend-mode:multiply;
}

.final-date-obscured-bg::after{
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.22), transparent 15%),
    linear-gradient(90deg, rgba(255,107,186,.22), rgba(88,224,255,.16), rgba(255,222,89,.14));
  opacity:.26;
  mix-blend-mode:screen;
  animation:finalDateSignalCut 1.7s steps(3, end) infinite;
}

.final-date-countdown{
  position:relative;
  z-index:4;
  display:grid;
  place-items:center;
  width:min(920px, calc(100% - 56px));
  min-height:260px;
  padding:42px 20px;
  text-align:center;
  background:transparent;
}

.final-date-countdown::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:-1;
  width:min(62vw, 620px);
  aspect-ratio:1;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(255,255,255,.22) 0 8%, rgba(88,224,255,.12) 22%, rgba(88,224,255,.055) 38%, transparent 68%);
  filter:blur(20px);
  transform:translate(-50%, -50%);
  opacity:.92;
}

.final-date-countdown p{
  margin:0 0 18px;
  color:rgba(247,251,255,.72);
  font-size:15px;
  line-height:1;
  letter-spacing:3px;
  text-transform:uppercase;
  text-shadow:
    1px 0 rgba(255,107,186,.54),
    -1px 0 rgba(88,224,255,.58),
    0 0 18px rgba(255,255,255,.2);
}

.final-date-countdown p span{
  margin-left:8px;
  color:rgba(255,222,89,.76);
  font-size:12px;
  letter-spacing:1px;
}

.final-date-countdown h2{
  max-width:100%;
  margin:0;
  color:#f8fbff;
  font-size:clamp(38px, 6.15vw, 96px);
  line-height:1;
  text-align:center;
  white-space:nowrap;
  word-break:keep-all;
  text-shadow:
    3px 0 rgba(255,107,186,.72),
    -3px 0 rgba(88,224,255,.74),
    0 0 34px rgba(255,255,255,.3);
}

.final-date-countdown time{
  display:inline-block;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.final-date-countdown time.is-ticking{
  animation:countdownTickFlash .32s steps(2, end) both;
}

.final-date-boot-panel{
  display:grid;
  place-items:center;
  gap:14px;
  margin-top:26px;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:
    opacity .42s ease,
    transform .42s ease;
}

.final-date-rift.is-countdown-complete .final-date-boot-panel{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.boot-loadout{
  display:grid;
  grid-template-columns:auto minmax(160px, 260px) 46px;
  align-items:center;
  gap:10px;
  width:min(420px, 100%);
  color:rgba(247,251,255,.72);
  font-size:11px;
  letter-spacing:1.4px;
}

.boot-loadout[aria-hidden="true"]{
  display:none;
}

.boot-progress-track{
  position:relative;
  height:6px;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.3);
  background:rgba(0,0,0,.72);
}

.boot-progress-track i{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg, rgba(88,224,255,.35), rgba(247,251,255,.9));
  box-shadow:0 0 18px rgba(88,224,255,.42);
  transition:width .22s ease;
}

.boot-button{
  min-width:132px;
  min-height:42px;
  border:1px solid rgba(247,251,255,.58);
  border-radius:0;
  color:#f7fbff;
  background:rgba(0,12,20,.62);
  font:inherit;
  font-size:18px;
  letter-spacing:3px;
  cursor:pointer;
  text-shadow:
    1px 0 rgba(255,107,186,.5),
    -1px 0 rgba(88,224,255,.62);
  box-shadow:
    inset 0 0 22px rgba(88,224,255,.12),
    0 0 24px rgba(0,0,0,.45);
}

.boot-button:disabled{
  cursor:default;
  opacity:.38;
}

.boot-button:not(:disabled):hover,
.boot-button:not(:disabled):focus-visible{
  outline:none;
  color:#061019;
  background:#f7fbff;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.5),
    0 0 34px rgba(88,224,255,.34);
}

.final-date-rift.is-booting .final-date-panel::after{
  z-index:6;
  background:#000;
  opacity:1;
  transition:none;
  animation:bootBlackout 3.35s ease both;
}

.final-date-rift.is-booting .final-date-countdown,
.final-date-rift.is-booting .final-date-obscured-bg,
.final-date-rift.is-booting .signal-rift-close{
  pointer-events:none;
}

.boot-dialogue-stage{
  position:absolute;
  inset:0;
  z-index:7;
  display:grid;
  place-items:center;
  padding:clamp(18px, 5vw, 72px);
  visibility:hidden;
  opacity:0;
  pointer-events:none;
}

.final-date-rift.is-dialogue-active .boot-dialogue-stage{
  visibility:visible;
  opacity:1;
}

.fragment-seven-dialogue-stage{
  position:fixed;
  inset:0;
  z-index:325;
  display:grid;
  place-items:center;
  padding:clamp(18px, 5vw, 72px);
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:#000;
  transition:opacity .34s ease, visibility .34s ease;
}

.fragment-seven-dialogue-stage.is-active{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.final-date-rift.is-returning .final-date-panel{
  animation:bootReturnFade 1.24s ease both;
}

.boot-dialogue-stack{
  position:relative;
  width:min(76vw, 1320px);
  height:min(74vh, 780px);
}

.boot-text-card{
  position:absolute;
  left:50%;
  top:50%;
  width:100%;
  min-height:clamp(70px, 6.4vw, 118px);
  display:grid;
  align-items:center;
  padding:0 clamp(22px, 2.35vw, 48px);
  overflow:hidden;
  color:rgba(247,251,255,.92);
  background:rgba(0,22,31,.86);
  border-left:4px solid rgba(0,126,177,.85);
  border-right:4px solid rgba(0,126,177,.85);
  font-size:clamp(20px, 2.15vw, 40px);
  line-height:1.28;
  letter-spacing:0;
  text-shadow:0 0 18px rgba(247,251,255,.16);
  box-shadow:
    inset 0 0 0 1px rgba(88,224,255,.08),
    0 12px 42px rgba(0,0,0,.32);
  transform:translate(-50%, -50%);
}

.boot-text-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(88,224,255,.1), transparent 18%, transparent 82%, rgba(88,224,255,.1)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 8px);
  pointer-events:none;
}

.boot-text-card.is-entering{
  z-index:2;
  animation:bootTextOpen .82s cubic-bezier(.2, .78, .22, 1) both;
}

.boot-text-card.is-exiting{
  z-index:1;
  animation:bootTextExitDown .86s cubic-bezier(.2, .78, .22, 1) both;
}

.final-date-panel .signal-rift-close{
  z-index:5;
}

.reverse-replay-mode .signal-gate-panel{
  border-color:rgba(255,222,89,.44);
  box-shadow:
    0 24px 70px rgba(0,0,0,.32),
    0 0 38px rgba(255,222,89,.12),
    inset 0 0 28px rgba(255,222,89,.06);
}

.reverse-replay-mode .gate-keypad button{
  animation:reverseGateWake .9s steps(3, end) both;
}

.final-signal-section.is-resealing .artifact-shards{
  opacity:1;
  animation:shardResealField 1.28s steps(7, end) both;
}

.final-signal-section.is-resealing .artifact-shard{
  opacity:1;
  animation:shardReseal 1.28s steps(7, end) both;
}

.final-signal-section.is-reverse-folding{
  display:block;
  animation:folderCloseReverse 1.38s cubic-bezier(.76,0,.22,1) both;
}

.signal-rift-hint{
  position:relative;
  z-index:1;
  margin-top:18px;
  color:var(--muted);
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.fragment-rift{
  z-index:92;
}

.phase-plate-rift{
  z-index:94;
}

.date-rift{
  z-index:93;
}

.final-date-rift{
  padding:0;
}

.fragment-rift-panel{
  width:min(720px, 100%);
  border-color:rgba(255,222,89,.36);
  background:
    linear-gradient(118deg, rgba(255,222,89,.12), transparent 22%, rgba(88,224,255,.12) 62%, rgba(255,107,186,.1)),
    repeating-linear-gradient(90deg, transparent 0 18px, rgba(255,255,255,.07) 18px 19px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.07) 0 1px, transparent 1px 7px),
    rgba(7,10,23,.97);
}

.phase-plate-panel{
  width:min(1180px, 100%);
  padding:26px;
  border-color:rgba(255,222,89,.38);
  background:
    linear-gradient(118deg, rgba(255,222,89,.12), transparent 24%, rgba(88,224,255,.12) 66%, rgba(255,107,186,.1)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.07) 0 1px, transparent 1px 7px),
    rgba(7,10,23,.98);
}

.date-rift-panel{
  width:min(760px, 100%);
  border-color:rgba(88,224,255,.38);
  background:
    linear-gradient(118deg, rgba(88,224,255,.12), transparent 25%, rgba(255,222,89,.12) 66%, rgba(255,107,186,.08)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 1px, transparent 1px 8px),
    rgba(7,10,23,.97);
}

.geo-date-panel{
  width:min(920px, 100%);
}

.note-rift-panel{
  width:min(940px, 100%);
}

.phase-plate-panel h2{
  max-width:760px;
}

.phase-plate-panel img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  margin-top:20px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:6px;
  background:rgba(5,8,18,.8);
  box-shadow:
    inset 0 0 34px rgba(88,224,255,.08),
    0 0 38px rgba(88,224,255,.12);
}

.phase-plate-note{
  position:relative;
  z-index:1;
  margin-top:14px;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
}

.fragment-rift.is-open::before,
.phase-plate-rift.is-open::before,
.date-rift.is-open::before{
  animation:readableRiftWash .3s steps(2, end) both;
}

.fragment-rift.is-open .signal-rift-panel,
.phase-plate-rift.is-open .signal-rift-panel,
.date-rift.is-open .signal-rift-panel{
  animation:readableRiftOpen .34s steps(3, end) both;
}

.fragment-rift .signal-rift-panel::before,
.phase-plate-rift .signal-rift-panel::before,
.date-rift .signal-rift-panel::before{
  opacity:.12;
  animation:readablePanelScan 6.5s linear infinite;
}

.fragment-rift .signal-rift-panel h2,
.phase-plate-rift .signal-rift-panel h2,
.date-rift .signal-rift-panel h2{
  text-shadow:
    1px 0 rgba(255,107,186,.36),
    -1px 0 rgba(88,224,255,.34),
    0 0 16px rgba(88,224,255,.18);
}

.fragment-rift .signal-rift-code,
.phase-plate-rift .signal-rift-code,
.date-rift .signal-rift-code{
  text-shadow:none;
}

.fragment-rift.is-failed .fragment-rift-panel{
  animation:readableErrorPulse .36s steps(2, end) both;
  border-color:rgba(255,52,75,.78);
  box-shadow:
    0 34px 120px rgba(0,0,0,.62),
    0 0 48px rgba(255,52,75,.28),
    inset 0 0 34px rgba(255,52,75,.14);
}

.date-rift.is-failed .date-rift-panel{
  animation:readableErrorPulse .36s steps(2, end) both;
  border-color:rgba(255,52,75,.78);
  box-shadow:
    0 34px 120px rgba(0,0,0,.62),
    0 0 48px rgba(255,52,75,.28),
    inset 0 0 34px rgba(255,52,75,.14);
}

.fragment-riddle{
  position:relative;
  z-index:1;
  margin-top:18px;
  color:rgba(247,251,255,.78);
  line-height:1.75;
}

.fragment-riddle strong{
  color:var(--cyan);
  font-weight:400;
  text-shadow:1px 0 rgba(255,107,186,.75), -1px 0 rgba(88,224,255,.7);
}

.fragment-seven-clue{
  position:relative;
  z-index:1;
  margin:18px 0 20px;
  overflow:hidden;
  border-radius:8px;
  background:#02050a;
  box-shadow:
    0 0 0 1px rgba(88,224,255,.14),
    inset 0 0 34px rgba(0,0,0,.46);
}

.fragment-seven-clue img{
  display:block;
  width:100%;
  min-height:132px;
  max-height:190px;
  object-fit:cover;
  opacity:.9;
  filter:brightness(.88) contrast(1.08) saturate(.9);
}

.fragment-five-rift .fragment-rift-panel{
  width:min(1040px, 100%);
}

.layer-ten-puzzle-art{
  position:relative;
  z-index:1;
  width:100%;
  margin-top:18px;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.24);
  border-radius:8px;
  background:#020713;
  box-shadow:
    inset 0 0 80px rgba(88,224,255,.08),
    0 0 42px rgba(88,224,255,.13);
}

.layer-ten-puzzle-art img{
  display:block;
  width:100%;
  aspect-ratio:1672 / 941;
  object-fit:cover;
  filter:brightness(.82) contrast(1.08) saturate(.95);
}

.layer-ten-puzzle-art::before,
.layer-ten-puzzle-art::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.layer-ten-puzzle-art::before{
  background:
    radial-gradient(circle at 50% 36%, transparent 0 20%, rgba(0,0,0,.18) 54%, rgba(0,0,0,.58) 100%),
    linear-gradient(180deg, transparent 0 64%, rgba(2,7,18,.42) 100%);
}

.layer-ten-puzzle-art::after{
  background:
    linear-gradient(90deg, transparent 0 49.8%, rgba(88,224,255,.32) 50%, transparent 50.2%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 7px);
  mix-blend-mode:screen;
  opacity:.42;
}

.layer-ten-clue-stack{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}

.layer-ten-clue-stack span{
  position:absolute;
  left:var(--x);
  top:var(--y);
  max-width:min(260px, 34%);
  padding:6px 9px;
  border:1px solid rgba(88,224,255,.34);
  border-radius:6px;
  color:rgba(232,248,255,.9);
  background:rgba(3,10,24,.62);
  font-size:12px;
  line-height:1.45;
  letter-spacing:.6px;
  text-shadow:0 0 14px rgba(88,224,255,.36);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.045),
    0 0 24px rgba(88,224,255,.14);
  transform:translate(-50%, -50%);
  animation:layerTenClueFloat 3.8s ease-in-out infinite;
}

.layer-ten-clue-stack span::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:
    0 0 0 5px rgba(88,224,255,.12),
    0 0 22px rgba(88,224,255,.9);
  transform:translate(-50%, -50%);
  opacity:.55;
}

.layer-ten-clue-stack span:nth-child(2){
  animation-delay:.35s;
}

.layer-ten-clue-stack span:nth-child(3){
  animation-delay:.7s;
}

.layer-ten-clue-stack span:nth-child(4){
  animation-delay:1.05s;
}

.layer-ten-clue-stack span:nth-child(5){
  color:var(--green);
  border-color:rgba(149,255,189,.46);
  animation-delay:1.4s;
}

.simulation-start-button{
  position:relative;
  z-index:1;
  display:block;
  width:min(320px, 100%);
  min-height:52px;
  margin:18px auto 0;
  border:1px solid rgba(149,255,189,.48);
  border-radius:999px;
  color:var(--green);
  background:
    linear-gradient(90deg, rgba(149,255,189,.12), rgba(88,224,255,.04)),
    rgba(4,10,18,.86);
  font:inherit;
  font-size:18px;
  letter-spacing:1.6px;
  cursor:pointer;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  box-shadow:
    0 0 34px rgba(149,255,189,.13),
    inset 0 0 32px rgba(149,255,189,.04);
}

.simulation-start-button[aria-hidden="true"]{
  display:none;
}

.fragment-five-rift.is-simulation-ready .simulation-start-button{
  opacity:1;
  transform:none;
  pointer-events:auto;
  animation:simulationButtonWake .9s ease both;
}

.simulation-start-button:hover,
.simulation-start-button:focus-visible{
  outline:none;
  border-color:rgba(149,255,189,.72);
  box-shadow:
    0 0 0 1px rgba(149,255,189,.12),
    0 0 42px rgba(149,255,189,.22);
}

.database-quick-entry{
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  width:min(1180px, calc(100% - 32px));
  margin:28px auto 0;
  padding:18px 20px;
  border:1px solid rgba(255,216,74,.24);
  border-radius:12px;
  color:rgba(247,251,255,.86);
  background:
    linear-gradient(90deg, rgba(255,216,74,.07), rgba(88,224,255,.035)),
    rgba(5,10,18,.76);
  box-shadow:
    inset 0 0 38px rgba(255,216,74,.035),
    0 18px 60px rgba(0,0,0,.26);
}

.database-quick-entry.is-ready{
  display:flex;
  animation:databaseQuickEntryIn .58s ease both;
}

.database-quick-entry p{
  margin:0 0 5px;
  color:rgba(255,216,74,.72);
  font-size:12px;
  letter-spacing:2px;
}

.database-quick-entry h3{
  margin:0;
  font-size:clamp(22px, 2.5vw, 34px);
  line-height:1.1;
}

.database-quick-entry span{
  display:block;
  margin-top:6px;
  color:rgba(247,251,255,.66);
  line-height:1.5;
}

.database-quick-button{
  flex:0 0 auto;
  min-width:190px;
  min-height:48px;
  border:1px solid rgba(255,216,74,.46);
  border-radius:999px;
  color:#ffe66d;
  background:rgba(255,216,74,.06);
  font:inherit;
  font-size:18px;
  letter-spacing:1.4px;
  cursor:pointer;
}

.database-quick-button:hover,
.database-quick-button:focus-visible{
  outline:none;
  color:#fff6bb;
  border-color:rgba(255,216,74,.78);
  background:rgba(255,216,74,.13);
  box-shadow:0 0 34px rgba(255,216,74,.18);
}

.saturn-simulation-loader{
  position:fixed;
  inset:0;
  z-index:240;
  display:grid;
  place-items:center;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  overflow:hidden;
  color:#f7f7f7;
  background:#000;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  transition:opacity .48s ease, visibility .48s ease;
}

.saturn-simulation-loader.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.saturn-simulation-loader::before,
.saturn-simulation-loader::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.saturn-simulation-loader::before{
  background:
    radial-gradient(circle at 50% 58%, rgba(255,255,255,.035), transparent 24%),
    linear-gradient(90deg, rgba(255,255,255,.045), transparent 12%, transparent 88%, rgba(255,255,255,.045));
  opacity:.2;
}

.saturn-simulation-loader::after{
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.022) 0 1px, transparent 1px 5px);
  opacity:.16;
  mix-blend-mode:screen;
}

.saturn-loader-shell{
  position:relative;
  width:100vw;
  height:100vh;
  height:100dvh;
  min-height:560px;
  isolation:isolate;
}

.saturn-loader-brand{
  position:absolute;
  left:50%;
  top:48%;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:42px;
  transform:translate(-50%, -50%);
  white-space:nowrap;
  animation:saturnBrandWake 1.1s ease both, saturnBrandGlitch 5.4s steps(1, end) 2.2s infinite;
}

.saturn-loader-brand strong{
  position:relative;
  font-size:clamp(34px, 4vw, 62px);
  line-height:1;
  letter-spacing:.26em;
  color:#f4f4f4;
  font-weight:700;
  text-shadow:0 0 12px rgba(255,255,255,.2);
}

.saturn-loader-brand strong::after{
  content:attr(data-text);
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateX(5px);
}

.saturn-simulation-loader.is-reading .saturn-loader-brand strong::after,
.saturn-simulation-loader.is-near-complete .saturn-loader-brand strong::after{
  animation:saturnLetterDrop 4.8s steps(1, end) infinite;
}

.saturn-loader-brand span{
  display:grid;
  place-items:center;
  min-width:190px;
  min-height:54px;
  padding:0 24px;
  color:#333;
  background:#f1f1f1;
  clip-path:polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0 50%);
  font-size:clamp(17px, 1.7vw, 26px);
  letter-spacing:.08em;
}

.saturn-loader-bracket{
  position:absolute;
  top:49%;
  z-index:1;
  width:min(210px, 18vw);
  height:min(240px, 28vh);
  opacity:.88;
  transform:translateY(-50%);
}

.saturn-loader-bracket-left{
  left:12vw;
}

.saturn-loader-bracket-right{
  right:12vw;
  transform:translateY(-50%) scaleX(-1);
}

.saturn-loader-bracket span{
  position:absolute;
  background:#f3f3f3;
  box-shadow:0 0 12px rgba(255,255,255,.25);
}

.saturn-loader-bracket span:nth-child(1){
  left:50%;
  top:8%;
  width:2px;
  height:39%;
  transform-origin:50% 100%;
  transform:rotate(31deg);
}

.saturn-loader-bracket span:nth-child(2){
  left:15%;
  top:50%;
  width:38%;
  height:2px;
  transform:translateY(-50%);
}

.saturn-loader-bracket span:nth-child(3){
  left:50%;
  top:50%;
  width:2px;
  height:39%;
  transform-origin:50% 0;
  transform:rotate(-31deg);
}

.saturn-loader-console{
  position:absolute;
  left:50%;
  top:66%;
  z-index:2;
  width:min(860px, 78vw);
  transform:translateX(-50%) scale(.86);
  transform-origin:50% 0;
  text-align:center;
  opacity:0;
}

.saturn-simulation-loader.is-booting .saturn-loader-console,
.saturn-simulation-loader.is-reading .saturn-loader-console,
.saturn-simulation-loader.is-near-complete .saturn-loader-console,
.saturn-simulation-loader.is-success .saturn-loader-console,
.saturn-simulation-loader.is-warning .saturn-loader-console,
.saturn-simulation-loader.is-failed .saturn-loader-console{
  opacity:1;
  transition:opacity .42s ease;
}

.saturn-loader-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  min-height:34px;
  margin-bottom:10px;
  color:#f4f4f4;
  font-size:clamp(15px, 1.45vw, 24px);
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  text-shadow:0 0 10px rgba(255,255,255,.26);
}

.saturn-loader-line span:only-child,
.saturn-loader-line span{
  flex:1 1 auto;
  min-width:0;
  text-align:left;
}

.saturn-loader-line b{
  flex:0 0 auto;
  min-width:0;
  color:inherit;
  font-size:.9em;
  font-weight:700;
  text-align:right;
}

.saturn-loader-progress{
  position:relative;
  width:100%;
  height:21px;
  overflow:hidden;
  clip-path:polygon(2% 0, 98% 0, 100% 50%, 98% 100%, 2% 100%, 0 50%);
  border:0;
  background:rgba(255,255,255,.92);
  box-shadow:0 0 14px rgba(255,255,255,.16);
}

.saturn-loader-progress::before{
  content:"";
  position:absolute;
  inset:3px;
  z-index:0;
  background:#020202;
  clip-path:polygon(2% 0, 98% 0, 100% 50%, 98% 100%, 2% 100%, 0 50%);
}

.saturn-loader-progress span{
  position:absolute;
  left:3px;
  top:3px;
  bottom:3px;
  z-index:1;
  width:var(--simulation-progress, 0%);
  background:#f2f2f2;
  max-width:calc(100% - 6px);
  clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
  transition:width 1.55s cubic-bezier(.18,.82,.2,1), background .32s ease;
}

.saturn-simulation-loader.is-booting .saturn-loader-line{
  justify-content:center;
}

.saturn-simulation-loader.is-booting .saturn-loader-line b{
  display:none;
}

.saturn-simulation-loader.is-booting .saturn-loader-progress span{
  width:48%;
  min-width:160px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.22) 18%, #fff 52%, rgba(255,255,255,.2) 84%, transparent);
  animation:saturnBootScan 2.7s ease-in-out infinite;
  clip-path:none;
}

.saturn-simulation-loader.is-near-complete .saturn-loader-progress span{
  transition-duration:1.95s;
}

.saturn-simulation-loader.is-failed .saturn-loader-line,
.saturn-simulation-loader.is-failed .saturn-loader-line b{
  color:#ff3333;
  text-shadow:0 0 18px rgba(255,51,51,.48);
}

.saturn-simulation-loader.is-failed .saturn-loader-progress{
  background:#ff3333;
  box-shadow:0 0 24px rgba(255,51,51,.28);
}

.saturn-simulation-loader.is-failed .saturn-loader-progress span{
  background:#ff3333;
  box-shadow:0 0 18px rgba(255,51,51,.36);
}

.saturn-simulation-loader.is-warning .saturn-loader-line,
.saturn-simulation-loader.is-warning .saturn-loader-line b{
  color:#ffd84a;
  text-shadow:0 0 18px rgba(255,216,74,.42);
}

.saturn-simulation-loader.is-warning .saturn-loader-progress{
  background:#ffd84a;
  box-shadow:0 0 24px rgba(255,216,74,.24);
}

.saturn-simulation-loader.is-warning .saturn-loader-progress span{
  background:#ffd84a;
  box-shadow:0 0 18px rgba(255,216,74,.34);
}

.saturn-simulation-loader.is-success .saturn-loader-line,
.saturn-simulation-loader.is-success .saturn-loader-line b{
  color:#95ffbd;
  text-shadow:0 0 18px rgba(149,255,189,.42);
}

.saturn-simulation-loader.is-success .saturn-loader-progress{
  background:#95ffbd;
  box-shadow:0 0 24px rgba(149,255,189,.24);
}

.saturn-simulation-loader.is-success .saturn-loader-progress span{
  background:#95ffbd;
  box-shadow:0 0 18px rgba(149,255,189,.34);
}

.saturn-simulation-loader.is-dimming .saturn-loader-shell{
  opacity:.58;
  filter:brightness(.68);
  transition:opacity 1.4s ease, filter 1.4s ease;
}

body.simulation-loader-open{
  overflow:hidden;
}

.mobile-landscape-notice{
  position:fixed;
  inset:0;
  z-index:250;
  display:grid;
  place-items:center;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  overflow:hidden;
  padding:24px;
  color:#f7f7f7;
  background:#000;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  transition:opacity .28s ease, visibility .28s ease;
}

.mobile-landscape-notice.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.mobile-landscape-notice::before,
.mobile-landscape-notice::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.mobile-landscape-notice::before{
  background:
    radial-gradient(circle at 50% 52%, rgba(88,224,255,.12), transparent 30%),
    linear-gradient(90deg, rgba(255,255,255,.06), transparent 16%, transparent 84%, rgba(255,255,255,.06));
  opacity:.42;
}

.mobile-landscape-notice::after{
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 6px);
  opacity:.18;
  mix-blend-mode:screen;
}

body.landscape-notice-open{
  overflow:hidden;
}

.mobile-landscape-card{
  position:relative;
  z-index:1;
  width:min(520px, 100%);
  min-height:300px;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:14px;
  padding:34px 28px;
  border:1px solid rgba(88,224,255,.32);
  background:
    linear-gradient(180deg, rgba(255,255,255,.045), transparent 20%),
    rgba(5,14,18,.94);
  box-shadow:
    0 28px 90px rgba(0,0,0,.7),
    0 0 38px rgba(88,224,255,.13),
    inset 0 0 0 1px rgba(255,255,255,.035);
  text-align:center;
}

.mobile-landscape-card::before{
  content:"";
  width:124px;
  height:70px;
  margin-bottom:6px;
  border:3px solid rgba(237,247,251,.9);
  border-radius:12px;
  box-shadow:
    0 0 0 1px rgba(88,224,255,.22),
    0 0 24px rgba(88,224,255,.22),
    inset 0 0 18px rgba(88,224,255,.08);
}

.mobile-landscape-card span{
  color:#58e0ff;
  font-size:14px;
  letter-spacing:.22em;
  text-shadow:0 0 14px rgba(88,224,255,.26);
}

.mobile-landscape-card strong{
  color:#fff;
  font-size:clamp(28px, 8vw, 42px);
  line-height:1.12;
  font-weight:700;
  text-shadow:
    2px 0 rgba(255,107,186,.32),
    -2px 0 rgba(88,224,255,.32),
    0 0 18px rgba(255,255,255,.16);
}

.mobile-landscape-card p{
  max-width:360px;
  margin:0;
  color:rgba(237,247,251,.76);
  font-size:15px;
  line-height:1.7;
}

.mobile-landscape-card b{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin-top:6px;
  border:1px solid rgba(255,216,74,.5);
  border-radius:50%;
  color:#ffd84a;
  background:rgba(255,216,74,.08);
  font-size:28px;
  line-height:1;
  box-shadow:0 0 24px rgba(255,216,74,.16);
}

.plc-database{
  position:fixed;
  inset:0;
  z-index:260;
  display:grid;
  place-items:center;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  overflow:hidden;
  color:#edf7fb;
  background:#000;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  transition:opacity .35s ease, visibility .35s ease;
}

.plc-database.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

body.plc-database-open{
  overflow:hidden;
}

.plc-db-panel{
  position:relative;
  display:none;
  width:min(1180px, 78vw);
  max-height:min(820px, 82vh);
  color:#edf7fb;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 18%),
    rgba(14,24,27,.96);
  border:1px solid rgba(95,164,181,.22);
  box-shadow:
    0 0 0 1px rgba(0,0,0,.72),
    0 34px 90px rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.plc-db-panel.is-active{
  display:block;
  animation:plcDbPanelIn .36s ease both;
}

.plc-db-home.is-active .plc-db-category-card{
  animation:plcDbCardIn .54s cubic-bezier(.18,.82,.2,1) both;
}

.plc-db-home.is-active .plc-db-category-card:nth-child(2){
  animation-delay:.08s;
}

.plc-db-home.is-active .plc-db-category-card:nth-child(3){
  animation-delay:.16s;
}

.plc-db-detail.is-active .plc-db-folder,
.plc-db-detail.is-active .plc-db-file{
  animation:plcDbSurfaceIn .42s ease both;
}

.plc-db-detail.is-active .plc-db-file{
  animation-delay:.05s;
}

.plc-db-detail.is-active .plc-db-entry-button{
  animation:plcDbListItemIn .34s ease both;
}

.plc-db-detail.is-active .plc-db-entry-button:nth-child(2){ animation-delay:.025s; }
.plc-db-detail.is-active .plc-db-entry-button:nth-child(3){ animation-delay:.05s; }
.plc-db-detail.is-active .plc-db-entry-button:nth-child(4){ animation-delay:.075s; }
.plc-db-detail.is-active .plc-db-entry-button:nth-child(5){ animation-delay:.1s; }
.plc-db-detail.is-active .plc-db-entry-button:nth-child(6){ animation-delay:.125s; }
.plc-db-detail.is-active .plc-db-entry-button:nth-child(7){ animation-delay:.15s; }
.plc-db-detail.is-active .plc-db-entry-button:nth-child(8){ animation-delay:.175s; }

.plc-db-detail.is-active .plc-db-file-body h2,
.plc-db-detail.is-active .plc-db-meta,
.plc-db-detail.is-active .plc-db-entry-content p{
  animation:plcDbContentIn .42s ease both;
}

.plc-db-detail.is-active .plc-db-meta{ animation-delay:.06s; }
.plc-db-detail.is-active .plc-db-entry-content p:nth-child(1){ animation-delay:.1s; }
.plc-db-detail.is-active .plc-db-entry-content p:nth-child(2){ animation-delay:.14s; }
.plc-db-detail.is-active .plc-db-entry-content p:nth-child(3){ animation-delay:.18s; }
.plc-db-detail.is-active .plc-db-entry-content p:nth-child(n+4){ animation-delay:.22s; }
.plc-db-detail.is-active .plc-db-verification{ animation:plcDbContentIn .42s ease both; }

.plc-db-home{
  width:min(1660px, 92vw);
  height:min(980px, 88vh);
  max-height:calc(100vh - 72px);
  padding:88px 54px 34px;
}

.plc-db-home.is-active{
  display:grid;
  grid-template-rows:auto 1fr auto;
}

.plc-db-header,
.plc-db-file-header{
  position:absolute;
  left:-10px;
  right:0;
  top:0;
  height:30px;
  display:flex;
  align-items:center;
  background:linear-gradient(90deg, rgba(0,168,230,.78), rgba(17,93,118,.7) 18%, rgba(23,67,80,.74));
  color:#edf7fb;
  letter-spacing:.04em;
  text-transform:uppercase;
  box-shadow:0 1px 0 rgba(255,255,255,.08);
}

.plc-db-header p,
.plc-db-file-header p{
  position:relative;
  margin:0;
  padding:0 20px 0 18px;
  height:100%;
  display:flex;
  align-items:center;
  background:#048fca;
  font-size:18px;
  line-height:1;
  font-weight:700;
}

.plc-db-header p::after,
.plc-db-file-header p::after{
  content:"";
  position:absolute;
  right:-20px;
  top:0;
  border-top:30px solid #048fca;
  border-right:20px solid transparent;
}

.plc-db-file-header span{
  margin-left:28px;
  color:rgba(237,247,251,.42);
  font-size:12px;
  letter-spacing:.08em;
}

.plc-db-close{
  position:absolute;
  right:-1px;
  top:0;
  width:38px;
  height:30px;
  border:0;
  color:rgba(255,255,255,.72);
  background:rgba(165,65,47,.72);
  font:inherit;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

.plc-db-close:hover,
.plc-db-close:focus-visible{
  outline:none;
  color:#fff;
  background:rgba(210,74,54,.9);
}

.plc-db-close-detail{
  display:none;
}

.plc-db-category-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(300px, 360px));
  gap:24px;
  align-content:start;
  justify-content:start;
  margin-top:0;
  padding:0;
}

.plc-db-category-card{
  position:relative;
  min-height:156px;
  overflow:hidden;
  border:0;
  padding:0;
  color:#fff;
  text-align:left;
  background:#0b171c;
  cursor:pointer;
  box-shadow:
    inset 0 -56px 0 rgba(0,0,0,.42),
    0 0 0 1px rgba(255,255,255,.055);
}

.plc-db-category-card::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:27px;
  height:3px;
  z-index:3;
  background:rgba(255,255,255,.88);
  transform:skewX(-12deg);
}

.plc-db-category-card:hover,
.plc-db-category-card:focus-visible{
  outline:none;
  box-shadow:
    inset 0 -56px 0 rgba(0,0,0,.42),
    0 0 0 2px rgba(71,207,255,.72),
    0 0 28px rgba(71,207,255,.22);
}

.plc-db-category-card:disabled{
  cursor:not-allowed;
  filter:saturate(.35) brightness(.7);
}

.plc-db-card-art,
.plc-db-folder-cover span{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 22% 42%, rgba(93,224,255,.38), transparent 20%),
    radial-gradient(circle at 70% 24%, rgba(255,195,93,.28), transparent 18%),
    linear-gradient(128deg, rgba(18,35,47,.2), rgba(8,13,18,.45) 43%, rgba(35,22,32,.42)),
    linear-gradient(90deg, #102531, #2d1f2b 48%, #0b1118);
  transform:scale(1.04);
}

.plc-db-category-card-primary .plc-db-card-art,
.plc-db-folder-cover span{
  background:
    linear-gradient(108deg, rgba(0,0,0,.2), transparent 36%, rgba(0,0,0,.52)),
    linear-gradient(180deg, rgba(0,0,0,.08), transparent 46%, rgba(0,0,0,.42)),
    url("../assets/plc-database-category-01.png") center/cover no-repeat;
}

.plc-db-category-card-disabled .plc-db-card-art{
  background:
    linear-gradient(130deg, rgba(255,255,255,.05), transparent 32%, rgba(255,255,255,.04)),
    linear-gradient(90deg, #151f22, #0a1014);
}

.plc-db-category-card-secondary .plc-db-card-art,
.plc-db-detail[data-category="second"] .plc-db-folder-cover span{
  background:
    linear-gradient(110deg, rgba(0,0,0,.24), transparent 42%, rgba(0,0,0,.56)),
    linear-gradient(180deg, rgba(0,0,0,.08), transparent 46%, rgba(0,0,0,.46)),
    url("../assets/plc-database-category-02.png") center/cover no-repeat;
}

.plc-db-category-card-secret .plc-db-card-art,
.plc-db-detail[data-category="secret"] .plc-db-folder-cover span{
  background:
    linear-gradient(110deg, rgba(0,0,0,.08), transparent 38%, rgba(0,0,0,.7)),
    linear-gradient(180deg, rgba(0,0,0,.04), transparent 46%, rgba(0,0,0,.48)),
    url("../assets/plc-database-category-03.png") center/cover no-repeat;
}

.plc-db-card-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.12), transparent 46%, rgba(0,0,0,.58)),
    linear-gradient(180deg, transparent 42%, rgba(0,0,0,.66));
}

.plc-db-card-label{
  position:absolute;
  right:18px;
  bottom:35px;
  z-index:4;
  display:grid;
  gap:4px;
  text-align:right;
  text-shadow:0 2px 10px rgba(0,0,0,.72);
}

.plc-db-card-label small{
  color:rgba(255,255,255,.72);
  font-size:16px;
}

.plc-db-card-label strong{
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:30px;
  line-height:1;
  font-weight:700;
  text-shadow:
    2px 2px 0 rgba(115,136,142,.26),
    0 2px 10px rgba(0,0,0,.72);
}

.plc-db-card-progress{
  position:absolute;
  right:16px;
  bottom:7px;
  z-index:4;
  color:rgba(255,255,255,.76);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:13px;
  text-shadow:1px 1px 0 rgba(85,108,116,.32);
}

.plc-db-total{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 28px;
  align-items:end;
  align-self:end;
  margin-top:0;
  padding-top:14px;
  border-top:2px solid rgba(255,255,255,.72);
}

.plc-db-total p{
  grid-column:1 / -1;
  margin:0;
  color:rgba(237,247,251,.82);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:18px;
}

.plc-db-total-bar{
  position:relative;
  height:42px;
  overflow:hidden;
  background:rgba(5,28,39,.94);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}

.plc-db-total-bar span{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:var(--plc-db-progress, 0%);
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.12) 0 4px, transparent 4px 8px),
    #08aeea;
  box-shadow:inset -4px 0 0 rgba(255,255,255,.64);
  transition:width .38s ease;
}

.plc-db-total strong{
  min-width:164px;
  color:#fff;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:56px;
  line-height:1;
  text-align:right;
  text-shadow:
    3px 0 0 rgba(120,139,146,.32),
    0 0 14px rgba(255,255,255,.12);
}

.plc-db-replay-button{
  position:absolute;
  right:54px;
  bottom:158px;
  width:230px;
  height:86px;
  overflow:hidden;
  border:1px solid rgba(112,147,153,.42);
  color:#eef7f9;
  background:
    linear-gradient(90deg, rgba(9,39,49,.86), rgba(5,21,27,.94)),
    rgba(5,22,28,.96);
  font:inherit;
  cursor:pointer;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.035),
    0 0 0 1px rgba(0,0,0,.4);
}

.plc-db-replay-button::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.42;
  background:
    linear-gradient(30deg, transparent 0 48%, rgba(104,164,174,.35) 49% 50%, transparent 51%),
    linear-gradient(150deg, transparent 0 48%, rgba(104,164,174,.28) 49% 50%, transparent 51%),
    linear-gradient(90deg, rgba(104,164,174,.18) 1px, transparent 1px),
    linear-gradient(0deg, rgba(104,164,174,.16) 1px, transparent 1px);
  background-size:38px 38px, 38px 38px, 38px 38px, 38px 38px;
  pointer-events:none;
}

.plc-db-replay-button span{
  position:absolute;
  right:12px;
  top:10px;
  z-index:1;
  color:rgba(237,247,251,.62);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:16px;
  text-shadow:1px 1px 0 rgba(70,92,98,.34);
}

.plc-db-replay-button strong{
  position:absolute;
  right:14px;
  bottom:13px;
  z-index:1;
  color:#fff;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:30px;
  line-height:1;
  font-weight:700;
  text-shadow:
    2px 2px 0 rgba(107,132,140,.28),
    0 0 12px rgba(255,255,255,.08);
}

.plc-db-replay-button:hover,
.plc-db-replay-button:focus-visible{
  outline:none;
  border-color:rgba(88,224,255,.62);
  box-shadow:
    inset 0 0 0 1px rgba(88,224,255,.12),
    0 0 24px rgba(88,224,255,.16);
}

.plc-db-replay-button.is-on{
  border-color:rgba(149,255,189,.58);
  color:#95ffbd;
  box-shadow:
    inset 0 0 0 1px rgba(149,255,189,.12),
    0 0 24px rgba(149,255,189,.14);
}

.plc-db-replay-button.is-on span{
  color:rgba(149,255,189,.78);
}

.plc-db-replay-button.is-on strong{
  color:#95ffbd;
  text-shadow:
    2px 2px 0 rgba(42,112,75,.42),
    0 0 16px rgba(149,255,189,.18);
}

.plc-database.is-replay-active .plc-db-panel::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:8;
  pointer-events:none;
  opacity:.05;
  background:
    repeating-linear-gradient(0deg, rgba(149,255,189,.18) 0 1px, transparent 1px 7px),
    linear-gradient(90deg, rgba(149,255,189,.16), transparent 30%, rgba(255,107,186,.12));
  mix-blend-mode:screen;
  animation:plcDbReplayFlicker 6.8s steps(1, end) infinite;
}

.plc-db-detail{
  width:min(1760px, 95vw);
  height:min(880px, 90vh);
  max-height:none;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}

.plc-db-detail.is-active{
  display:grid;
  grid-template-columns:350px 1fr;
  gap:34px;
  align-items:stretch;
  perspective:1350px;
  perspective-origin:50% 48%;
  transform-style:preserve-3d;
}

.plc-db-folder,
.plc-db-file{
  position:relative;
  min-height:0;
  background:rgba(14,24,27,.94);
  border:1px solid rgba(95,164,181,.22);
  box-shadow:
    0 24px 80px rgba(0,0,0,.68),
    inset 0 1px 0 rgba(255,255,255,.07);
  backface-visibility:hidden;
}

.plc-db-folder{
  padding:0 12px 22px;
  transform:rotateY(7deg);
  transform-origin:right center;
}

.plc-db-file{
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012) 22%, rgba(0,0,0,.065) 100%),
    rgba(33,37,40,.96);
  border-color:rgba(118,138,143,.24);
  transform:rotateY(-2.6deg);
  transform-origin:left center;
}

.plc-db-file[data-hidden-letter]::before{
  content:attr(data-hidden-letter);
  position:absolute;
  left:var(--plc-hidden-letter-x, 62%);
  top:var(--plc-hidden-letter-y, 54%);
  z-index:0;
  color:rgba(238,248,255,.16);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:clamp(180px, 21vw, 340px);
  line-height:1;
  pointer-events:none;
  text-shadow:
    0 0 18px rgba(238,248,255,.2),
    12px 12px 46px rgba(54,205,255,.12);
  filter:blur(5px);
  opacity:.7;
  transform:translate(-50%, -50%) rotate(var(--plc-hidden-letter-rotate, 0deg));
}

.plc-db-file-header{
  z-index:4;
}

.plc-db-file-body{
  position:relative;
  z-index:1;
}

.plc-db-folder-info > p,
.plc-db-content-list > p{
  margin:0 -12px;
  height:28px;
  display:flex;
  align-items:center;
  padding-left:12px;
  color:#edf7fb;
  background:#048fca;
  font-size:17px;
  letter-spacing:.04em;
  text-shadow:2px 2px 0 rgba(20,47,57,.38);
}

.plc-db-folder-cover{
  position:relative;
  height:150px;
  margin:0 -4px 14px;
  overflow:hidden;
  background:#071116;
}

.plc-db-folder-cover::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:34px;
  height:3px;
  background:rgba(255,255,255,.86);
}

.plc-db-folder-cover strong{
  position:absolute;
  right:12px;
  bottom:42px;
  z-index:2;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:25px;
  line-height:1;
  color:#fff;
  text-shadow:
    2px 2px 0 rgba(115,136,142,.25),
    0 2px 10px rgba(0,0,0,.8);
}

.plc-db-folder-cover em{
  position:absolute;
  right:12px;
  bottom:10px;
  z-index:2;
  color:rgba(255,255,255,.74);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-style:normal;
  font-size:12px;
  text-shadow:1px 1px 0 rgba(85,108,116,.32);
}

.plc-db-content-list{
  margin-top:8px;
}

.plc-db-entry-list{
  display:grid;
  gap:4px;
  max-height:none;
  overflow:visible;
  padding:8px 0 12px;
  border-bottom:2px solid rgba(255,255,255,.64);
}

.plc-db-entry-button{
  width:100%;
  min-height:44px;
  border:0;
  padding:0 20px;
  color:rgba(237,247,251,.58);
  background:rgba(35,59,64,.82);
  font:inherit;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:22px;
  text-align:left;
  cursor:pointer;
  text-shadow:2px 2px 0 rgba(107,132,140,.22);
  transition:background .18s ease, color .18s ease, transform .18s ease;
}

.plc-db-entry-button.is-seen{
  color:rgba(237,247,251,.82);
}

.plc-db-entry-button.is-locked{
  color:rgba(237,247,251,.46);
  background:rgba(29,50,55,.72);
}

.plc-db-entry-button.is-active{
  color:#102028;
  background:#f2f8fb;
  text-shadow:2px 2px 0 rgba(112,137,145,.2);
}

.plc-db-entry-button:hover,
.plc-db-entry-button:focus-visible{
  outline:none;
  color:#fff;
  background:rgba(34,119,144,.86);
  transform:translateX(2px);
}

.plc-db-entry-button.is-active:hover,
.plc-db-entry-button.is-active:focus-visible{
  color:#102028;
  background:#fff;
}

.plc-db-back{
  position:absolute;
  left:18px;
  bottom:16px;
  border:0;
  color:#17b9ff;
  background:transparent;
  font:inherit;
  font-size:38px;
  letter-spacing:.04em;
  cursor:pointer;
  text-shadow:
    3px 0 0 rgba(10,74,106,.55),
    0 0 18px rgba(23,185,255,.34);
}

.plc-db-entry-count{
  position:absolute;
  right:18px;
  bottom:88px;
  color:rgba(237,247,251,.62);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:20px;
  letter-spacing:.03em;
  text-shadow:
    2px 0 0 rgba(78,96,103,.34),
    0 0 10px rgba(255,255,255,.08);
}

.plc-db-back:hover,
.plc-db-back:focus-visible{
  outline:none;
  color:#83dcff;
}

.plc-db-file{
  overflow:hidden;
}

.plc-db-file-body{
  height:calc(100% - 30px);
  margin-top:30px;
  overflow:auto;
  padding:48px 56px 54px;
  scrollbar-width:thin;
  scrollbar-color:rgba(237,247,251,.32) rgba(0,0,0,.18);
}

.plc-db-file-body::-webkit-scrollbar{
  width:7px;
}

.plc-db-file-body::-webkit-scrollbar-track{
  background:rgba(0,0,0,.18);
}

.plc-db-file-body::-webkit-scrollbar-thumb{
  background:rgba(237,247,251,.28);
  border-radius:999px;
}

.plc-db-file-body h2{
  margin:0 0 22px;
  color:#fff;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:clamp(42px, 4.2vw, 74px);
  line-height:1;
  font-weight:400;
  letter-spacing:.02em;
  text-shadow:
    4px 4px 0 rgba(112,130,136,.25),
    0 0 12px rgba(255,255,255,.12);
}

.plc-db-meta{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 28px;
  padding-bottom:4px;
  border-bottom:2px solid rgba(255,255,255,.76);
}

.plc-db-meta div{
  display:flex;
  align-items:center;
  min-width:210px;
}

.plc-db-meta dt{
  margin:0;
  padding:7px 16px;
  color:#17252b;
  background:#f3f8fa;
  font-size:18px;
  line-height:1;
  font-weight:700;
}

.plc-db-meta dd{
  margin:0;
  padding:7px 20px;
  color:#edf7fb;
  font-size:17px;
  line-height:1;
}

.plc-db-entry-content{
  max-width:980px;
  color:rgba(238,242,244,.88);
  font-size:clamp(20px, 1.82vw, 31px);
  line-height:1.58;
  letter-spacing:.01em;
}

.plc-db-entry-content p{
  margin:0 0 1.1em;
}

.plc-db-entry-content p:last-child{
  margin-bottom:0;
}

.plc-db-verification{
  position:relative;
  max-width:860px;
  margin-top:14px;
  padding:26px 30px 28px;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.22);
  background:
    linear-gradient(90deg, rgba(10,65,78,.26), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.12)),
    rgba(16,27,31,.88);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.035),
    0 0 32px rgba(0,0,0,.22);
}

.plc-db-verification::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg, #09a9e4, rgba(9,169,228,.12));
}

.plc-db-verification-kicker{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  margin-bottom:18px;
  padding:4px 12px;
  color:#102028;
  background:#edf7fb;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:16px;
  line-height:1;
  letter-spacing:.07em;
  text-shadow:1px 1px 0 rgba(112,137,145,.2);
}

.plc-db-verification-message{
  margin:0 0 18px;
  color:rgba(238,242,244,.9);
  font-size:clamp(23px, 2vw, 32px);
  line-height:1.46;
  text-shadow:2px 2px 0 rgba(107,132,140,.2);
}

.plc-db-verification-form{
  display:flex;
  gap:12px;
  align-items:stretch;
  max-width:620px;
}

.plc-db-verification-input{
  flex:1 1 auto;
  min-width:0;
  height:48px;
  border:1px solid rgba(237,247,251,.28);
  padding:0 16px;
  color:#edf7fb;
  background:rgba(2,13,17,.72);
  font:inherit;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:24px;
  letter-spacing:.12em;
  text-transform:uppercase;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.28);
}

.plc-db-verification-input:focus{
  outline:none;
  border-color:rgba(88,224,255,.72);
  box-shadow:
    inset 0 0 0 1px rgba(88,224,255,.12),
    0 0 18px rgba(88,224,255,.12);
}

.plc-db-verification-form button{
  min-width:120px;
  border:0;
  padding:0 18px;
  color:#102028;
  background:#edf7fb;
  font:inherit;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:20px;
  cursor:pointer;
  text-shadow:1px 1px 0 rgba(112,137,145,.22);
}

.plc-db-verification-form button:hover,
.plc-db-verification-form button:focus-visible{
  outline:none;
  color:#fff;
  background:#09a9e4;
}

.plc-db-verification-status{
  margin:16px 0 0;
  color:#95ffbd;
  font-size:17px;
}

.plc-db-verification-status.is-error{
  color:#ffd06a;
}

.plc-db-start-button{
  min-width:190px;
  min-height:58px;
  margin-top:34px;
  border:1px solid rgba(88,224,255,.44);
  color:#edf7fb;
  background:
    linear-gradient(90deg, rgba(8,94,124,.62), rgba(4,28,38,.9)),
    rgba(5,22,28,.96);
  font:inherit;
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:28px;
  letter-spacing:.12em;
  cursor:pointer;
  text-shadow:
    2px 2px 0 rgba(10,74,106,.42),
    0 0 14px rgba(88,224,255,.18);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.035),
    0 0 24px rgba(88,224,255,.12);
}

.plc-db-start-button:hover,
.plc-db-start-button:focus-visible{
  outline:none;
  color:#fff;
  border-color:rgba(149,255,189,.62);
  box-shadow:
    inset 0 0 0 1px rgba(149,255,189,.1),
    0 0 28px rgba(149,255,189,.18);
}

.first-layer-terminal{
  position:fixed;
  inset:0;
  z-index:330;
  display:grid;
  place-items:center;
  padding:24px;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
}

.first-layer-terminal.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.first-layer-terminal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(7px);
}

.first-layer-terminal-panel{
  position:relative;
  z-index:1;
  width:min(820px, 94vw);
  min-height:470px;
  display:grid;
  grid-template-rows:auto 1fr auto auto;
  border:1px solid rgba(149,255,189,.34);
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 18%),
    #020706;
  box-shadow:
    0 34px 120px rgba(0,0,0,.62),
    0 0 48px rgba(149,255,189,.12),
    inset 0 0 0 1px rgba(255,255,255,.035);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
}

.first-layer-terminal-panel header{
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px;
  color:#05100b;
  background:#95ffbd;
  font-size:14px;
  letter-spacing:.08em;
}

.first-layer-terminal-panel header button{
  border:0;
  color:#05100b;
  background:transparent;
  font:inherit;
  font-size:20px;
  cursor:pointer;
}

.first-layer-terminal-screen{
  min-height:270px;
  overflow:auto;
  padding:18px 22px;
  color:#d9ffe7;
  background:
    repeating-linear-gradient(0deg, rgba(149,255,189,.04) 0 1px, transparent 1px 6px),
    rgba(0,0,0,.72);
  font-size:15px;
  line-height:1.55;
  text-shadow:0 0 10px rgba(149,255,189,.18);
}

.first-layer-terminal-screen p{
  margin:0 0 6px;
}

.first-layer-terminal-form{
  display:grid;
  grid-template-columns:auto minmax(120px, 1fr) auto;
  gap:10px;
  align-items:center;
  padding:14px 18px 10px;
  border-top:1px solid rgba(149,255,189,.18);
  color:#95ffbd;
}

.first-layer-terminal-form label{
  white-space:nowrap;
}

.first-layer-terminal-form input{
  min-height:36px;
  border:1px solid rgba(149,255,189,.32);
  padding:0 10px;
  color:#fff;
  background:rgba(0,0,0,.48);
  font:inherit;
}

.first-layer-terminal-form input:focus{
  outline:none;
  border-color:rgba(149,255,189,.74);
  box-shadow:0 0 18px rgba(149,255,189,.14);
}

.first-layer-terminal-form button{
  min-height:36px;
  border:1px solid rgba(149,255,189,.42);
  padding:0 16px;
  color:#95ffbd;
  background:rgba(149,255,189,.08);
  font:inherit;
  cursor:pointer;
}

.first-layer-terminal-form button:disabled,
.first-layer-terminal-form input:disabled{
  opacity:.62;
  cursor:default;
}

.first-layer-terminal-status{
  min-height:28px;
  padding:0 18px 14px;
  color:rgba(217,255,231,.72);
  font-family:"PLCFont", "Microsoft YaHei", sans-serif;
  font-size:13px;
}

.first-layer-terminal-status.is-error{
  color:#ffd06a;
}

.first-layer-terminal-status.is-complete{
  color:#95ffbd;
}

.date-riddle{
  position:relative;
  z-index:1;
  margin-top:18px;
  color:rgba(247,251,255,.82);
  line-height:1.85;
}

.geo-relay-map{
  max-height:min(56vh, 560px);
  object-fit:contain;
  border-color:rgba(88,224,255,.2);
  background:
    radial-gradient(circle at 26% 18%, rgba(88,224,255,.11), transparent 34%),
    rgba(4,7,16,.86);
}

.note-rebuild-field{
  position:relative;
  z-index:1;
  width:100%;
  max-width:760px;
  margin:18px auto 0;
  aspect-ratio:1 / 1;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.18);
  border-radius:8px;
  background:
    radial-gradient(circle at 66% 24%, rgba(88,224,255,.08), transparent 20%),
    radial-gradient(circle at 30% 72%, rgba(255,222,89,.06), transparent 18%),
    linear-gradient(180deg, rgba(255,255,255,.025), transparent 18%, rgba(255,255,255,.018) 72%, transparent),
    #000;
  box-shadow:
    inset 0 0 46px rgba(88,224,255,.07),
    inset 0 0 90px rgba(0,0,0,.8),
    0 0 36px rgba(88,224,255,.11);
  isolation:isolate;
}

.note-rebuild-field::before,
.note-rebuild-field::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}

.note-rebuild-field::before{
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 6px),
    linear-gradient(90deg, rgba(88,224,255,.08), transparent 28%, transparent 72%, rgba(255,107,186,.06));
  opacity:.26;
  mix-blend-mode:screen;
  animation:noteFieldScan 5.8s linear infinite;
}

.note-rebuild-field::after{
  background:
    linear-gradient(104deg, transparent 0 44%, rgba(255,255,255,.26) 44.2% 44.38%, transparent 44.7%),
    linear-gradient(0deg, transparent 0 68%, rgba(88,224,255,.18) 68.2% 68.5%, transparent 68.9%);
  opacity:.16;
  mix-blend-mode:screen;
  animation:noteFieldTear 3.6s steps(2, end) infinite;
}

.note-rebuild-field .note-token{
  position:absolute;
  left:calc(var(--x) * 1%);
  top:calc(var(--y) * 1%);
  z-index:1;
  display:block;
  width:calc(var(--w) * 1%);
  height:calc(var(--h) * 1%);
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  object-fit:fill;
  opacity:0;
  pointer-events:none;
  transform:
    translate(-50%, -50%)
    translate3d(var(--from-x), var(--from-y), 0)
    rotate(calc(var(--from-rot) + var(--asset-rot, 0deg)))
    scale(.4);
  filter:
    drop-shadow(0 0 9px rgba(88,224,255,.22))
    brightness(1.04)
    contrast(1.08);
}

.date-rift.is-open .note-rebuild-field .note-token{
  animation:
    noteTokenDock 1.34s cubic-bezier(.19, .83, .33, 1) var(--delay) both,
    noteTokenFlicker 4.6s steps(2, end) calc(var(--delay) + 1.5s) infinite;
}

.note-rebuild-field .note-drag{
  filter:
    drop-shadow(0 0 10px rgba(255,222,89,.26))
    brightness(1.08)
    contrast(1.08);
}

.note-rebuild-field .note-hold{
  --asset-rot:90deg;
  width:calc(var(--h) * 1%);
  height:calc(var(--w) * 1%);
  filter:
    drop-shadow(0 0 12px rgba(88,224,255,.16))
    brightness(1.02)
    contrast(1.06)
    saturate(1.04);
}

.note-answer{
  opacity:0;
  transform:translateY(10px);
}

.note-answer label{
  color:var(--yellow);
}

.note-answer input{
  letter-spacing:5px;
}

.note-answer-status{
  opacity:0;
}

.date-rift.is-open .note-answer{
  animation:noteQuestionWake .52s steps(4, end) 3.05s both;
}

.date-rift.is-open .note-answer-status{
  animation:noteQuestionWake .48s steps(3, end) 3.18s both;
}

.date-rift.is-solved .note-answer,
.date-rift.is-solved .note-answer-status{
  opacity:1;
  transform:none;
  animation:none;
}

.date-format-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-top:20px;
}

.date-format-grid span{
  min-height:46px;
  display:grid;
  place-items:center;
  padding:8px;
  border:1px solid rgba(88,224,255,.2);
  border-radius:6px;
  color:rgba(247,251,255,.78);
  background:
    linear-gradient(180deg, rgba(88,224,255,.08), rgba(255,255,255,.025)),
    rgba(5,8,18,.68);
  font-size:12px;
  letter-spacing:.6px;
  text-align:center;
  text-shadow:
    1px 0 rgba(255,107,186,.28),
    -1px 0 rgba(88,224,255,.3);
}

.fragment-proof-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:1px;
  margin-top:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.12);
}

.fragment-proof-grid span{
  min-height:44px;
  display:grid;
  place-items:center;
  padding:8px;
  color:rgba(247,251,255,.72);
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
    rgba(5,8,18,.74);
  font-size:11px;
  letter-spacing:.8px;
  text-align:center;
  text-transform:uppercase;
}

.fragment-proof-grid span:nth-child(2){
  color:#fff;
  text-shadow:1px 0 rgba(255,107,186,.75), -1px 0 rgba(88,224,255,.72);
}

.fragment-proof-grid span:nth-child(3){
  color:var(--yellow);
}

.fragment-proof-grid span:nth-child(4){
  color:var(--green);
}

.fragment-standby-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-top:18px;
}

.fragment-standby-grid span{
  min-height:54px;
  display:grid;
  place-items:center;
  padding:8px;
  border:1px solid rgba(255,222,89,.24);
  border-radius:6px;
  color:rgba(247,251,255,.76);
  background:
    linear-gradient(180deg, rgba(255,222,89,.1), rgba(88,224,255,.035)),
    rgba(5,8,18,.72);
  font-size:11px;
  letter-spacing:1px;
  text-align:center;
  text-shadow:
    1px 0 rgba(255,107,186,.46),
    -1px 0 rgba(88,224,255,.44);
}

.dif-ledger{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px;
  margin-top:18px;
}

.dif-ledger span{
  position:relative;
  min-height:68px;
  display:grid;
  place-items:center;
  padding:10px 8px 8px;
  overflow:hidden;
  border:1px solid rgba(88,224,255,.28);
  border-radius:6px;
  color:rgba(247,251,255,.82);
  background:
    linear-gradient(180deg, rgba(88,224,255,.11), rgba(255,255,255,.025)),
    rgba(5,8,18,.74);
  box-shadow:
    inset 0 0 24px rgba(88,224,255,.08),
    0 0 18px rgba(0,0,0,.18);
}

.dif-ledger span::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  opacity:.22;
  transform:translateX(-120%);
  animation:difLedgerSweep 3.6s ease-in-out infinite;
}

.dif-ledger span:nth-child(2)::before{
  animation-delay:.38s;
}

.dif-ledger span:nth-child(3)::before{
  animation-delay:.76s;
}

.dif-ledger span:nth-child(4){
  border-color:rgba(255,222,89,.48);
  color:var(--yellow);
  background:
    linear-gradient(180deg, rgba(255,222,89,.12), rgba(88,224,255,.035)),
    rgba(5,8,18,.78);
}

.dif-ledger span:nth-child(4)::before{
  animation-delay:1.14s;
}

.dif-ledger b{
  position:relative;
  z-index:1;
  font-size:24px;
  line-height:1;
  font-weight:500;
  letter-spacing:.8px;
  text-shadow:
    1px 0 rgba(255,107,186,.5),
    -1px 0 rgba(88,224,255,.55);
}

.dif-ledger small{
  position:absolute;
  right:7px;
  bottom:6px;
  z-index:1;
  color:rgba(247,251,255,.42);
  font-size:10px;
  letter-spacing:1px;
}

.fragment-answer{
  position:relative;
  z-index:1;
  display:grid;
  width:100%;
  min-width:0;
  max-width:100%;
  gap:9px;
  margin-top:22px;
}

.fragment-answer label{
  color:var(--muted);
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.fragment-answer div{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 104px;
  width:100%;
  min-width:0;
  max-width:100%;
  gap:10px;
}

.fragment-answer input{
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:46px;
  border:1px solid rgba(88,224,255,.34);
  border-radius:6px;
  color:var(--text);
  background:rgba(5,8,18,.72);
  padding:0 15px;
  font:inherit;
  font-size:24px;
  letter-spacing:8px;
  text-align:center;
  box-shadow:inset 0 0 22px rgba(88,224,255,.08);
}

.fragment-answer input:focus{
  outline:none;
  border-color:rgba(255,222,89,.72);
  box-shadow:
    inset 0 0 22px rgba(255,222,89,.12),
    0 0 28px rgba(255,222,89,.18);
}

.fragment-answer input:disabled{
  color:var(--green);
  border-color:rgba(149,255,189,.62);
}

.reverse-replay-mode .fragment-rift.is-fragment-solved .fragment-answer input:not(:disabled),
.reverse-replay-mode .date-rift.is-solved .note-answer input:not(:disabled){
  color:var(--green);
  border-color:rgba(149,255,189,.62);
  box-shadow:
    inset 0 0 22px rgba(149,255,189,.11),
    0 0 24px rgba(149,255,189,.1);
}

.fragment-answer button{
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:46px;
  border:1px solid rgba(255,222,89,.42);
  border-radius:6px;
  color:#08111a;
  background:var(--yellow);
  font:inherit;
  cursor:pointer;
  box-shadow:0 0 24px rgba(255,222,89,.18);
}

.fragment-answer button:hover,
.fragment-answer button:focus-visible{
  outline:none;
  color:#050711;
  background:#fff2a6;
  box-shadow:0 0 34px rgba(255,222,89,.3);
}

.fragment-answer button:disabled{
  cursor:default;
  color:#07130d;
  background:var(--green);
}

.fragment-answer-status{
  position:relative;
  z-index:1;
  margin-top:14px;
  color:var(--muted);
  font-size:12px;
  letter-spacing:1px;
}

.fragment-answer-status.is-failed{
  color:#ff6678;
}

.fragment-answer-status.is-complete{
  color:var(--green);
}

.fragment-result{
  position:relative;
  z-index:1;
  display:none;
  place-items:center;
  width:max-content;
  max-width:100%;
  min-height:54px;
  margin-top:20px;
  padding:0 18px;
  border:1px solid rgba(149,255,189,.58);
  border-radius:6px;
  color:var(--green);
  background:
    linear-gradient(90deg, rgba(149,255,189,.14), rgba(88,224,255,.08)),
    rgba(5,8,18,.7);
  font-size:clamp(28px, 6vw, 48px);
  line-height:1;
  text-shadow:
    2px 0 rgba(255,107,186,.68),
    -2px 0 rgba(88,224,255,.72),
    0 0 22px rgba(149,255,189,.42);
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
}

.fragment-rift.is-fragment-solved .fragment-result{
  display:inline-grid;
  opacity:1;
  transform:translateY(0);
  animation:readableResultReveal .38s steps(3, end) both;
}

@keyframes difLedgerSweep{
  0%,
  58%{
    transform:translateX(-120%);
  }
  76%,
  100%{
    transform:translateX(120%);
  }
}

.fragment-two-rift .fragment-result{
  font-size:clamp(26px, 5vw, 42px);
}

.modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:24px;
  pointer-events:none;
  visibility:hidden;
  transition:
    visibility 0s linear .56s,
    opacity .56s ease;
}

.modal.is-open{
  pointer-events:auto;
  visibility:visible;
  transition-delay:0s;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,4,12,.7);
  opacity:0;
  backdrop-filter:blur(0);
  transition:
    opacity .56s ease,
    backdrop-filter .72s ease;
}

.modal.is-open .modal-backdrop{
  opacity:1;
  backdrop-filter:blur(12px);
}

.modal.is-closing .modal-backdrop{
  opacity:0;
  backdrop-filter:blur(0);
}

.modal-panel{
  position:relative;
  width:min(720px, 100%);
  max-height:min(90vh, 900px);
  overflow:auto;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:rgba(9,13,29,.96);
  box-shadow:
    0 34px 110px rgba(0,0,0,.56),
    0 0 42px rgba(88,224,255,.18);
  transform:translateY(24px) scale(.96);
  transform-origin:top;
  opacity:0;
  transition:
    opacity .52s ease,
    transform .62s cubic-bezier(.16,.86,.2,1);
}

.modal.is-open .modal-panel{
  opacity:1;
  transform:none;
}

.modal.is-closing .modal-panel{
  opacity:0;
  transform:translateY(18px) scale(.97);
}

.modal-close{
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  color:var(--text);
  background:rgba(5,8,18,.74);
  font-size:24px;
  line-height:1;
  cursor:pointer;
  transition:
    transform .2s ease,
    background .2s ease;
}

.modal-close:hover,
.modal-close:focus-visible{
  transform:translateY(-1px);
  background:rgba(255,255,255,.12);
  outline:none;
}

.modal-image{
  display:block;
  width:100%;
  max-height:420px;
  object-fit:cover;
  background:rgba(255,255,255,.05);
}

.modal-content{
  padding:26px;
}

.modal-content h2{
  font-size:30px;
  line-height:1.2;
}

.song-list{
  display:grid;
  gap:10px;
  margin-top:20px;
}

.song-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:14px;
  min-height:52px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.06);
}

.song-row span{
  min-width:0;
  word-break:break-word;
  font-family:"PLCFont", "Microsoft YaHei", "Yu Gothic", "Meiryo", sans-serif;
}

.song-row strong{
  font-size:22px;
}

.difficulty-in strong{
  color:#ff4f68;
}

.difficulty-at strong{
  color:#aeb2bd;
}

.modal-countdown{
  margin-top:24px;
  color:var(--cyan);
  text-align:center;
  font-size:20px;
  text-shadow:0 0 16px rgba(88,224,255,.32);
}

.pac-group-panel{
  width:min(480px, 100%);
  padding:30px 28px 28px;
  overflow:hidden;
  text-align:center;
  background:
    radial-gradient(circle at 50% 0%, rgba(88,224,255,.14), transparent 34%),
    rgba(9,13,29,.97);
}

.pac-group-kicker{
  color:var(--cyan);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.pac-group-panel h2{
  margin-top:12px;
  color:#fff;
  font-size:34px;
  line-height:1;
}

.pac-group-qr{
  display:block;
  width:min(260px, 72vw);
  height:auto;
  margin:24px auto 18px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:18px;
  box-shadow:0 18px 58px rgba(0,0,0,.36), 0 0 26px rgba(88,224,255,.16);
}

.pac-group-number{
  color:rgba(247,251,255,.82);
  font-size:18px;
}

.pac-group-number strong{
  color:#fff;
  font-size:30px;
  letter-spacing:.08em;
}

.pac-group-note{
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
}

@keyframes folderDrop{
  from{
    opacity:0;
    transform:translateY(-18px) scaleY(.72);
  }

  to{
    opacity:1;
    transform:none;
  }
}

@keyframes folderOpen{
  from{
    opacity:0;
    transform:translateY(-26px) scaleY(.62);
  }

  to{
    opacity:1;
    transform:none;
  }
}

@keyframes pacPromoReveal{
  from{
    opacity:0;
    transform:translateY(-18px) scaleY(.92);
  }

  to{
    opacity:1;
    transform:none;
  }
}

@keyframes panelFloatIn{
  from{
    opacity:0;
    transform:translateY(14px);
  }

  to{
    opacity:1;
    transform:none;
  }
}

@keyframes tipSlideIn{
  from{
    opacity:0;
    transform:translateY(70%);
  }

  to{
    opacity:1;
    transform:none;
  }
}

@keyframes tipSlideOut{
  from{
    opacity:1;
    transform:none;
  }

  to{
    opacity:0;
    transform:translateY(-70%);
  }
}

@keyframes gridRhythm{
  0%,
  66%,
  100%{
    opacity:0;
    mask-position:0 135%;
  }

  74%{
    opacity:.38;
  }

  88%{
    opacity:.38;
    mask-position:0 -120%;
  }

  96%{
    opacity:0;
    mask-position:0 -130%;
  }
}

@keyframes firstLayerSideWave{
  from{
    background-position:left 7vw top 118vh, left 14vw top 144vh, right 8vw top 126vh, right 15vw top 156vh, left calc(7vw - 13px) top 118vh, left calc(14vw - 11px) top 144vh, right calc(8vw - 13px) top 126vh, right calc(15vw - 11px) top 156vh;
  }
  to{
    background-position:left 7vw top -72vh, left 14vw top -46vh, right 8vw top -64vh, right 15vw top -34vh, left calc(7vw - 13px) top -72vh, left calc(14vw - 11px) top -46vh, right calc(8vw - 13px) top -64vh, right calc(15vw - 11px) top -34vh;
  }
}

@keyframes firstLayerPulse{
  0%{
    opacity:0;
    filter:blur(8px) brightness(1.6);
  }
  45%{
    opacity:.78;
    filter:blur(1px) brightness(1.2);
  }
  100%{
    opacity:.58;
    filter:
      drop-shadow(0 0 5px rgba(255,255,255,.62))
      drop-shadow(0 0 12px rgba(255,255,255,.24))
      drop-shadow(0 0 20px rgba(149,255,189,.08));
  }
}

@keyframes firstLayerEchoIn{
  from{
    opacity:0;
    filter:blur(8px);
    transform:translateY(42px);
  }
  to{
    opacity:1;
    filter:none;
    transform:none;
  }
}

@keyframes signalSweep{
  0%,
  58%,
  100%{
    opacity:0;
    transform:translateX(-58%);
  }

  68%{
    opacity:.36;
  }

  88%{
    opacity:.2;
    transform:translateX(58%);
  }
}

@keyframes signalBlink{
  0%,
  100%{
    opacity:.35;
  }

  46%{
    opacity:1;
  }
}

@keyframes artCorrupt{
  0%,
  100%{
    transform:scale(1.035) skewX(-.45deg);
    filter:brightness(1.04) saturate(1.28) contrast(1.18);
  }

  18%{
    transform:scale(1.04) skewX(.65deg);
    filter:brightness(1.18) saturate(1.34) contrast(1.24);
  }

  19%{
    transform:scale(1.035) skewX(-.35deg);
  }

  54%{
    transform:scale(1.045) skewX(-.7deg);
    filter:brightness(.96) saturate(1.38) contrast(1.28);
  }

  55%{
    transform:scale(1.035) skewX(.35deg);
  }
}

@keyframes noiseTear{
  0%,
  100%{
    opacity:.82;
    transform:translateY(0);
  }

  24%{
    opacity:.96;
    transform:translateY(-9px);
  }

  25%{
    opacity:.74;
    transform:translateY(5px);
  }

  62%{
    opacity:.92;
    transform:translateY(12px);
  }
}

@keyframes glitchSlice{
  0%,
  100%{
    transform:translateX(0) scaleX(1.02);
  }

  22%{
    transform:translateX(22px) scaleX(1.04);
  }

  23%{
    transform:translateX(-18px) scaleX(.98);
  }

  66%{
    transform:translateX(10px) scaleX(1.08);
  }
}

@keyframes riftOpen{
  0%{
    opacity:0;
    clip-path:polygon(0 18%, 100% 10%, 100% 22%, 0 34%);
    transform:skewX(-18deg);
    filter:brightness(2.6) contrast(3) saturate(2) blur(8px);
  }

  12%{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 18%, 0 12%, 0 42%, 100% 34%, 100% 58%, 0 66%, 0 100%, 100% 92%, 100% 100%, 0 100%);
    transform:skewX(16deg);
    filter:brightness(.65) contrast(2.4) saturate(2.4);
  }

  24%{
    clip-path:polygon(0 0, 100% 8%, 100% 32%, 0 24%, 0 48%, 100% 54%, 100% 100%, 0 92%);
    transform:skewX(-12deg);
    filter:brightness(2.2) contrast(3.2);
  }

  38%{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transform:skewX(7deg);
  }

  52%{
    clip-path:polygon(0 0, 100% 0, 100% 44%, 0 38%, 0 58%, 100% 64%, 100% 100%, 0 100%);
    transform:skewX(-4deg);
    filter:brightness(.9) contrast(2.2);
  }

  76%{
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    filter:blur(1px) hue-rotate(-20deg);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes riftClose{
  from{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transform:none;
    filter:none;
  }

  45%{
    opacity:.86;
    clip-path:polygon(0 4%, 100% 0, 100% 28%, 0 22%, 0 48%, 100% 42%, 100% 72%, 0 80%);
    transform:skewX(-16deg);
    filter:brightness(2.2) contrast(3);
  }

  to{
    opacity:0;
    clip-path:polygon(0 46%, 100% 38%, 100% 64%, 0 72%);
    transform:skewX(18deg);
    filter:blur(10px) brightness(.2) contrast(3);
  }
}

@keyframes riftScan{
  0%{
    opacity:.1;
    transform:translateX(-44%);
  }

  42%{
    opacity:.38;
  }

  100%{
    opacity:.12;
    transform:translateX(44%);
  }
}

@keyframes riftWorldBreak{
  0%,
  100%{
    opacity:0;
    transform:none;
    filter:none;
  }

  18%{
    opacity:.7;
    clip-path:polygon(0 0, 100% 0, 100% 20%, 0 18%, 0 64%, 100% 58%, 100% 100%, 0 100%);
    filter:brightness(2.6) contrast(2.5);
  }

  36%{
    opacity:.22;
    clip-path:polygon(0 20%, 100% 16%, 100% 38%, 0 44%, 0 80%, 100% 72%, 100% 100%, 0 100%);
  }

  58%{
    opacity:.56;
    clip-path:polygon(0 0, 100% 8%, 100% 36%, 0 30%, 0 52%, 100% 58%, 100% 100%, 0 92%);
  }
}

@keyframes riftFracture{
  0%,
  100%{
    text-shadow:
      2px 0 rgba(255,107,186,.74),
      -2px 0 rgba(88,224,255,.62),
      0 0 24px rgba(88,224,255,.26);
    filter:none;
  }

  24%{
    filter:brightness(1.7) contrast(2.2);
    clip-path:polygon(0 0, 100% 0, 100% 46%, 0 40%, 0 64%, 100% 70%, 100% 100%, 0 100%);
  }

  25%{
    filter:brightness(.75) contrast(2.6);
  }

  70%{
    filter:none;
  }
}

@keyframes readableRiftWash{
  0%{
    opacity:0;
    filter:none;
  }

  45%{
    opacity:.18;
    filter:brightness(1.6) contrast(1.4);
  }

  100%{
    opacity:0;
    filter:none;
  }
}

@keyframes readableRiftOpen{
  0%{
    opacity:0;
    transform:translateY(10px);
    filter:blur(4px) brightness(1.4);
  }

  42%{
    opacity:1;
    transform:translateY(0);
    filter:brightness(1.15);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes readablePanelScan{
  0%{
    transform:translateX(-46%);
  }

  100%{
    transform:translateX(46%);
  }
}

@keyframes gateJolt{
  0%,
  100%{
    filter:none;
    opacity:1;
  }

  50%{
    filter:brightness(2.4) contrast(3);
    opacity:.62;
  }
}

@keyframes gateFailBurst{
  0%,
  100%{
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    filter:none;
  }

  14%{
    clip-path:polygon(0 0, 100% 0, 100% 16%, 0 20%, 0 44%, 100% 38%, 100% 100%, 0 94%);
    filter:brightness(2.4) contrast(2.7) saturate(1.8);
  }

  28%{
    clip-path:polygon(0 6%, 100% 0, 100% 38%, 0 32%, 0 60%, 100% 68%, 100% 100%, 0 100%);
    filter:brightness(.55) contrast(3);
  }

  44%{
    clip-path:polygon(0 0, 100% 10%, 100% 28%, 0 20%, 0 72%, 100% 66%, 100% 100%, 0 100%);
    filter:brightness(2.1) contrast(2.4);
  }

  70%{
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    filter:brightness(.8) contrast(2);
  }
}

@keyframes gateFailScan{
  0%{
    mask-position:0 0;
    filter:brightness(2);
  }

  50%{
    mask-position:0 58%;
    filter:brightness(.7);
  }

  100%{
    mask-position:0 100%;
    filter:brightness(2.4);
  }
}

@keyframes gateRedOverload{
  0%{
    opacity:0;
    clip-path:polygon(0 0, 100% 0, 100% 0, 0 0);
  }

  12%{
    opacity:.96;
    clip-path:polygon(0 0, 100% 0, 100% 32%, 0 26%, 0 48%, 100% 42%, 100% 100%, 0 100%);
  }

  28%{
    opacity:.48;
    clip-path:polygon(0 10%, 100% 4%, 100% 24%, 0 30%, 0 70%, 100% 62%, 100% 86%, 0 92%);
  }

  44%{
    opacity:.9;
    clip-path:polygon(0 0, 100% 8%, 100% 100%, 0 88%);
  }

  100%{
    opacity:.34;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}

@keyframes gateResolvePulse{
  0%,
  100%{
    filter:none;
  }

  16%{
    filter:brightness(2.2) saturate(1.8) contrast(2.2);
  }

  36%{
    filter:brightness(.7) saturate(1.4) contrast(2);
  }

  58%{
    filter:brightness(2.8) saturate(2) contrast(2.6);
  }
}

@keyframes revealStatic{
  0%{
    filter:blur(10px) hue-rotate(90deg);
    opacity:0;
  }

  36%{
    filter:blur(2px) hue-rotate(-40deg);
    opacity:.8;
  }

  62%{
    filter:blur(6px) hue-rotate(28deg);
  }

  100%{
    filter:none;
    opacity:1;
  }
}

@keyframes retryTextFault{
  0%,
  100%{
    filter:none;
    transform:none;
  }

  18%{
    filter:brightness(2.2) contrast(2);
    transform:translateY(-1px);
  }

  19%{
    filter:brightness(.72) contrast(2.4);
    transform:translateY(1px);
  }

  46%{
    clip-path:polygon(0 0, 100% 0, 100% 42%, 0 36%, 0 58%, 100% 64%, 100% 100%, 0 100%);
  }

  47%{
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}

@keyframes retryTextSlice{
  0%,
  100%{
    opacity:0;
    transform:translateY(-8px) translateX(-14px);
  }

  35%{
    opacity:.86;
    transform:translateY(0) translateX(18px);
  }

  36%{
    opacity:.24;
    transform:translateY(7px) translateX(-8px);
  }
}

@keyframes retryResolvedText{
  0%,
  100%{
    filter:none;
  }

  44%{
    filter:brightness(1.7) contrast(1.8);
  }

  45%{
    filter:brightness(.8) contrast(2.2);
  }
}

@keyframes retryConsoleBoot{
  0%{
    opacity:0;
    clip-path:polygon(0 48%, 100% 42%, 100% 56%, 0 62%);
    filter:blur(6px) brightness(2.4) contrast(2.8);
  }

  24%{
    opacity:1;
    clip-path:polygon(0 0, 100% 8%, 100% 28%, 0 20%, 0 62%, 100% 58%, 100% 100%, 0 92%);
    filter:brightness(.7) contrast(2.4);
  }

  52%{
    clip-path:polygon(0 0, 100% 0, 100% 48%, 0 42%, 0 64%, 100% 70%, 100% 100%, 0 100%);
    filter:brightness(1.8) contrast(2);
  }

  100%{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    filter:none;
  }
}

@keyframes retryRedCrash{
  0%,
  100%{
    filter:none;
    transform:none;
  }

  18%{
    filter:brightness(2.6) contrast(3) saturate(1.6);
    clip-path:polygon(0 0, 100% 0, 100% 22%, 0 16%, 0 52%, 100% 44%, 100% 100%, 0 100%);
  }

  38%{
    filter:brightness(.45) contrast(3.2) saturate(2);
    clip-path:polygon(0 8%, 100% 0, 100% 46%, 0 38%, 0 70%, 100% 76%, 100% 100%, 0 92%);
  }

  62%{
    filter:brightness(2.1) contrast(2.6);
  }
}

@keyframes retryGreenSplit{
  0%,
  100%{
    filter:none;
  }

  22%{
    filter:brightness(2.3) contrast(2.2);
    clip-path:polygon(0 0, 100% 0, 100% 44%, 0 38%, 0 58%, 100% 66%, 100% 100%, 0 100%);
  }

  44%{
    filter:brightness(.78) contrast(2.4);
  }
}

@keyframes phasePlateScan{
  0%,
  100%{
    opacity:.24;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transform:translateX(-18px);
  }

  22%{
    opacity:.72;
    clip-path:polygon(0 0, 100% 0, 100% 26%, 0 18%, 0 64%, 100% 58%, 100% 100%, 0 100%);
    transform:translateX(14px);
  }

  23%{
    opacity:.18;
    transform:translateX(-9px);
  }

  64%{
    opacity:.54;
    clip-path:polygon(0 8%, 100% 0, 100% 42%, 0 36%, 0 72%, 100% 78%, 100% 100%, 0 92%);
  }
}

@keyframes glassBaseImpact{
  0%{
    filter:brightness(1.1) contrast(1.4);
  }

  10%{
    filter:brightness(3) contrast(3.4) saturate(2.4);
    clip-path:polygon(0 0, 100% 0, 100% 22%, 0 18%, 0 48%, 100% 42%, 100% 100%, 0 100%);
  }

  28%{
    filter:brightness(.34) contrast(3.2) saturate(2);
    clip-path:polygon(0 0, 100% 8%, 100% 34%, 0 28%, 0 68%, 100% 62%, 100% 100%, 0 92%);
  }

  52%{
    filter:brightness(2.4) contrast(2.8) saturate(2.2);
  }

  100%{
    filter:brightness(.82) contrast(1.48) saturate(1.45);
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}

@keyframes fracturePieceBurst{
  0%{
    opacity:0;
    transform:translate3d(0,0,0) rotate(0);
    filter:brightness(3) contrast(3.4) saturate(2.4) blur(4px);
  }

  14%{
    opacity:1;
    transform:translate3d(0,0,0) rotate(0);
    filter:brightness(.42) contrast(3.2) saturate(2.4);
  }

  34%{
    transform:translate3d(var(--burst-x), var(--burst-y), 0) rotate(var(--burst-rot));
    filter:brightness(2.2) contrast(2.6) saturate(2);
  }

  72%{
    opacity:.82;
    transform:translate3d(calc(var(--burst-x) * .45), calc(var(--burst-y) * .45), 0) rotate(calc(var(--burst-rot) * .5));
  }

  100%{
    opacity:0;
    transform:translate3d(0,0,0) rotate(0);
    filter:brightness(.75) contrast(2) saturate(1.6);
  }
}

@keyframes fractureVeins{
  0%,
  100%{
    filter:none;
    opacity:.56;
  }

  30%{
    filter:brightness(2.4) contrast(2.6);
    opacity:.88;
  }

  31%{
    opacity:.3;
  }
}

@keyframes lockedShardWake{
  0%{
    opacity:0;
    filter:brightness(2.4) contrast(3) blur(4px);
  }

  36%{
    opacity:.7;
    filter:brightness(.52) contrast(2.8) blur(1px);
  }

  100%{
    opacity:.48;
  }
}

@keyframes shardOneReveal{
  0%{
    opacity:0;
    transform:translate3d(28px, -20px, 0) rotate(5deg);
    filter:brightness(3) contrast(2.6) blur(7px);
  }

  18%{
    opacity:1;
    transform:translate3d(-10px, 6px, 0) rotate(-2deg);
    filter:brightness(.62) contrast(2.4);
  }

  36%{
    transform:translate3d(8px, -4px, 0) rotate(1deg);
    filter:brightness(2.1) contrast(1.9);
  }

  62%{
    transform:none;
    filter:brightness(.9) contrast(1.25);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes shardTwoReveal{
  0%{
    opacity:0;
    transform:translate3d(-24px, -18px, 0) rotate(-4deg);
    filter:brightness(2.8) contrast(2.8) blur(6px);
  }

  20%{
    opacity:1;
    transform:translate3d(12px, 8px, 0) rotate(2deg);
    filter:brightness(.54) contrast(2.5) saturate(1.8);
  }

  42%{
    transform:translate3d(-7px, -3px, 0) rotate(-1deg);
    filter:brightness(2.2) contrast(2.1);
    clip-path:polygon(0 0, 40% 0, 35% 30%, 13% 42%, 0 38%, 0 18%, 32% 12%, 0 8%);
  }

  68%{
    transform:none;
    filter:brightness(.9) contrast(1.38);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes shardThreeReveal{
  0%{
    opacity:0;
    transform:translate3d(-28px, 8px, 0) rotate(-3deg);
    filter:brightness(2.9) contrast(2.7) blur(6px);
  }

  18%{
    opacity:1;
    transform:translate3d(14px, -6px, 0) rotate(2deg);
    filter:brightness(.5) contrast(2.4) saturate(1.7);
  }

  40%{
    transform:translate3d(-8px, 4px, 0) rotate(-1deg);
    filter:brightness(2.1) contrast(2.2);
  }

  66%{
    transform:none;
    filter:brightness(.9) contrast(1.35);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes shardFourReveal{
  0%{
    opacity:0;
    transform:translate3d(0, -18px, 0) rotate(5deg) scale(.72);
    filter:brightness(3.1) contrast(2.9) blur(7px);
    clip-path:polygon(12% 8%, 96% 0, 98% 90%, 72% 84%, 52% 74%, 35% 78%, 18% 88%, 0 82%);
  }

  18%{
    opacity:1;
    transform:translate3d(12px, 6px, 0) rotate(-2deg) scale(1.06);
    filter:brightness(.48) contrast(2.8) saturate(1.9);
  }

  42%{
    transform:translate3d(-7px, -4px, 0) rotate(1deg) scale(.98);
    filter:brightness(2.4) contrast(2.3);
    clip-path:polygon(0 0, 100% 0, 100% 100%, 73% 94%, 52% 88%, 36% 87%, 20% 98%, 0 90%);
  }

  68%{
    transform:none;
    filter:brightness(.9) contrast(1.42);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes shardFiveReveal{
  0%{
    opacity:0;
    transform:translate3d(22px, 24px, 0) rotate(4deg) scale(.78);
    filter:brightness(3) contrast(2.7) blur(6px);
  }

  20%{
    opacity:1;
    transform:translate3d(-10px, -8px, 0) rotate(-2deg) scale(1.04);
    filter:brightness(.56) contrast(2.4) saturate(1.6);
  }

  44%{
    transform:translate3d(6px, 4px, 0) rotate(1deg) scale(.98);
    filter:brightness(2.15) contrast(2.1);
  }

  68%{
    transform:none;
    filter:brightness(.94) contrast(1.24);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes shardFourCircuit{
  0%,
  100%{
    opacity:.34;
    transform:translateX(-8px);
  }

  28%{
    opacity:.88;
    transform:translateX(9px);
  }

  30%{
    opacity:.2;
    transform:translateX(-4px);
  }

  64%{
    opacity:.62;
    transform:translateY(5px);
  }
}

@keyframes shardFourCorePulse{
  0%,
  100%{
    opacity:.38;
    filter:none;
  }

  45%{
    opacity:.84;
    filter:brightness(1.8) contrast(1.6);
  }

  48%{
    opacity:.18;
  }
}

@keyframes palaceScan{
  0%{
    transform:translateY(-110%);
  }

  42%{
    transform:translateY(360%);
  }

  43%,
  100%{
    transform:translateY(420%);
  }
}

@keyframes sourceSweep{
  0%{
    transform:translateX(-70%);
  }

  38%{
    transform:translateX(72%);
  }

  39%,
  100%{
    transform:translateX(86%);
  }
}

@keyframes noteFieldScan{
  0%{
    transform:translateY(-16%);
  }

  100%{
    transform:translateY(16%);
  }
}

@keyframes noteFieldTear{
  0%,
  74%,
  100%{
    opacity:.14;
    transform:none;
  }

  76%{
    opacity:.34;
    transform:translate3d(7px, -2px, 0);
  }

  78%{
    opacity:.18;
    transform:translate3d(-5px, 3px, 0);
  }
}

@keyframes noteTokenDock{
  0%{
    opacity:0;
    transform:
      translate(-50%, -50%)
      translate3d(var(--from-x), var(--from-y), 0)
      rotate(calc(var(--from-rot) + var(--asset-rot, 0deg)))
      scale(.4);
    filter:blur(7px) brightness(2.9) contrast(2.6) saturate(1.7);
  }

  28%{
    opacity:1;
    transform:
      translate(-50%, -50%)
      translate3d(calc(var(--from-x) * .26), calc(var(--from-y) * .26), 0)
      rotate(calc(var(--from-rot) + var(--asset-rot, 0deg)))
      scale(1.14);
    filter:blur(2px) brightness(.74) contrast(2.2) saturate(1.35);
  }

  46%{
    transform:
      translate(-50%, -50%)
      translate3d(5px, -3px, 0)
      rotate(calc(var(--rot) + var(--asset-rot, 0deg)))
      scale(.98);
    filter:brightness(2.2) contrast(2.2) saturate(1.35);
  }

  68%{
    transform:
      translate(-50%, -50%)
      translate3d(-2px, 1px, 0)
      rotate(calc(var(--rot) + var(--asset-rot, 0deg)))
      scale(1.02);
    filter:brightness(.9) contrast(1.34);
  }

  100%{
    opacity:1;
    transform:translate(-50%, -50%) rotate(calc(var(--rot) + var(--asset-rot, 0deg))) scale(1);
  }
}

@keyframes noteTokenFlicker{
  0%,
  100%{
    opacity:1;
  }

  48%{
    opacity:.9;
    filter:brightness(1.3) contrast(1.18);
  }

  52%{
    opacity:1;
  }
}

@keyframes noteQuestionWake{
  0%{
    opacity:0;
    transform:translateY(10px);
    filter:blur(8px) brightness(2.4) contrast(2);
  }

  52%{
    opacity:1;
    transform:translateY(-2px);
    filter:brightness(.82) contrast(2.1);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes finalDateImageDrift{
  0%,
  100%{
    transform:scale(1.18) translate3d(0, 0, 0);
  }
  24%{
    transform:scale(1.2) translate3d(-1.2%, .8%, 0);
  }
  52%{
    transform:scale(1.19) translate3d(1%, -1%, 0);
  }
  76%{
    transform:scale(1.21) translate3d(.6%, 1.1%, 0);
  }
}

@keyframes finalDateSignalCut{
  0%,
  100%{
    opacity:.14;
    transform:translateX(0);
  }
  36%{
    opacity:.26;
    transform:translateX(-1.2%);
  }
  62%{
    opacity:.18;
    transform:translateX(1.4%);
  }
}

@keyframes countdownTickFlash{
  0%{
    opacity:.76;
    filter:brightness(1.55) contrast(1.28);
    text-shadow:
      5px 0 rgba(255,107,186,.86),
      -5px 0 rgba(88,224,255,.9),
      0 0 46px rgba(255,255,255,.42);
    transform:translateX(-1px);
  }

  48%{
    opacity:1;
    filter:brightness(1.18) contrast(1.08);
    transform:translateX(1px);
  }

  100%{
    opacity:1;
    filter:none;
    transform:none;
  }
}

@keyframes bootBlackout{
  0%{
    opacity:0;
  }

  34%{
    opacity:.42;
  }

  72%{
    opacity:.88;
  }

  100%{
    opacity:1;
  }
}

@keyframes bootTextOpen{
  0%{
    clip-path:inset(0 50% 0 50%);
    opacity:0;
    filter:brightness(1.8) blur(4px);
    transform:translate(-50%, -50%) translateY(-28px);
  }

  58%{
    clip-path:inset(0 0 0 0);
    opacity:1;
    filter:brightness(1.18);
    transform:translate(-50%, -50%);
  }

  100%{
    clip-path:inset(0 0 0 0);
    opacity:1;
    filter:none;
    transform:translate(-50%, -50%);
  }
}

@keyframes bootTextExitDown{
  0%{
    transform:translate(-50%, -50%);
    opacity:.86;
  }

  100%{
    transform:translate(-50%, -50%) translateY(72px);
    opacity:0;
    filter:blur(6px);
  }
}

@keyframes bootReturnFade{
  0%{
    opacity:1;
    filter:none;
    transform:skewX(-5deg);
  }

  100%{
    opacity:0;
    filter:blur(16px) brightness(.12);
    transform:skewX(-5deg) scale(.98);
  }
}

@keyframes reverseGateWake{
  0%{
    filter:brightness(1.5) contrast(1.2);
    transform:translateY(-2px);
  }

  100%{
    filter:none;
    transform:none;
  }
}

@keyframes offsetTableScramble{
  0%{
    transform:translateX(-2px) skewX(-9deg);
    filter:brightness(1.6);
  }

  50%{
    transform:translateX(2px) skewX(7deg);
    filter:brightness(.72);
  }

  100%{
    transform:translateX(0) skewX(0);
    filter:brightness(1.22);
  }
}

@keyframes offsetDigitTick{
  0%{
    opacity:.45;
    transform:translateY(-4px);
    filter:blur(4px) brightness(1.8);
  }

  100%{
    opacity:1;
    transform:translateY(0);
    filter:none;
  }
}

@keyframes mysterySideDim{
  0%{
    opacity:0;
  }

  100%{
    opacity:.34;
  }
}

@keyframes mysterySectionRemain{
  0%{
    opacity:.55;
    transform:translateY(18px);
    filter:blur(6px);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes rankingMysteryBloom{
  0%{
    opacity:.32;
    filter:blur(10px);
  }

  100%{
    opacity:1;
    filter:none;
  }
}

@keyframes rankingMysteryRow{
  0%{
    opacity:0;
    transform:translateY(16px);
  }

  100%{
    opacity:1;
    transform:none;
  }
}

@keyframes qualifierPanelRise{
  0%{
    opacity:0;
    transform:translateY(24px) scale(.985);
    filter:blur(12px);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes qualifierPanelDeny{
  0%,
  100%{
    transform:translateX(0);
  }

  30%{
    transform:translateX(-8px);
  }

  62%{
    transform:translateX(7px);
  }
}

@keyframes rankingRowExtract{
  0%{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:none;
  }

  42%{
    opacity:.72;
    transform:translateY(-24px) scale(.99);
    filter:blur(2px);
  }

  100%{
    opacity:0;
    transform:translateY(-112px) scale(.95);
    filter:blur(10px);
  }
}

@keyframes rebootArtReveal{
  0%{
    opacity:0;
    transform:scale(.88);
    filter:blur(20px) brightness(.2);
  }

  100%{
    opacity:1;
    transform:scale(.96);
    filter:brightness(.86) saturate(.96);
  }
}

@keyframes layerTenClueFloat{
  0%,
  100%{
    transform:translate(-50%, -50%);
    filter:brightness(1);
  }

  50%{
    transform:translate(calc(-50% + 2px), calc(-50% - 5px));
    filter:brightness(1.16);
  }
}

@keyframes simulationButtonWake{
  0%{
    opacity:0;
    transform:translateY(14px);
    filter:blur(8px);
  }

  100%{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes databaseQuickEntryIn{
  from{
    opacity:0;
    transform:translateY(12px);
  }
  to{
    opacity:1;
    transform:none;
  }
}

@keyframes plcDbPanelIn{
  from{
    opacity:0;
    filter:blur(8px);
  }
  to{
    opacity:1;
    filter:none;
  }
}

@keyframes plcDbCardIn{
  from{
    opacity:0;
    transform:translateY(18px);
    filter:blur(6px);
  }
  to{
    opacity:1;
    transform:none;
    filter:none;
  }
}

@keyframes plcDbSurfaceIn{
  from{
    opacity:0;
    filter:blur(7px) brightness(.86);
  }
  to{
    opacity:1;
    filter:none;
  }
}

@keyframes plcDbListItemIn{
  from{
    opacity:0;
    transform:translateX(-10px);
  }
  to{
    opacity:1;
    transform:none;
  }
}

@keyframes plcDbContentIn{
  from{
    opacity:0;
    transform:translateY(10px);
  }
  to{
    opacity:1;
    transform:none;
  }
}

@keyframes plcDbReplayFlicker{
  0%,
  68%,
  100%{
    opacity:.035;
    transform:none;
  }
  69%{
    opacity:.12;
    transform:translateX(1px);
  }
  70%{
    opacity:.025;
    transform:translateX(-1px);
  }
  88%{
    opacity:.08;
    transform:none;
  }
  89%{
    opacity:.03;
  }
}

@media (prefers-reduced-motion: reduce){
  .plc-database *,
  .plc-database *::before,
  .plc-database *::after{
    animation-duration:.001s !important;
    animation-delay:0s !important;
    transition-duration:.001s !important;
  }
}

@keyframes saturnBrandWake{
  from{
    opacity:0;
    filter:blur(4px);
    transform:translate(-50%, -50%) scale(.96);
  }
  to{
    opacity:1;
    filter:none;
    transform:translate(-50%, -50%) scale(1);
  }
}

@keyframes saturnBrandGlitch{
  0%, 72%, 100%{
    filter:none;
    transform:translate(-50%, -50%);
  }
  73%{
    filter:blur(.8px);
    transform:translate(calc(-50% - 2px), -50%);
  }
  74%{
    filter:none;
    transform:translate(calc(-50% + 3px), -50%);
  }
  75%{
    transform:translate(-50%, -50%);
  }
}

@keyframes saturnLetterDrop{
  0%, 42%, 48%, 100%{
    opacity:0;
  }
  43%, 47%{
    opacity:.8;
    clip-path:polygon(0 0, 83% 0, 83% 100%, 0 100%);
  }
}

@keyframes saturnBootScan{
  from{
    transform:translateX(-115%);
  }
  50%{
    transform:translateX(66%);
  }
  to{
    transform:translateX(135%);
  }
}

@keyframes rebootShardSettle{
  0%{
    opacity:0;
    transform:translateY(28px) scale(.92);
    filter:blur(10px) brightness(.34);
  }

  100%{
    opacity:1;
    transform:none;
    filter:brightness(.9) contrast(1.06);
  }
}

@keyframes fragmentFiveUnlock{
  0%{
    opacity:0;
    transform:translate(26px, 34px) scale(.78);
    filter:blur(12px);
  }

  58%{
    opacity:1;
    transform:translate(0, 0) scale(1.04);
    filter:brightness(1.3);
  }

  100%{
    opacity:1;
    transform:translate(0, 0) scale(1);
    filter:none;
  }
}

@keyframes shardResealField{
  0%{
    opacity:1;
    filter:none;
  }

  100%{
    opacity:0;
    filter:blur(8px) brightness(.4);
  }
}

@keyframes shardReseal{
  0%{
    opacity:1;
    transform:translate3d(0, 0, 0) rotate(0);
    filter:none;
  }

  100%{
    opacity:0;
    transform:translate3d(0, 0, 0) scale(.92) rotate(-1deg);
    filter:blur(7px) brightness(.28) contrast(1.8);
  }
}

@keyframes folderCloseReverse{
  0%{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transform:translateY(0);
  }

  72%{
    opacity:.74;
    clip-path:polygon(0 42%, 100% 34%, 100% 68%, 0 74%);
    transform:translateY(10px);
  }

  100%{
    opacity:0;
    clip-path:polygon(0 50%, 100% 48%, 100% 52%, 0 54%);
    transform:translateY(24px);
  }
}

@keyframes audioPulseBlink{
  0%,
  100%{
    filter:none;
    transform:none;
  }

  50%{
    filter:brightness(1.8) contrast(1.4);
    transform:scaleY(1.2);
  }
}

@keyframes readableResultReveal{
  0%{
    opacity:0;
    clip-path:polygon(0 44%, 100% 36%, 100% 58%, 0 68%);
    filter:blur(8px) brightness(2.8) contrast(3);
  }

  24%{
    opacity:1;
    clip-path:polygon(0 0, 100% 8%, 100% 32%, 0 24%, 0 60%, 100% 66%, 100% 100%, 0 92%);
    filter:brightness(.7) contrast(2.6);
  }

  56%{
    clip-path:polygon(0 0, 100% 0, 100% 44%, 0 38%, 0 58%, 100% 62%, 100% 100%, 0 100%);
    filter:brightness(2.4) contrast(2.2);
  }

  100%{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    filter:none;
  }
}

@keyframes fragmentResultReveal{
  0%{
    opacity:0;
    clip-path:polygon(0 44%, 100% 36%, 100% 58%, 0 68%);
    filter:blur(8px) brightness(2.8) contrast(3);
  }

  24%{
    opacity:1;
    clip-path:polygon(0 0, 100% 8%, 100% 32%, 0 24%, 0 60%, 100% 66%, 100% 100%, 0 92%);
    filter:brightness(.7) contrast(2.6);
  }

  56%{
    clip-path:polygon(0 0, 100% 0, 100% 44%, 0 38%, 0 58%, 100% 62%, 100% 100%, 0 100%);
    filter:brightness(2.4) contrast(2.2);
  }

  100%{
    opacity:1;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
    filter:none;
  }
}

@keyframes riftErrorCrack{
  0%,
  100%{
    filter:none;
  }

  16%{
    filter:brightness(2.8) contrast(3) saturate(1.8);
    clip-path:polygon(0 0, 100% 0, 100% 20%, 0 16%, 0 52%, 100% 46%, 100% 100%, 0 100%);
  }

  38%{
    filter:brightness(.5) contrast(3.2);
    clip-path:polygon(0 8%, 100% 0, 100% 42%, 0 36%, 0 70%, 100% 76%, 100% 100%, 0 92%);
  }

  66%{
    filter:brightness(2.2) contrast(2.6);
  }
}

@keyframes readableErrorPulse{
  0%,
  100%{
    opacity:1;
    transform:none;
    filter:none;
  }

  42%{
    opacity:1;
    transform:none;
    filter:brightness(1.35) contrast(1.35) saturate(1.2);
  }
}

@keyframes readableResultReveal{
  0%{
    opacity:0;
    filter:blur(3px) brightness(1.35);
  }

  50%{
    opacity:1;
    filter:brightness(1.25);
  }

  100%{
    opacity:1;
    filter:none;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}

@media(max-width:960px){
  .site-header{
    align-items:flex-start;
    flex-direction:column;
  }

  .site-nav{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .hero{
    min-height:auto;
    grid-template-columns:1fr;
    padding-top:38px;
  }

  .notice-band,
  .intro-grid,
  .signal-gate-panel,
  .final-signal-panel{
    grid-template-columns:1fr 1fr;
  }

  .intro-panel.wide{
    grid-column:1 / -1;
  }

  .pac-promo-section{
    margin:28px 0 34px;
  }

  .pac-promo-section.is-collapsed{
    margin:24px 0 28px;
  }

  .pac-promo-toggle{
    min-height:64px;
    margin-left:0;
    padding:0 clamp(28px, 5vw, 44px);
    font-size:clamp(24px, 4.4vw, 34px);
  }

  .pac-promo-card{
    min-height:clamp(474px, 66vw, 610px);
  }

  .pac-promo-art{
    width:calc(100% - clamp(38px, 9vw, 86px));
    height:clamp(170px, 23vw, 220px);
    margin-left:clamp(34px, 8vw, 78px);
  }

  .pac-promo-character{
    top:clamp(-42px, -4vw, -26px);
    right:clamp(-28px, -2vw, -10px);
    width:clamp(238px, 34vw, 340px);
  }

  .pac-promo-panel{
    width:calc(100% - 16px);
    min-height:clamp(284px, 44vw, 396px);
    clip-path:polygon(7% 0, 100% 0, 94% 100%, 0 100%);
  }

  .pac-promo-copy{
    padding:clamp(20px, 3.4vw, 30px) clamp(38px, 6vw, 64px) clamp(22px, 3vw, 30px);
  }

  .pac-promo-title{
    font-size:clamp(22px, 4.1vw, 34px);
  }

  .pac-promo-quote,
  .pac-promo-source,
  .pac-promo-signoff{
    font-size:clamp(17px, 2.8vw, 24px);
  }

  .pac-promo-actions{
    min-height:clamp(70px, 10vw, 96px);
    padding:0 clamp(44px, 7vw, 72px) 0 clamp(34px, 6vw, 58px);
  }

  .pac-promo-button{
    font-size:clamp(24px, 4vw, 34px);
  }
}

@media(max-width:640px), (max-width:1024px) and (max-height:720px){
  body{
    background-attachment:scroll;
  }

  .saturn-simulation-loader,
  .plc-database{
    --plc-mobile-stage-scale:.84;
  }

  .saturn-loader-shell{
    position:absolute;
    left:50%;
    top:50%;
    width:100dvh;
    height:100dvw;
    min-height:0;
    transform:translate(-50%, -50%) rotate(90deg) scale(var(--plc-mobile-stage-scale));
    transform-origin:center center;
  }

  .saturn-loader-brand{
    top:48%;
    flex-direction:row;
    gap:clamp(18px, 3dvh, 28px);
  }

  .saturn-loader-brand strong{
    font-size:clamp(26px, 5.4dvh, 40px);
    letter-spacing:.22em;
  }

  .saturn-loader-brand span{
    min-width:clamp(118px, 18dvh, 156px);
    min-height:clamp(34px, 4.8dvh, 44px);
    padding:0 18px;
    font-size:clamp(13px, 2.1dvh, 18px);
  }

  .saturn-loader-bracket{
    top:49%;
    width:clamp(72px, 14dvh, 116px);
    height:clamp(104px, 31dvw, 150px);
  }

  .saturn-loader-bracket-left{
    left:clamp(26px, 8dvh, 64px);
  }

  .saturn-loader-bracket-right{
    right:clamp(26px, 8dvh, 64px);
  }

  .saturn-loader-console{
    top:66%;
    width:min(64dvh, 560px);
    transform:translateX(-50%) scale(.68);
  }

  .saturn-loader-line{
    min-height:28px;
    gap:18px;
    font-size:16px;
  }

  .saturn-loader-line b{
    min-width:0;
  }

  .saturn-loader-progress{
    height:19px;
    border-width:2px;
  }

  .plc-database{
    place-items:center;
    overflow:hidden;
  }

  .plc-db-panel{
    position:absolute;
    left:50%;
    top:50%;
    width:100dvh;
    height:100dvw;
    max-width:none;
    max-height:none;
    transform:translate(-50%, -50%) rotate(90deg) scale(var(--plc-mobile-stage-scale));
    transform-origin:center center;
  }

  .plc-db-home{
    width:100dvh;
    height:100dvw;
    max-height:none;
    padding:58px 28px 20px;
    overflow:hidden;
  }

  .plc-db-home.is-active{
    display:grid;
    grid-template-rows:1fr auto;
    align-content:stretch;
    gap:12px;
  }

  .plc-db-header,
  .plc-db-file-header{
    left:0;
    right:0;
  }

  .plc-db-header p,
  .plc-db-file-header p{
    max-width:calc(100% - 58px);
    padding-left:14px;
    font-size:17px;
  }

  .plc-db-category-grid{
    grid-template-columns:repeat(3, minmax(180px, 1fr));
    gap:14px;
    width:100%;
    min-width:0;
  }

  .plc-db-category-card{
    width:auto;
    min-width:0;
    min-height:118px;
  }

  .plc-db-card-label{
    right:14px;
    bottom:32px;
    max-width:calc(100% - 28px);
  }

  .plc-db-card-label small{
    font-size:13px;
  }

  .plc-db-card-label strong{
    font-size:25px;
  }

  .plc-db-card-progress{
    right:14px;
    max-width:calc(100% - 28px);
    font-size:12px;
  }

  .plc-db-replay-button{
    right:28px;
    bottom:82px;
    width:178px;
    height:62px;
  }

  .plc-db-replay-button strong{
    font-size:25px;
  }

  .plc-db-total{
    grid-template-columns:minmax(0, 1fr) auto;
    gap:6px 12px;
    align-self:end;
    padding-top:12px;
  }

  .plc-db-total p{
    font-size:16px;
  }

  .plc-db-total-bar{
    height:34px;
  }

  .plc-db-total strong{
    min-width:82px;
    font-size:34px;
  }

  .plc-db-detail{
    width:100dvh;
    height:100dvw;
  }

  .plc-db-detail.is-active{
    grid-template-columns:250px minmax(0, 1fr);
    gap:18px;
  }

  .plc-db-folder{
    padding:0 10px 16px;
    transform:rotateY(5deg);
  }

  .plc-db-folder-info > p,
  .plc-db-content-list > p{
    height:24px;
    margin:0 -10px;
    padding-left:10px;
    font-size:14px;
  }

  .plc-db-folder-cover{
    height:92px;
    margin:0 -2px 10px;
  }

  .plc-db-folder-cover strong{
    right:10px;
    bottom:34px;
    font-size:20px;
  }

  .plc-db-folder-cover em{
    right:10px;
    bottom:8px;
    font-size:11px;
  }

  .plc-db-entry-list{
    max-height:186px;
    overflow:auto;
    gap:3px;
    padding:6px 0 10px;
  }

  .plc-db-entry-button{
    min-height:29px;
    padding:0 14px;
    font-size:16px;
  }

  .plc-db-back{
    left:14px;
    bottom:10px;
    font-size:26px;
  }

  .plc-db-entry-count{
    right:14px;
    bottom:54px;
    font-size:15px;
  }

  .plc-db-file-body{
    padding:26px 30px 28px;
  }

  .plc-db-file-body h2{
    margin-bottom:14px;
    font-size:clamp(28px, 4.3vw, 42px);
  }

  .plc-db-meta{
    margin-bottom:16px;
  }

  .plc-db-meta div{
    min-width:148px;
  }

  .plc-db-meta dt{
    padding:5px 10px;
    font-size:13px;
  }

  .plc-db-meta dd{
    padding:5px 12px;
    font-size:13px;
  }

  .plc-db-entry-content{
    font-size:clamp(15px, 2vw, 18px);
    line-height:1.55;
  }

  .site-header,
  main,
  .site-footer{
    width:min(100% - 20px, 1180px);
  }

  .site-header{
    margin-top:10px;
    padding:8px 10px;
    align-items:center;
    flex-direction:row;
    gap:10px;
    overflow:hidden;
  }

  .brand{
    gap:6px;
    font-size:0;
  }

  .brand-logo{
    width:34px;
    height:34px;
  }

  .brand strong{
    display:none;
  }

  .site-nav{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    justify-content:flex-start;
    flex-wrap:nowrap;
    gap:4px;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    font-size:11px;
    white-space:nowrap;
  }

  .site-nav::-webkit-scrollbar{
    display:none;
  }

  .site-nav a{
    flex:0 0 auto;
    padding:5px 6px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:6px;
    background:rgba(255,255,255,.05);
  }

  .hero{
    gap:18px;
    padding:24px 0 18px;
  }

  .hero h1{
    font-size:clamp(42px, 15vw, 58px);
  }

  .hero-lead{
    margin-top:14px;
    font-size:15px;
    line-height:1.65;
  }

  .hero-actions,
  .button{
    width:100%;
  }

  .hero-actions{
    margin-top:18px;
    gap:10px;
  }

  .button{
    min-height:40px;
    font-size:14px;
  }

  .pac-promo-section{
    margin:18px 0 26px;
    padding:18px 0 0;
  }

  .pac-promo-section.is-collapsed{
    margin:16px 0 22px;
  }

  .pac-promo-toggle{
    width:100%;
    min-height:58px;
    padding:0 26px 0 32px;
    clip-path:polygon(6% 0, 100% 0, 94% 100%, 0 100%);
    font-size:clamp(21px, 6vw, 29px);
  }

  .pac-promo-card{
    min-height:0;
    filter:drop-shadow(0 22px 32px rgba(0,0,0,.28));
  }

  .pac-promo-art{
    width:100%;
    height:clamp(96px, 25vw, 132px);
    margin-left:0;
  }

  .pac-promo-banner-frame{
    clip-path:polygon(3% 0, 100% 0, 97% 100%, 0 100%);
  }

  .pac-promo-bg{
    object-position:42% center;
  }

  .pac-promo-character{
    top:clamp(-24px, -5vw, -14px);
    right:clamp(-24px, -4vw, -10px);
    width:clamp(130px, 36vw, 190px);
    max-width:45%;
  }

  .pac-promo-panel{
    width:100%;
    min-height:0;
    clip-path:polygon(5% 0, 100% 0, 96% 100%, 0 100%);
  }

  .pac-promo-copy{
    padding:20px 24px 22px 30px;
  }

  .pac-promo-title{
    margin-bottom:16px;
    padding:4px 18px 6px 22px;
    font-size:clamp(19px, 6vw, 28px);
  }

  .pac-promo-quote,
  .pac-promo-source,
  .pac-promo-signoff{
    font-size:clamp(14px, 4.2vw, 18px);
    line-height:1.56;
  }

  .pac-promo-source{
    margin-top:12px;
  }

  .pac-promo-signoff{
    margin-top:18px;
  }

  .pac-promo-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    min-height:0;
    padding:8px 26px 10px;
  }

  .pac-promo-button{
    width:100%;
    min-height:46px;
    justify-content:flex-start;
    font-size:clamp(21px, 6vw, 30px);
  }

  .pac-promo-button-secondary{
    justify-content:flex-start;
  }

  .hero-card,
  .intro-panel,
  .signal-gate-panel,
  .final-signal-panel,
  .timeline-item,
  .rule-card,
  .format-panel,
  .requirement-list,
  .ranking-preview-list{
    padding:18px;
  }

  .signal-gate-panel{
    grid-template-columns:1fr;
    padding:0;
  }

  .signal-gate-copy,
  .signal-gate-console{
    padding:16px;
  }

  .signal-gate-copy h3{
    font-size:clamp(22px, 6.2vw, 32px);
    line-height:1.14;
  }

  .signal-gate-copy p{
    font-size:14px;
    line-height:1.55;
  }

  .signal-gate-console{
    gap:12px;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.12);
  }

  .gate-readout{
    min-height:0;
    padding:10px 12px;
    gap:10px;
  }

  .gate-readout span,
  .gate-status{
    font-size:12px;
  }

  .gate-readout strong,
  #offsetTableValue.is-offset-final{
    min-width:auto !important;
    font-size:clamp(18px, 5.6vw, 26px) !important;
  }

  .offset-encrypted-time{
    font-size:10px;
  }

  .gate-keypad{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
  }

  .gate-keypad button{
    min-height:38px;
    font-size:14px;
  }

  .final-signal-panel{
    grid-template-columns:1fr;
    padding:0;
  }

  .final-art-frame,
  .final-art-stage,
  .final-art-frame img{
    height:210px;
    min-height:210px;
  }

  .final-signal-copy{
    padding:20px;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.12);
  }

  .final-signal-copy::before{
    display:none;
  }

  .final-signal-copy h3{
    font-size:26px;
  }

  .final-art-status,
  .final-art-prompt{
    left:14px;
    right:auto;
    bottom:14px;
    font-size:11px;
  }

  .final-art-prompt{
    bottom:54px;
  }

  .cipher-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .pulse-options{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .retry-layer-grid{
    grid-template-columns:1fr;
  }

  .palace-plate{
    width:min(210px, 100%);
  }

  .palace-equation{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }

  .palace-equation span{
    min-height:38px;
    font-size:13px;
  }

  .multisource-grid{
    grid-template-columns:1fr;
  }

  .multisource-card{
    padding:9px;
  }

  .visual-source img{
    aspect-ratio:16 / 9;
    object-position:center 45%;
  }

  .web-response{
    grid-template-columns:1fr;
  }

  .audio-bars{
    height:38px;
  }

  .chem-lattice{
    grid-template-columns:1fr;
  }

  .chem-lattice span{
    min-height:64px;
    padding:10px;
  }

  .chem-lattice b{
    font-size:21px;
  }

  .pulse-sequence{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .pulse-options button{
    min-height:42px;
  }

  .fragment-answer div{
    grid-template-columns:1fr;
  }

  .fragment-proof-grid,
  .date-format-grid,
  .dif-ledger{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .fragment-standby-grid{
    grid-template-columns:1fr;
  }

  .fragment-result{
    width:100%;
    font-size:34px;
  }

  .fragment-rift{
    padding:10px;
  }

  .fragment-rift-panel{
    width:100%;
    max-height:calc(100vh - 20px);
    padding:26px 16px 20px;
    overflow:auto;
  }

  .fragment-rift-panel h2{
    max-width:calc(100% - 44px);
    margin-top:12px;
    font-size:24px;
    line-height:1.2;
  }

  .fragment-riddle{
    margin-top:14px;
    font-size:13px;
    line-height:1.65;
  }

  .fragment-proof-grid{
    grid-template-columns:1fr 1fr;
    margin-top:14px;
  }

  .fragment-proof-grid span{
    min-height:38px;
    padding:7px 6px;
    font-size:10px;
    letter-spacing:.4px;
  }

  .fragment-answer{
    margin-top:16px;
    gap:7px;
  }

  .fragment-answer label{
    font-size:11px;
  }

  .fragment-answer input{
    min-height:44px;
    padding:0 12px;
    font-size:22px;
    letter-spacing:5px;
  }

  .fragment-answer button{
    min-height:42px;
  }

  .fragment-answer-status{
    margin-top:10px;
    font-size:11px;
    line-height:1.45;
  }

  .fragment-result{
    min-height:48px;
    margin-top:14px;
    padding:0 12px;
    font-size:30px;
  }

  .layer-ten-puzzle-art{
    overflow:visible;
  }

  .layer-ten-puzzle-art img{
    border-radius:8px 8px 0 0;
  }

  .layer-ten-clue-stack{
    position:relative;
    display:grid;
    gap:8px;
    padding:10px;
    background:rgba(2,7,18,.9);
  }

  .layer-ten-clue-stack span{
    position:relative;
    left:auto;
    top:auto;
    max-width:none;
    transform:none;
    animation:none;
  }

  .layer-ten-clue-stack span::before{
    left:auto;
    right:10px;
  }

  .simulation-start-button{
    min-height:48px;
    font-size:15px;
  }

  .signal-readout{
    grid-template-columns:1fr;
  }

  .signal-rift{
    padding:14px;
  }

  .signal-rift-panel{
    padding:30px 20px 28px;
  }

  .phase-plate-panel{
    padding:26px 14px 22px;
  }

  .phase-plate-panel img{
    max-height:62vh;
    object-fit:contain;
  }

  .geo-relay-map{
    max-height:46vh;
  }

  .note-rift-panel{
    width:100%;
  }

  .note-rebuild-field{
    max-width:100%;
    margin-top:14px;
  }

  .note-answer{
    margin-top:14px;
  }

  .settlement-plate span{
    left:8px;
    right:8px;
    bottom:8px;
    padding:6px 7px;
    font-size:10px;
    line-height:1.35;
  }

  .settlement-panel img{
    max-height:62vh;
    object-fit:contain;
  }

  .signal-rift-panel h2{
    font-size:25px;
  }

  .final-date-rift{
    padding:0;
  }

  .final-date-panel{
    width:100%;
    height:100dvh;
    min-height:100dvh;
    padding:0;
  }

  .final-date-obscured-bg{
    inset:-10%;
    filter:
      brightness(.84)
      contrast(1.3)
      saturate(1.15);
    transform:scale(1.18);
  }

  .final-date-countdown{
    width:calc(100% - 24px);
    min-height:190px;
    padding:30px 10px;
  }

  .final-date-countdown p{
    margin-bottom:14px;
    font-size:12px;
    letter-spacing:2px;
  }

  .final-date-countdown p span{
    display:block;
    margin:7px 0 0;
    font-size:11px;
  }

  .final-date-countdown h2{
    font-size:clamp(22px, 7.2vw, 42px);
    line-height:1;
  }

  .final-date-boot-panel{
    width:100%;
    margin-top:20px;
  }

  .boot-loadout{
    grid-template-columns:1fr 54px;
    width:calc(100% - 24px);
    gap:8px;
  }

  .boot-loadout span{
    grid-column:1 / -1;
  }

  .boot-button{
    min-width:116px;
    min-height:40px;
    font-size:15px;
  }

  .boot-dialogue-stage{
    padding:18px 12px;
  }

  .fragment-seven-dialogue-stage{
    padding:18px 12px;
  }

  .first-layer-terminal{
    padding:10px;
  }

  .first-layer-terminal-panel{
    width:100%;
    min-height:0;
    max-height:calc(100vh - 20px);
    max-height:calc(100dvh - 20px);
    grid-template-rows:auto minmax(180px, 1fr) auto auto;
  }

  .first-layer-terminal-screen{
    min-height:180px;
    max-height:48vh;
    max-height:48dvh;
    padding:14px;
    font-size:13px;
  }

  .first-layer-terminal-form{
    grid-template-columns:1fr;
    gap:8px;
    padding:12px;
  }

  .first-layer-terminal-form label{
    font-size:12px;
  }

  .first-layer-terminal-form input{
    width:100%;
    min-width:0;
  }

  .first-layer-terminal-form button{
    width:100%;
    min-width:0;
    min-height:40px;
    padding:0 10px;
  }

  .first-layer-terminal-status{
    padding:0 12px 12px;
    font-size:12px;
  }

  .boot-dialogue-stack{
    width:calc(100% - 16px);
    height:72vh;
  }

  .boot-text-card{
    min-height:58px;
    padding:0 14px;
    border-left-width:3px;
    border-right-width:3px;
    font-size:clamp(16px, 5.2vw, 24px);
    line-height:1.34;
  }

  .fragment-rift.signal-rift{
    padding:8px;
  }

  .fragment-rift .fragment-rift-panel{
    width:100%;
    max-width:100%;
    max-height:calc(100vh - 16px);
    max-height:calc(100dvh - 16px);
    padding:24px 14px 18px;
    overflow:auto;
  }

  .fragment-rift .fragment-rift-panel h2{
    max-width:calc(100% - 48px);
    margin-top:10px;
    font-size:24px;
    line-height:1.18;
  }

  .fragment-seven-clue{
    margin:14px 0 16px;
  }

  .fragment-seven-clue img{
    min-height:96px;
    max-height:140px;
  }

  .fragment-rift .fragment-answer,
  .fragment-rift .fragment-answer div{
    width:100%;
    min-width:0;
    max-width:100%;
  }

  .fragment-rift .fragment-answer div{
    grid-template-columns:minmax(0, 1fr);
    gap:8px;
    overflow:hidden;
  }

  .fragment-rift .fragment-answer input,
  .fragment-rift .fragment-answer button{
    width:100%;
    min-width:0;
    max-width:100%;
  }

  .fragment-rift .fragment-answer input{
    min-height:42px;
    padding:0 10px;
    font-size:20px;
    letter-spacing:4px;
  }

  .fragment-rift .fragment-answer button{
    min-height:40px;
    font-size:16px;
  }

  .fragment-rift .fragment-result{
    width:100%;
    max-width:100%;
    min-height:46px;
    font-size:clamp(24px, 8vw, 34px);
    overflow-wrap:anywhere;
  }

  .event-facts div{
    min-height:78px;
    padding:13px;
  }

  .event-facts dd{
    margin-top:10px;
    font-size:17px;
  }

  .event-facts,
  .notice-band,
  .intro-grid,
  .timeline,
  .format-subgrid{
    grid-template-columns:1fr;
  }

  .timeline-item{
    grid-template-columns:1fr;
    gap:14px;
  }

  .timeline-item span,
  .timeline-item h3,
  .timeline-item p{
    grid-column:auto;
    grid-row:auto;
  }

  .section{
    padding-top:48px;
  }

  .section-title{
    display:block;
  }

  .intro-panel.wide{
    min-height:auto;
  }

  .site-footer{
    align-items:flex-start;
    flex-direction:column;
    margin-top:48px;
  }

  .modal{
    padding:12px;
  }

  .modal-panel{
    max-height:88vh;
  }

  .modal-image{
    max-height:300px;
  }

  .modal-content{
    padding:20px;
  }

  .modal-content h2{
    font-size:24px;
  }

  .song-row{
    grid-template-columns:1fr auto;
  }

  .modal-countdown{
    font-size:17px;
  }

  .pac-group-panel{
    padding:26px 18px 22px;
  }

  .pac-group-panel h2{
    font-size:28px;
  }

  .pac-group-qr{
    width:min(230px, 72vw);
  }

  .pac-group-number strong{
    display:block;
    margin-top:6px;
    font-size:26px;
  }

  .ranking-preview-item{
    grid-template-columns:44px minmax(0, 1fr);
  }

  .ranking-preview-score{
    grid-column:2;
    font-size:20px;
  }

  .ranking-link{
    min-height:54px;
    font-size:18px;
  }

  .qualifier-ranking-rift{
    padding:10px;
  }

  .qualifier-ranking-panel{
    max-height:calc(100vh - 20px);
    max-height:calc(100dvh - 20px);
    padding:22px 14px;
  }

  .qualifier-ranking-heading h2{
    max-width:calc(100% - 48px);
    font-size:30px;
  }

  .qualifier-row,
  .qualifier-row.is-input{
    grid-template-columns:42px minmax(0, 1fr);
    gap:9px;
  }

  .qualifier-row b,
  .qualifier-row label:last-child{
    grid-column:2;
  }

  .qualifier-row strong,
  .qualifier-row b{
    font-size:18px;
  }

  .qualifier-row input{
    font-size:16px;
  }
}

@media(max-width:1024px) and (max-height:720px) and (orientation:landscape){
  .saturn-loader-shell,
  .plc-db-panel{
    width:100dvw;
    height:100dvh;
    transform:translate(-50%, -50%) scale(var(--plc-mobile-stage-scale, .84));
  }

  .plc-db-home,
  .plc-db-detail{
    width:100dvw;
    height:100dvh;
  }
}
