/* four-room BBS shell — amber CRT, not a new identity */
.site-nav{
  position:sticky;
  top:0;
  z-index:40;
  background:var(--bg);
  border-bottom:var(--px) solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px 22px;
  padding:12px max(20px, calc(50vw - 490px));
  flex-wrap:wrap;
}
.nav-apply:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:2px;
}
.nav-brand{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.nav-brand .mark{
  font-family:var(--pixel);
  font-size:10px;
  color:var(--amber-hi);
  letter-spacing:0.08em;
}
.nav-brand .live{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  color:var(--amber-dim);
}
.nav-rooms{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
}
.nav-room{
  font-family:var(--pixel);
  font-size:8px;
  letter-spacing:0.04em;
  color:var(--amber-dim);
  text-decoration:none;
  border:2px solid transparent;
  padding:8px 10px;
  line-height:1.4;
}
.nav-room:hover,
.nav-room:focus-visible{
  color:var(--amber);
  outline:none;
}
.nav-room.is-on{
  color:var(--bg);
  background:var(--amber);
  border-color:var(--bg);
}
.nav-apply{
  font-family:var(--pixel);
  font-size:8px;
  letter-spacing:0.04em;
  color:var(--bg);
  background:var(--amber);
  border:3px solid var(--bg);
  text-decoration:none;
  padding:10px 14px;
  box-shadow:4px 4px 0 0 rgba(255,176,32,0.35);
  line-height:1.4;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.nav-panel{display:contents;}
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  border:2px solid var(--amber);
  background:transparent;
  color:var(--amber);
  cursor:pointer;
  flex-shrink:0;
}
.nav-toggle:hover{background:rgba(255,176,32,0.12);}
.nav-toggle:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:2px;
}
.nav-bars{
  display:grid;
  gap:5px;
  width:18px;
}
.nav-bars i{
  display:block;
  height:2px;
  background:var(--amber);
}
.site-nav.is-open .nav-bars i:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.site-nav.is-open .nav-bars i:nth-child(2){opacity:0;}
.site-nav.is-open .nav-bars i:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}
.nav-toggle-text{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}
.nav-apply:hover{background:var(--amber-hi);}
.nav-apply:active{
  transform:translate(3px,3px);
  box-shadow:1px 1px 0 0 rgba(255,176,32,0.35);
}

.view[hidden]{display:none !important;}
.view[hidden] *{animation:none !important;}
.wrap{max-width:980px;}

#view-home{
  width:min(920px, calc(100vw - 48px));
  margin-left:calc(50% - min(460px, 50vw - 24px));
}
.poster{
  border:3px solid var(--amber-dim);
  background:#050405;
  box-shadow:8px 8px 0 0 #000;
}
.poster .art-row{
  gap:3px;
  background:var(--line);
}
.poster .node-frame{
  border:none;
  box-shadow:none;
  min-width:0;
  height:auto;
}
.poster .screen{
  aspect-ratio:1;
  width:100%;
  height:auto;
}
.poster .screen img{
  object-position:center center;
}
.poster .is-sealed .screen img{
  width:10%;
  height:10%;
  object-fit:fill;
  transform:scale(10);
  transform-origin:top left;
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}
.poster .is-sealed .screen::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    transparent 0%,
    rgba(255,233,184,0.0) 42%,
    rgba(255,233,184,0.55) 50%,
    rgba(255,233,184,0.0) 58%,
    transparent 100%
  );
  background-size:100% 220%;
  animation:seal-scan 5.6s linear infinite;
}
@keyframes seal-scan{
  from{background-position:0 -40%;}
  to{background-position:0 140%;}
}
.poster .is-sealed:hover .screen img,
.poster .is-sealed:focus-within .screen img{
  width:100%;
  height:100%;
  transform:none;
  object-fit:cover;
}
.poster .is-sealed:hover .screen::after,
.poster .is-sealed:focus-within .screen::after{
  opacity:0;
}
.wrap:has(#view-home:not([hidden])){
  padding-top:22px;
}
.poster-copy{
  padding:28px 32px 28px;
  border-top:3px solid var(--line);
}
.poster-copy .home-title{
  max-width:16ch;
}
.poster-copy .home-lede{
  margin-top:18px;
  margin-bottom:0;
  max-width:46ch;
}
.poster-copy .home-actions{
  margin-top:28px;
}
.btn.lit{
  border-color:var(--bg);
  color:var(--bg);
  background:var(--amber);
  cursor:pointer;
  box-shadow:4px 4px 0 0 rgba(255,176,32,0.35);
  text-decoration:none;
}
.btn.lit:hover{background:var(--amber-hi);}
.btn.lit:active{
  transform:translate(4px,4px);
  box-shadow:0 0 0 0 rgba(255,176,32,0.35);
}
.btn.ghost-lit{
  background:transparent;
  color:var(--amber);
  border-color:var(--amber);
  cursor:pointer;
  text-decoration:none;
  box-shadow:4px 4px 0 0 #000;
}
.btn.ghost-lit:hover{background:rgba(255,176,32,0.12);}

.home-title{
  font-family:var(--pixel);
  font-size:clamp(16px, 4.4vw, 24px);
  line-height:1.65;
  color:var(--amber-hi);
}
.home-lede{
  font-size:14px;
  color:#9a8f74;
  max-width:58ch;
  margin-top:14px;
}
.home-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.art-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:0;
}
.node-frame{
  margin:0;
  background:#050405;
  border:3px solid var(--amber-dim);
  box-shadow:6px 6px 0 0 #000;
}
.screen{
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  background:#050405;
}
.screen img,
.screen canvas.veil{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}
.node-frame.is-live .screen img{
  opacity:0;
  pointer-events:none;
}
.stage .screen img,
.poster .screen img{
  opacity:1;
}
.screen canvas.veil{
  display:none;
}
.node-frame.is-live .screen canvas.veil{
  display:block;
}
.unit{
  position:absolute;
  top:10px;
  left:10px;
  z-index:2;
  font-family:var(--pixel);
  font-size:8px;
  color:var(--amber-hi);
  background:rgba(5,4,5,0.72);
  padding:6px 7px;
  line-height:1;
}
.node-frame figcaption{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding:12px 12px 11px;
  border-top:3px solid var(--line);
  font-family:var(--pixel);
  font-size:8px;
  line-height:1.6;
  color:var(--amber);
  letter-spacing:0.04em;
}
.node-frame .phase{
  font-family:var(--mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--amber-hi);
}
.node-frame[data-phase="sealed"] .phase{color:var(--amber-dim);}
.node-frame[data-phase="sealing"] .phase,
.node-frame[data-phase="decrypt"] .phase{color:var(--amber);}

.doc-post{
  padding:22px 22px 8px;
  border-bottom:var(--px) solid var(--line);
}
.doc-post:last-child{border-bottom:none;}
.doc-post h3{
  font-family:var(--pixel);
  font-size:11px;
  line-height:1.7;
  color:var(--amber-hi);
  margin-bottom:12px;
}
.doc-post p{
  font-size:14px;
  color:#9a8f74;
  max-width:62ch;
  margin-bottom:14px;
}
.doc-post code{
  font-family:var(--mono);
  font-size:12px;
  color:var(--amber);
}
.states{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3px;
  background:var(--line);
  border:3px solid var(--amber-dim);
  margin:28px 0 8px;
}
.states article{
  background:#050405;
  padding:22px 20px 18px;
  margin:0;
}
.states h3{
  font-family:var(--pixel);
  font-size:11px;
  line-height:1.7;
  color:var(--amber-hi);
  margin-bottom:12px;
}
.states p,
.spec dd{
  font-size:14px;
  color:#9a8f74;
  margin:0;
  max-width:68ch;
}
.spec{
  margin:14px 0 0;
  display:grid;
  gap:14px;
}
.spec div{
  display:grid;
  gap:6px;
}
.spec dt{
  font-family:var(--pixel);
  font-size:8px;
  line-height:1.6;
  letter-spacing:0.04em;
  color:var(--amber);
}

.floor-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--px);
  background:var(--line);
  border:var(--px) solid var(--line);
  margin:28px 0 18px;
}
.stall{
  background:#050405;
  margin:0;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
}
.pix{
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  background:#050405;
}
.pix img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}
.stall figcaption,
.stall .mark{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin:0;
  font-family:var(--pixel);
  font-size:8px;
  line-height:1.6;
  color:var(--amber);
  padding:12px;
  border-top:var(--px) solid var(--line);
}
.stall figcaption span,
.stall .mark span{
  color:var(--amber-hi);
}
.stall-empty .pix{
  background:#050405;
}
.stall .blob{
  font-family:var(--mono);
  font-size:13px;
  color:#3a331f;
}

.review{
  margin-top:8px;
}
.review-stage{
  display:grid;
  grid-template-columns:minmax(0, 280px) minmax(0, 1fr);
  gap:22px;
  align-items:center;
  margin-top:28px;
}
.review-node{
  margin:0;
  border:3px solid var(--amber-dim);
  background:#050405;
  box-shadow:8px 8px 0 0 #000;
}
.review-node .screen{
  position:relative;
  overflow:hidden;
  aspect-ratio:1;
}
.review-node figcaption{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding:12px;
  border-top:3px solid var(--line);
  font-family:var(--pixel);
  font-size:8px;
  line-height:1.6;
  color:var(--amber);
  letter-spacing:0.04em;
}
.review-node .phase{
  font-family:var(--mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--amber-hi);
}
.review-node img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}
.review-node .cipher{
  width:10%;
  height:10%;
  object-fit:fill;
  transform:scale(10);
  transform-origin:top left;
}
.review-node .face{
  z-index:1;
}
.review-node.is-encrypting .face{
  animation:encrypt-wipe 0.85s steps(14, end) forwards;
}
.review-node.is-sealed .face{
  clip-path:inset(100% 0 0 0);
}
.review-node .screen::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    transparent 0%,
    rgba(255,233,184,0) 42%,
    rgba(255,233,184,0.55) 50%,
    rgba(255,233,184,0) 58%,
    transparent 100%
  );
  background-size:100% 220%;
  animation:seal-scan 5.6s linear infinite;
  opacity:0;
}
.review-node.is-encrypting .screen::after,
.review-node.is-sealed .screen::after{
  opacity:1;
}
.review-node.is-encrypting .screen::after{
  animation:seal-scan 1.6s linear infinite;
}
@keyframes encrypt-wipe{
  from{clip-path:inset(0 0 0 0);}
  to{clip-path:inset(100% 0 0 0);}
}
.review-steps{
  list-style:none;
  margin:0;
  padding:0;
  border:3px solid var(--line);
}
.review-steps li{
  display:grid;
  gap:6px;
  padding:16px 18px;
  border-bottom:var(--px) solid var(--line);
  color:var(--amber-dim);
}
.review-steps li:last-child{border-bottom:none;}
.review-steps b{
  font-family:var(--pixel);
  font-weight:400;
  font-size:10px;
  line-height:1.6;
}
.review-steps span{
  font-size:13px;
}
.review-steps li.is-done{
  color:var(--amber);
}
.review-steps li.is-now{
  color:var(--bg);
  background:var(--amber);
}
.review-steps li.is-now span{color:var(--bg);}

@media (max-width:720px){
  .site-nav{
    flex-wrap:nowrap;
    align-items:center;
    padding:8px 16px;
  }
  .nav-toggle{display:inline-flex;}
  .nav-panel{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    z-index:41;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:8px 12px 16px;
    background:var(--bg);
    border-bottom:3px solid var(--amber-dim);
  }
  .site-nav.is-open .nav-panel{display:flex;}
  .nav-rooms{
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .nav-room{
    padding:14px 12px;
    font-size:10px;
  }
  .nav-panel .nav-apply{
    justify-content:center;
    margin-top:10px;
    min-height:44px;
  }
  .art-row,
  .floor-grid,
  .states,
  .review-stage{grid-template-columns:1fr;}
  .poster .art-row{grid-template-rows:none;}
  .poster .screen{aspect-ratio:1; height:auto;}
  #view-home{
    width:auto;
    margin-left:0;
  }
  .poster-copy{padding:28px 18px 24px;}
  .wrap{padding-top:28px;}
}

@media (prefers-reduced-motion: reduce){
  .node-frame.is-live .screen img{opacity:1;}
  .screen canvas.veil{display:none !important;}
  .poster .is-sealed .screen::after,
  .review-node .screen::after{animation:none; opacity:0;}
  .review-node .face{animation:none; clip-path:inset(100% 0 0 0);}
}
