/* Oryx Terminal UI — inspired by intelligence terminals, Oryx red/black identity */
body.terminal-mode{background:#050506;color:#d8d4d0}
body.terminal-mode .site-main{padding:0;max-width:none}
body.terminal-mode .scanline{opacity:.25}
.oryx-terminal .ot-main{overflow-y:visible;overscroll-behavior:auto}

body.terminal-booting{overflow:hidden;height:100%}
body.terminal-booting .oryx-terminal{opacity:0;transform:translateY(8px)}
body.terminal-ready .oryx-terminal{opacity:1;transform:translateY(0);transition:opacity .45s ease .1s,transform .45s ease .1s}

.ot-boot{position:fixed;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#030304;transition:transform .65s cubic-bezier(.4,0,.2,1),opacity .45s ease}
.ot-boot::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(227,10,10,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(227,10,10,.02) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.ot-boot::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.035) 2px,rgba(0,0,0,.035) 4px);pointer-events:none}
.ot-boot--exit{transform:translateY(-100%);opacity:0}
.ot-boot-window{position:relative;width:min(560px,100%);border:1px solid #2a1818;background:#080707;box-shadow:0 24px 80px rgba(0,0,0,.55),0 0 0 1px rgba(227,10,10,.06)}
.ot-boot-titlebar{display:flex;align-items:center;gap:.65rem;padding:.45rem .75rem;border-bottom:1px solid #1e1414;background:#0a0808;font-size:.68rem;color:#6a6058}
.ot-boot-dots{display:flex;gap:5px;margin-right:.25rem}
.ot-boot-dots i{display:block;width:8px;height:8px;border-radius:50%;background:#2a1818;border:1px solid #3a2828}
.ot-boot-dots i:first-child{border-color:#5a3030;background:#1a0c0c}
.ot-boot-title{flex:1;color:#8a8078;letter-spacing:.04em;text-transform:uppercase}
.ot-boot-net{display:flex;align-items:center;gap:.35rem;color:#5a5048;text-transform:uppercase;letter-spacing:.08em;font-size:.62rem}
.ot-boot-dot-live{width:5px;height:5px;border-radius:50%;background:#e30a0a;animation:pulse 1.5s infinite}
.ot-boot-body{padding:1rem 1.1rem 1.15rem;min-height:280px;display:flex;flex-direction:column;font-size:.74rem;line-height:1.65;color:#8a8078}
.ot-boot-banner{margin:0 0 .85rem;font-size:.62rem;line-height:1.45;color:#5a4545;white-space:pre;overflow-x:auto}
.ot-boot-log{flex:1;min-height:120px;max-height:160px;overflow:hidden;display:flex;flex-direction:column;gap:.15rem;margin-bottom:.65rem}
.ot-boot-line{opacity:0;animation:otBootLineIn .2s ease forwards;font-size:.72rem}
.ot-boot-line--sys{color:#5a5048}
.ot-boot-line--ok{color:#6a9868}
.ot-boot-line--ok::before{content:'[ok] ';color:#4a7a48}
.ot-boot-line--dim{color:#4a4545;font-size:.68rem;padding-left:.5rem}
@keyframes otBootLineIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.ot-boot-active{display:flex;align-items:baseline;gap:.35rem;color:#c9c4be;font-size:.72rem;min-height:1.2em}
.ot-boot-prompt{color:#e30a0a;font-weight:600}
.ot-boot-cursor{display:inline-block;width:8px;height:1.05em;background:#e30a0a;margin-left:1px;vertical-align:text-bottom;animation:otBootBlink .85s step-end infinite}
@keyframes otBootBlink{50%{opacity:0}}

.oryx-terminal{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;font-family:var(--font,'IBM Plex Mono',monospace);font-size:13px;background:#050506;border-top:2px solid #e30a0a}
.ot-btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.ot-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.65rem 1rem;border-bottom:1px solid #2a1515;background:#0a0808}
.ot-prompt{color:#e30a0a;font-weight:600}
.ot-path{color:#6a6666;font-size:.75rem;margin-left:.5rem}
.ot-bar-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.ot-net{color:#8a8580;font-size:.75rem;display:flex;align-items:center;gap:.35rem}
.ot-dot{width:6px;height:6px;border-radius:50%;background:#e30a0a;animation:pulse 2s infinite}
.ot-credits-box{border:1px solid #3a2020;padding:.35rem .65rem;font-size:.75rem;color:#c9a0a0}
.ot-credits-box strong{color:#ff4444}
.ot-btn{font-family:inherit;font-size:.72rem;padding:.45rem .85rem;border:1px solid #5a3030;background:#120a0a;color:#f0e8e8;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:.15s}
.ot-btn:hover{border-color:#e30a0a;color:#fff;background:#1a0c0c}
.ot-btn-accent{border-color:#e30a0a;background:#1a0808;color:#ff5555}
.ot-btn-accent:hover{background:#e30a0a;color:#fff}
.ot-btn-sm{padding:.35rem .6rem;font-size:.68rem}
.ot-btn-ghost{border-color:#333;background:transparent;color:#888}
.ot-body{display:grid;grid-template-columns:200px 1fr 260px;flex:1;min-height:0}
.ot-sidebar{border-right:1px solid #1e1414;padding:1rem .75rem;display:flex;flex-direction:column;gap:1rem;background:#080707}
.ot-panel-head{font-size:.65rem;text-transform:uppercase;color:#6a5555;letter-spacing:.12em;margin-bottom:.5rem}
.ot-modules{display:flex;flex-direction:column;gap:.25rem}
.ot-module{font-size:.72rem;color:#7a7068;text-decoration:none;padding:.35rem .5rem;border-left:2px solid transparent}
.ot-module:hover,.ot-module.active{color:#ff5555;border-left-color:#e30a0a;background:rgba(227,10,10,.06)}
.ot-wallet-box{margin-top:auto;border:1px solid #2a1818;padding:.75rem;background:#0c0909}
.ot-wallet-label{font-size:.65rem;color:#6a5555}
.ot-wallet-val{font-size:.8rem;color:#e8e0dc;margin:.35rem 0;word-break:break-all}
.ot-wallet-hint{font-size:.65rem;color:#6a6058;line-height:1.4;margin-bottom:.5rem}
.ot-main{padding:1.25rem;border-right:1px solid #1e1414}
.ot-section-label{font-size:.75rem;color:#e30a0a;margin-bottom:.75rem;letter-spacing:.04em}
.ot-desc{color:#8a8078;font-size:.8rem;line-height:1.6;margin-bottom:1rem;max-width:560px}
.ot-analyze-row{display:flex;gap:.5rem;margin-bottom:.75rem}
.ot-input{flex:1;background:#0c0a0a;border:1px solid #332222;color:#ece6e0;padding:.65rem .85rem;font-family:inherit;font-size:.82rem}
.ot-input:focus{outline:none;border-color:#a02020}
.ot-cost{color:#8a6058;font-weight:400}
.ot-examples{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem;font-size:.7rem;color:#6a6058}
.ot-chip{border:1px solid #332222;background:#0e0c0c;color:#b0a8a0;padding:.25rem .55rem;cursor:pointer;font-family:inherit;font-size:.68rem}
.ot-chip:hover{border-color:#e30a0a;color:#ff6666}
.ot-note{font-size:.68rem;color:#5a5048;margin-top:1rem}
.ot-result{margin-top:1rem;padding:1rem;border:1px solid #3a2020;background:#0c0909}
.ot-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.ot-result-head h3{font-size:1rem;color:#f0e8e4}
.ot-score-big{font-size:1.5rem;color:#ff4444;font-weight:600}
.ot-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:.75rem}
.ot-result-grid small{display:block;font-size:.62rem;color:#6a5858;margin-bottom:.15rem}
.ot-feed{border-left:1px solid #1e1414;padding:1rem .75rem;background:#070606;overflow-y:auto;max-height:calc(100vh - 120px)}
.ot-feed-head{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:#c9a0a0;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.08em}
.ot-live-dot{width:6px;height:6px;background:#e30a0a;border-radius:50%;animation:pulse 1.5s infinite}
.ot-live-tag{font-size:.6rem;color:#ff4444;border:1px solid #4a2020;padding:.1rem .35rem}
.ot-feed-row{display:grid;grid-template-columns:36px 1fr 40px;gap:.35rem;padding:.4rem 0;border-bottom:1px solid #1a1212;font-size:.72rem;color:#9a9088;text-decoration:none}
.ot-feed-row:hover{background:rgba(227,10,10,.04);color:#e8e0dc}
.ot-feed-header{color:#5a5048;font-size:.62rem;text-transform:uppercase;border-bottom:1px solid #2a1818}
.ot-feed-score{color:#ff5555;text-align:right;font-weight:600}
.ot-feed-token{color:#d8d0c8}
.ot-feed-empty{padding:1rem 0;color:#5a5048;font-size:.75rem}
.ot-index{padding:1.25rem;border-top:1px solid #1e1414}
.ot-index-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.ot-index-live{display:flex;align-items:center;gap:.4rem;font-size:.65rem;color:#6a9050;text-transform:uppercase;letter-spacing:.06em}
.ot-index-tabs{display:flex;gap:.35rem;margin-bottom:1rem}
.ot-tab{font-family:inherit;font-size:.68rem;padding:.4rem .75rem;border:1px solid #332222;background:#0a0808;color:#8a8078;cursor:pointer;text-transform:uppercase;letter-spacing:.05em}
.ot-tab:hover{border-color:#6a3030;color:#d8d0c8}
.ot-tab.active{border-color:#e30a0a;color:#ff5555;background:#120a0a}
.ot-token-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.65rem}
.ot-token-card{border:1px solid #2a1818;padding:.75rem;text-decoration:none;color:#d8d0c8;background:#0a0808;transition:.15s;display:flex;flex-direction:column;gap:.45rem}
.ot-token-card:hover{border-color:#a02020;background:#100c0c}
.ot-tc-top{display:flex;justify-content:space-between;align-items:center}
.ot-tc-score{color:#ff4444;font-weight:600;font-size:.85rem}
.ot-tc-name{font-size:.72rem;color:#7a7068}
.ot-tc-meta{display:flex;justify-content:space-between;font-size:.65rem;color:#6a6058;align-items:center}
.ot-tc-bars{display:flex;flex-direction:column;gap:.35rem}
.ot-bar-row{display:flex;align-items:center;gap:.4rem;font-size:.58rem;color:#6a5858;text-transform:uppercase;letter-spacing:.04em}
.ot-bar-track{flex:1;height:4px;background:#1a1212;border-radius:1px;overflow:hidden}
.ot-bar-fill{height:100%;border-radius:1px;transition:width .3s}
.ot-bar-fill.risk-low{background:#3d8a4a}
.ot-bar-fill.risk-medium{background:#c9a020}
.ot-bar-fill.risk-high{background:#e30a0a}
.ot-bar-fill.score{background:linear-gradient(90deg,#6a2020,#e30a0a)}
.ot-bar-label{min-width:28px;text-align:right;color:#8a8078}
.ot-status{display:flex;flex-wrap:wrap;gap:1rem;padding:.5rem 1rem;border-top:1px solid #1e1414;font-size:.65rem;color:#5a5048;background:#060505}
.ot-status em{color:#5a9a5a;font-style:normal}
.ot-modal{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}
.ot-modal[hidden]{display:none}
.ot-modal-box{background:#0c0a0a;border:1px solid #4a2020;padding:1.5rem;max-width:400px;width:100%}
.ot-modal-wide{max-width:520px}
.ot-modal-box h3{color:#ff5555;margin-bottom:.5rem;font-size:1rem}
.ot-modal-box p{color:#9a9088;font-size:.85rem;line-height:1.5;margin-bottom:1rem}
.ot-modal-sub{font-size:.75rem!important}
.ot-modal-box .ot-btn{margin-right:.5rem;margin-top:.25rem}
.ot-packages{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.ot-package{border:1px solid #332222;padding:.85rem;cursor:pointer;position:relative;background:#080707}
.ot-package:hover,.ot-package.selected{border-color:#e30a0a;background:#120a0a}
.ot-package.popular::after{content:'POPULAR';position:absolute;top:.5rem;right:.5rem;font-size:.55rem;color:#e30a0a;border:1px solid #4a2020;padding:.1rem .3rem}
.ot-package strong{display:block;color:#f0e8e4;font-size:.95rem}
.ot-package span{font-size:.75rem;color:#8a8078}
.ot-pay-methods{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.72rem;color:#7a7068}
.ot-pay-methods .active{border-color:#e30a0a;color:#ff5555}
.ot-treasury-info{font-size:.72rem;color:#a08060;word-break:break-all}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(max-width:1024px){.ot-body{grid-template-columns:1fr}.ot-sidebar,.ot-feed{display:none}.ot-main{border-right:none}}
@media(max-width:640px){.ot-analyze-row{flex-direction:column}.ot-result-grid{grid-template-columns:1fr 1fr}}

/* Privy modal overlay */
html.oryx-privy-open{overflow:hidden}
body.oryx-privy-open{position:fixed;left:0;right:0;width:100%}
#oryx-privy-root{position:fixed;inset:0;z-index:10000;pointer-events:none}
#oryx-privy-root>*{pointer-events:auto}
body.oryx-privy-open #privy-modal-content,
body.oryx-privy-open [data-testid="privy-modal"],
body.oryx-privy-open #headlessui-portal-root{bottom:0!important;margin-bottom:0!important}
