/* Genesis HQ app states that the mockup did not need: login, forms, queue states, drawer, toast. */
[hidden]{display:none!important}
:focus-visible{outline:2.5px solid var(--orange);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* login + gate */
.login{min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center;max-width:1480px;margin:0 auto;padding:48px 72px 48px 112px}
.login .poster{width:100%;max-width:600px}
.login .form{max-width:440px}
.login .form .brand b{font-size:30px}
.login h1{font-size:clamp(72px,8vw,128px);margin:18px 0 22px}
.login p.lede{font-size:16px;line-height:1.5;color:var(--ink-2);margin-bottom:22px}
.field{display:block;margin:0 0 16px}
.field .lbl{display:block;margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;height:48px;border:1.5px solid var(--ink);background:var(--paper);padding:0 14px;font:600 16px/1.2 var(--sans);color:var(--ink);border-radius:0;appearance:none}
.field textarea{height:auto;min-height:190px;padding:12px 14px;line-height:1.75;font-weight:500;resize:vertical}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px;background-repeat:no-repeat}
.field .hint{display:block;font-size:13px;color:var(--muted);margin-top:6px}
.check{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;margin:4px 0 16px}
.check input{width:22px;height:22px;accent-color:var(--orange)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.msg{min-height:22px;font-size:14px;font-weight:700;margin-top:14px;line-height:1.4}
.msg.err{color:var(--orange-d)}
.linkbtn{font-size:12.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;padding:10px 0;margin-right:18px}

/* buttons */
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn[aria-busy=true]{position:relative;pointer-events:none}
.btn[aria-busy=true]:after{content:"";position:absolute;left:-1.5px;right:-1.5px;bottom:-1.5px;height:3px;background:var(--orange);animation:hqpulse .9s ease-in-out infinite}
@keyframes hqpulse{50%{opacity:.2}}
.rowbtns{display:flex;gap:10px;margin-top:18px}
.rowbtns .btn{flex:1}

/* queue */
.lead{cursor:pointer}
.lead:hover h4{color:var(--orange)}
.lead.held{opacity:.55}
.lead p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tag{display:inline-block;margin-left:8px;font-size:10.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;vertical-align:3px;font-family:var(--sans)}
.tag.hold{background:var(--orange);color:var(--paper)}
.tag.rev{border:1.5px solid var(--orange);color:var(--orange-d)}
.tag.none{border:1.5px dashed var(--muted);color:var(--muted)}
.target{display:flex;align-items:center;gap:14px;margin:16px 0 0}
.seg{display:flex}
.seg button{width:46px;height:40px;border:1.5px solid var(--ink);font-weight:900;font-size:15px;margin-left:-1.5px;background:var(--paper)}
.seg button:first-child{margin-left:0}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.empty{padding:16px 0 4px}
.empty .script{font-size:19px}
.empty p{font-size:15px;color:var(--ink-2);margin-top:6px;line-height:1.45}
.box .item[data-act]{cursor:pointer}
.box .stages i{cursor:pointer}

/* rendered objects (Codex) */
.obj{position:absolute;display:block;height:auto;max-width:none;pointer-events:none;user-select:none}

/* money */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.chip{height:38px;padding:0 12px;border:1.5px dashed var(--ink);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.chip b{color:var(--orange-d)}
.ledger td small{color:var(--muted);font-weight:600;margin-left:8px;font-size:13px}

/* posted */
.reel .st button{font:inherit;color:inherit;text-align:left;padding:0}
.reel .st input{width:78px;height:36px;border:1.5px solid var(--ink);font:900 18px var(--sans);padding:0 6px;background:var(--paper)}
.reel .th .ph{position:absolute;inset:0;display:grid;place-items:end start;padding:12px;background:linear-gradient(180deg,var(--st-1),var(--st-3));color:var(--paper);font-family:var(--display);font-size:24px;line-height:.95;text-transform:uppercase}
.bars i.nil{background:transparent;border-top:2px dashed var(--hair);height:6px!important}
.morebtn{margin-top:16px}

/* toast */
.toast{visibility:hidden;position:fixed;left:50%;bottom:24px;transform:translate(-50%,160%);background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:18px;padding:0 8px 0 20px;min-height:56px;z-index:60;font-weight:700;font-size:15px;transition:transform .4s cubic-bezier(.2,.9,.25,1.15),visibility 0s linear .4s;max-width:calc(100vw - 32px)}
.toast.on{visibility:visible;transform:translate(-50%,0);transition:transform .4s cubic-bezier(.2,.9,.25,1.15),visibility 0s}
.toast.err{background:var(--orange-d)}
.toast button{height:40px;padding:0 16px;background:var(--orange);color:var(--paper);font-size:12px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}

/* drawer */
.drawer{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end}
.drawer .bd{position:absolute;inset:0;background:rgba(19,19,19,.5);animation:hqfade .3s ease-out}
.drawer .panel{position:relative;width:min(580px,100%);height:100%;overflow:auto;overscroll-behavior:contain;background:var(--paper);border-left:2.5px solid var(--ink);padding:30px 34px 60px;animation:hqin .45s cubic-bezier(.2,.9,.25,1.12)}
@keyframes hqin{from{transform:translateX(64px);opacity:0}}
@keyframes hqfade{from{opacity:0}}
.drawer .x{position:absolute;right:18px;top:18px;width:46px;height:46px;border:1.5px solid var(--ink);font-size:22px;font-weight:700;background:var(--paper)}
.drawer h2.disp{font-size:clamp(46px,6vw,64px);margin:4px 0 8px;padding-right:60px;overflow-wrap:anywhere}
.drawer .about{font-size:14.5px;line-height:1.5;color:var(--ink-2);margin-top:10px}
.drawer .meta{font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.drawer .links{display:flex;flex-wrap:wrap;gap:18px;margin:12px 0 0}
.drawer .links a{font-size:12.5px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px}
.drawer .hook{font-size:17px;line-height:1.5;padding:16px 0;border-top:2.5px solid var(--ink);border-bottom:1px solid var(--hair);margin:18px 0}
.drawer h3.sub{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:28px;margin:26px 0 12px;padding-top:12px;border-top:2.5px solid var(--ink)}
.stagebtns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hist .h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--hair);font-size:14.5px;font-weight:700}
.hist .h span{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.hist .h q{display:block;quotes:none;font-weight:500;color:var(--ink-2);margin-top:3px}
.hist .h.void{opacity:.45}
.hist .h.void b{text-decoration:line-through}
.hist .h button{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-decoration:underline;margin-left:10px}

.foot-out{height:40px;padding:0 16px;border:1.5px solid var(--paper);color:var(--paper);font-size:12px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}

@media (max-width:1100px){
  .login{grid-template-columns:1fr;gap:40px;padding:32px 40px 60px 96px}
}
@media (max-width:760px){
  .login{padding:24px 16px 60px;gap:28px}
  .login .poster{max-width:none}
  .login h1{font-size:22vw;margin:10px 0 16px}
  .tabs{grid-template-columns:repeat(4,1fr)}
  .toast{bottom:84px;left:16px;right:16px;transform:translateY(220%);max-width:none}
  .toast.on{transform:none}
  .drawer .panel{border-left:0;padding:22px 16px 90px}
  .drawer h2.disp{font-size:min(64px,11vw);padding-right:54px}
  .ixhead .disp{font-size:18.5vw}
  .stagebtns{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two{grid-template-columns:1fr}
  .target{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
  .drawer .panel,.drawer .bd{animation:none}
  .toast{transition:none}
}
