@font-face { font-family: "OpenDyslexic"; src: url("../assets/fonts/OpenDyslexic-Regular.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; } @font-face { font-family: "OpenDyslexic"; src: url("../assets/fonts/OpenDyslexic-Italic.woff2") format("woff2"); font-style: italic; font-weight: 400; font-display: swap; } @font-face { font-family: "OpenDyslexic"; src: url("../assets/fonts/OpenDyslexic-Bold.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; } @font-face { font-family: "OpenDyslexic"; src: url("../assets/fonts/OpenDyslexic-BoldItalic.woff2") format("woff2"); font-style: italic; font-weight: 700; font-display: swap; } :root { --neorelay-void: #07030d; --neorelay-ink: #0d0618; --neorelay-panel: #150a24; --neorelay-panel-raised: #211034; --neorelay-violet: #9d5cff; --neorelay-purple: #6f2cff; --neorelay-pink: #ff65c8; --neorelay-cyan: #55e7ff; --neorelay-acid: #b9ff4f; --neorelay-text: #f1eaff; --neorelay-muted: #a99abd; --neorelay-nick: #55e7ff; --neorelay-nick-other: #55e7ff; --neorelay-nick-self: #ff65c8; --neorelay-nick-op: #ff65c8; --neorelay-nick-halfop: #55e7ff; --neorelay-nick-voice: #b9ff4f; --neorelay-nick-away: #a99abd; --neorelay-chat-highlight: #ffff55; --neorelay-chat-highlight-bg: #aa00aa; --neorelay-chat-time: #f1eaff; --neorelay-line: rgba(157, 92, 255, 0.35); --neorelay-sidebar-preferred-width: 140px; --neorelay-sidebar-width: clamp(120px, var(--neorelay-sidebar-preferred-width), min(480px, 40vw)); --neorelay-page-gutter: 5px; --neo-preferred-font: "OpenDyslexic", "Atkinson Hyperlegible", system-ui, sans-serif; --neo-preferred-font-size: 14px; } html, body { background: var(--neorelay-void) !important; color: var(--neorelay-text) !important; font-family: "OpenDyslexic", "Atkinson Hyperlegible", system-ui, sans-serif; } body { background-image: linear-gradient(rgba(157, 92, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(157, 92, 255, 0.035) 1px, transparent 1px), radial-gradient(circle at 75% 5%, rgba(111, 44, 255, 0.2), transparent 34%) !important; background-size: 32px 32px, 32px 32px, auto !important; } .favorite-font { font-family: "OpenDyslexic", "Atkinson Hyperlegible", monospace !important; } body.neo-preferred-font { font-family: var(--neo-preferred-font) !important; font-size: var(--neo-preferred-font-size) !important; } body.neo-preferred-font .content :not(.glyphicon):not(.neo-font-option), body.neo-preferred-font .gb-modal :not(.glyphicon):not(.neo-font-option), body.neo-preferred-font .neo-context-menu :not(.glyphicon):not(.neo-font-option), body.neo-preferred-font .neo-server-manager :not(.glyphicon):not(.neo-font-option) { font-family: inherit !important; font-size: inherit !important; } a, .panel-title, .panel-title a { color: var(--neorelay-cyan); } a:hover, a:focus { color: var(--neorelay-acid); } /* Logged-out identity */ .login-shell { position: relative; width: min(1120px, calc(100% - 40px)); margin: 0 auto; padding: 54px 0 72px; } .login-shell::before { content: "{{RELAY_GATEWAY_LABEL}}"; display: block; margin-bottom: 12px; color: var(--neorelay-muted); font: 700 10px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.24em; } .login-hero { display: grid; grid-template-columns: minmax(250px, 0.78fr) minmax(360px, 1.35fr); min-height: 390px; margin-bottom: 28px; overflow: hidden; border-top: 1px solid var(--neorelay-violet); border-bottom: 1px solid var(--neorelay-line); background: linear-gradient(115deg, rgba(22, 9, 40, 0.96), rgba(9, 3, 17, 0.78)), linear-gradient(90deg, transparent 49.8%, rgba(85, 231, 255, 0.12) 50%, transparent 50.2%); box-shadow: 20px 20px 0 rgba(72, 24, 122, 0.12); } .login-portrait { position: relative; min-height: 390px; overflow: hidden; border-right: 1px solid var(--neorelay-line); } .login-portrait::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: repeating-linear-gradient(0deg, transparent 0 4px, rgba(7, 3, 13, 0.16) 5px), linear-gradient(180deg, transparent 55%, rgba(7, 3, 13, 0.8)); } .login-portrait img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; object-position: 50% 27%; filter: saturate(1.12) contrast(1.04); } .portrait-code { position: absolute; z-index: 1; right: 14px; bottom: 12px; color: var(--neorelay-acid); font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.18em; } .login-intro { position: relative; align-self: center; padding: 48px clamp(32px, 7vw, 86px); } .login-intro::before { position: absolute; top: 28px; left: 0; width: 46px; height: 3px; content: ""; background: var(--neorelay-pink); box-shadow: 19px 8px 0 var(--neorelay-cyan); } .login-kicker { margin: 0 0 20px; color: var(--neorelay-acid); font: 700 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.2em; } .login-intro h1 { margin: 0; color: var(--neorelay-text); font-family: "Arial Black", Impact, sans-serif; font-size: clamp(48px, 8vw, 92px); font-weight: 900; line-height: 0.78; letter-spacing: -0.08em; text-transform: uppercase; text-shadow: 4px 4px 0 rgba(111, 44, 255, 0.65); } .login-intro h1 span { display: block; margin-left: 0.47em; color: transparent; -webkit-text-stroke: 1px var(--neorelay-pink); text-shadow: none; } .login-deck { max-width: 520px; margin: 30px 0 25px; color: #cfc3dd; font-size: 15px; line-height: 1.75; } .login-status { display: flex; flex-wrap: wrap; gap: 8px; } .login-status span { padding: 7px 9px 6px; border: 1px solid rgba(85, 231, 255, 0.35); color: var(--neorelay-cyan); background: rgba(85, 231, 255, 0.04); font: 700 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.12em; } .login-shell .panel-group { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 1px; padding: 1px; background: var(--neorelay-line); } .login-shell .panel { margin: 0 !important; border: 0; border-radius: 0; color: var(--neorelay-text); background: rgba(20, 9, 35, 0.97) !important; box-shadow: none; } .login-shell .panel:first-of-type, .login-shell .panel:nth-of-type(2) { grid-column: 1 / -1; } .login-shell .panel-heading { padding: 17px 20px; border: 0; background: linear-gradient(90deg, rgba(111, 44, 255, 0.18), transparent); } .login-shell .panel-title { color: var(--neorelay-text); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .login-shell .panel[data-state=active] .panel-title::before { color: var(--neorelay-acid); } .login-shell .panel[data-state=collapsed] .panel-title::before { color: var(--neorelay-pink); } .login-shell .panel-body { padding: 24px 20px; border-color: var(--neorelay-line) !important; color: #c9bdd8; } .connection-panel .panel-body { padding: clamp(18px, 4vw, 38px); } .relay-terminal { border: 1px solid rgba(157, 92, 255, 0.5); background: rgba(5, 2, 10, 0.94); box-shadow: 12px 12px 0 rgba(111, 44, 255, 0.12); font: 700 clamp(12px, 1.8vw, 16px)/1.75 ui-monospace, SFMono-Regular, Menlo, monospace; } .relay-terminal-bar { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--neorelay-line); color: var(--neorelay-muted); font-size: 10px; letter-spacing: 0.08em; } .relay-terminal-bar span { width: 8px; height: 8px; border-radius: 50%; background: var(--neorelay-pink); } .relay-terminal-bar span:nth-child(2) { background: var(--neorelay-violet); } .relay-terminal-bar span:nth-child(3) { background: var(--neorelay-acid); } .relay-terminal-bar b { margin-left: 6px; font-weight: 700; } .relay-terminal-body { padding: clamp(20px, 4vw, 34px); } .relay-terminal-body p { margin: 0 0 8px; color: #c8c2cf; } .relay-prompt { color: var(--neorelay-violet); } .relay-terminal dl { margin: 22px 0; border-top: 1px solid var(--neorelay-line); } .relay-terminal dl div { display: grid; grid-template-columns: minmax(100px, 0.35fr) 1fr; gap: 18px; padding: 10px 0; border-bottom: 1px solid rgba(157, 92, 255, 0.16); } .relay-terminal dt { color: var(--neorelay-muted); font-size: 9px; letter-spacing: 0.14em; } .relay-terminal dd { margin: 0; color: var(--neorelay-cyan); font-size: 11px; } .relay-password-line { display: flex; align-items: center; gap: 14px; margin-top: 22px; } .relay-password-line label { flex: 0 0 auto; margin: 0; color: #c8c2cf; font: inherit; cursor: text; } .relay-password-field { position: relative; display: block; flex: 1 1 auto; min-width: 180px; min-height: 31px; padding: 2px 10px; overflow: hidden; border-bottom: 1px solid rgba(85, 231, 255, 0.34); color: var(--neorelay-acid); white-space: nowrap; } .relay-password-field:focus-within { border-color: var(--neorelay-cyan); box-shadow: 0 5px 14px rgba(85, 231, 255, 0.08); } .relay-password-placeholder { color: #71687d; font-weight: 400; } .relay-password-mask { letter-spacing: 0.14em; } body .relay-password-field input[type="password"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0 !important; opacity: 0; cursor: text; box-shadow: none !important; } .relay-password-error { margin-top: 10px !important; color: var(--neorelay-pink) !important; } .relay-input-line { margin-top: 18px !important; } .relay-cursor { color: var(--neorelay-acid); animation: relay-blink 1s steps(1, end) infinite; } .connection-options { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 30px 0 22px; color: #c9bdd8; font: 700 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; } .connection-options label { margin: 0; cursor: pointer; } .connection-options input { margin: 0 7px 0 0; accent-color: var(--neorelay-pink); } .connection-options input:disabled { opacity: 1; cursor: default; } .relay-connect { min-width: 180px; } .login-shell .form-control, body .form-control, body input[type="text"], body input[type="password"], body #sendMessage { border: 1px solid rgba(157, 92, 255, 0.38) !important; border-radius: 0 !important; color: var(--neorelay-text) !important; background: rgba(4, 1, 9, 0.65) !important; box-shadow: inset 3px 0 0 rgba(157, 92, 255, 0.25) !important; } body .form-control:focus, body input:focus, body #sendMessage:focus { border-color: var(--neorelay-cyan) !important; box-shadow: inset 3px 0 0 var(--neorelay-cyan), 0 0 18px rgba(85, 231, 255, 0.12) !important; } @keyframes relay-blink { 50% { opacity: 0; } } .btn-primary, .login-shell .btn-primary { border: 0; border-radius: 0; color: #09020f; background: linear-gradient(90deg, var(--neorelay-pink), var(--neorelay-violet)); box-shadow: 6px 6px 0 rgba(85, 231, 255, 0.16); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; } .btn-primary:hover, .btn-primary:focus { color: #09020f; background: linear-gradient(90deg, var(--neorelay-acid), var(--neorelay-cyan)); } .alert { border: 1px solid currentColor; border-radius: 0; background: rgba(10, 4, 18, 0.95); } .alert-danger { color: #ff8bcf !important; border-color: rgba(255, 101, 200, 0.55); background: rgba(83, 13, 60, 0.36) !important; } /* Connected client */ body #topbar { border-bottom: 1px solid var(--neorelay-violet); background: linear-gradient(90deg, #1b0a30, #0a0411 65%) !important; box-shadow: 0 8px 24px rgba(3, 0, 8, 0.45); } body #topbar .brand img { border-radius: 50%; filter: saturate(1.15); } body #topbar .actions { color: var(--neorelay-muted); background: rgba(23, 9, 38, 0.9) !important; } body #sidebar, body #nicklist { border-color: var(--neorelay-line); background: rgba(12, 5, 21, 0.98) !important; } body #sidebar { display:flex; flex-direction:column; overflow:hidden; } body #sidebar > ul.nav { flex:1 1 auto; min-height:0; margin-bottom:0; overflow-y:auto; } body #nicklist { right:var(--neorelay-page-gutter); box-sizing:border-box; } body #bufferlines.withnicklist { margin-right:105px !important; } body .footer.withnicklist { padding-right:105px; } body #bufferlines > table { width:calc(100% - 10px); margin-right:var(--neorelay-page-gutter); margin-left:var(--neorelay-page-gutter); } body .footer > [input-bar] { display:block; margin-right:var(--neorelay-page-gutter); margin-left:var(--neorelay-page-gutter); } #sidebar-resizer { display: none; } @media (min-width: 969px) { body #sidebar { width: var(--neorelay-sidebar-width); } body #topbar .title { left: calc(var(--neorelay-sidebar-width) + 5px); } body .content[sidebar-state="visible"] #bufferlines { margin-left: calc(var(--neorelay-sidebar-width) + 5px); } body .content[sidebar-state="visible"] .footer { padding-left: calc(var(--neorelay-sidebar-width) + 5px); } body .content[sidebar-state="visible"] #sidebar-resizer { position: fixed; z-index: 3; top: 35px; bottom: 0; left: calc(var(--neorelay-sidebar-width) - 4px); display: block; width: 9px; cursor: col-resize; touch-action: none; } body #sidebar .nav-pills > li.buffer > a { padding-top: 2.5px; padding-bottom: 2.5px; } body.neorelay-sidebar-resizing, body.neorelay-sidebar-resizing * { cursor: col-resize !important; user-select: none !important; } body.neorelay-sidebar-resizing #sidebar, body.neorelay-sidebar-resizing #bufferlines, body.neorelay-sidebar-resizing .footer { transition: none !important; } } @media (min-width: 1400px) { :root { --neorelay-sidebar-preferred-width: 200px; } body #sidebar .nav-pills > li.buffer > a { padding-top: 5px; padding-bottom: 5px; } body #bufferlines.withnicklist { margin-right:145px !important; } body .footer.withnicklist { padding-right:153px !important; } } body .nav-pills li:nth-child(2n) { background: rgba(157, 92, 255, 0.035); } body .nav-pills > li > a { color: #cbbdde; } body .nav-pills > li.active > a, body .nav-pills > li.active > a:hover { color: #fff; background: linear-gradient(90deg, rgba(111, 44, 255, 0.65), rgba(255, 101, 200, 0.15)) !important; box-shadow: inset 3px 0 0 var(--neorelay-pink); } body .nav-pills > li.highlight > a, body .nav-pills > li.highlight > a span { color: #08030d; background: var(--neorelay-acid) !important; } .sidebar-actions { position:static; flex:0 0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(48px,1fr)); gap:1px; margin-top:0; border-top:1px solid var(--neorelay-line); background:var(--neorelay-void); } .sidebar-actions button { min-width:0; padding:9px 3px; border:0; color:var(--neorelay-muted); background:rgba(21,10,36,.96); font:700 9px/1.2 ui-monospace,monospace; } .sidebar-actions button:hover { color:var(--neorelay-cyan); background:rgba(111,44,255,.28); } .sidebar-actions i,.sidebar-actions span { display:block; margin:auto; } .sidebar-actions span { margin-top:4px; } .neo-context-menu { position:fixed; z-index:1200; display:grid; width:220px; overflow:hidden; border:1px solid var(--neorelay-violet); background:rgba(7,3,13,.96); box-shadow:10px 10px 24px rgba(0,0,0,.5); } .neo-context-menu button { padding:9px 12px; border:0; border-bottom:1px solid rgba(157,92,255,.15); color:var(--neorelay-text); text-align:left; background:transparent; } .neo-context-menu button:hover,.neo-context-menu button:focus { color:var(--neorelay-cyan); background:rgba(111,44,255,.35); outline:0; } .neo-context-menu button.destructive { color:var(--neorelay-pink); } .neo-server-manager .modal-dialog { width:min(1100px,calc(100% - 24px)); } .neo-server-layout { display:grid; grid-template-columns:190px 1fr; gap:18px; max-height:72vh; overflow:auto; } .neo-server-layout aside { display:flex; flex-direction:column; gap:4px; } .neo-server-layout aside button { padding:8px; border:1px solid var(--neorelay-line); color:var(--neorelay-text); text-align:left; background:rgba(7,3,13,.7); } .neo-server-layout aside .neo-add-server { box-sizing:border-box; width:100%; min-height:38px; padding:8px 10px; border:1px solid var(--neorelay-cyan); color:var(--neorelay-void); text-align:center; white-space:normal; background:linear-gradient(90deg,var(--neorelay-pink),var(--neorelay-violet)); box-shadow:none; font-size:10px; line-height:20px; } .neo-server-layout aside .neo-add-server:hover,.neo-server-layout aside .neo-add-server:focus { color:var(--neorelay-void); background:linear-gradient(90deg,var(--neorelay-acid),var(--neorelay-cyan)); } .neo-server-options { display:grid; grid-template-columns:repeat(2,minmax(240px,1fr)); gap:8px 14px; margin-top:14px; } .neo-server-options label { display:grid; grid-template-columns:minmax(130px,.8fr) minmax(120px,1.2fr) auto; align-items:center; gap:8px; margin:0; color:var(--neorelay-muted); font:11px/1.3 ui-monospace,monospace; } .neo-server-manager,.neo-server-manager button,.neo-server-manager input,.neo-server-manager select { font-family:"OpenDyslexic","Atkinson Hyperlegible",system-ui,sans-serif; } .neo-server-manager .neo-server-control { box-sizing:border-box; width:100%; min-width:0; height:34px; min-height:34px; margin:0 !important; padding:6px 10px; border:1px solid var(--neorelay-line) !important; color:var(--neorelay-text); background:var(--neorelay-void); font-size:12px; line-height:20px; } .neo-server-manager .modal-footer .btn { min-width:92px; height:34px; padding:7px 13px; font-size:11px; line-height:20px; } .neo-server-manager .modal-footer .btn-default { border:1px solid var(--neorelay-line); color:var(--neorelay-text); background:var(--neorelay-panel-raised); } .neo-server-manager .modal-footer .btn-default:hover,.neo-server-manager .modal-footer .btn-default:focus { color:var(--neorelay-cyan); background:rgba(111,44,255,.28); } .neo-server-options .inherit { white-space:nowrap; } #settingsModal .modal-dialog { width:min(900px,calc(100% - 24px)); } .neo-font-picker { position:relative; } .neo-font-trigger { display:flex; align-items:center; justify-content:space-between; width:100%; overflow:hidden; text-align:left; } .neo-font-value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .neo-font-menu { position:absolute; z-index:1300; top:calc(100% + 4px); left:0; display:grid; width:max(100%,320px); padding:4px; border:1px solid var(--neorelay-violet); background:var(--neorelay-void); box-shadow:10px 10px 24px rgba(0,0,0,.55); } .neo-font-option { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 11px; border:0; border-bottom:1px solid rgba(157,92,255,.18); color:var(--neorelay-text); background:transparent; font-size:16px !important; text-align:left; } .neo-font-option:last-child { border-bottom:0; } .neo-font-option:hover,.neo-font-option:focus { color:var(--neorelay-void); background:linear-gradient(90deg,var(--neorelay-cyan),var(--neorelay-acid)); outline:0; } .neo-font-option span { font-size:.88em !important; } .neo-font-preview { margin:8px 0 0; padding:9px 11px; border:1px solid var(--neorelay-line); color:var(--neorelay-text); background:rgba(7,3,13,.55); } .neo-settings-tabs { display:flex; gap:1px; margin:-15px -15px 18px; padding:1px; background:var(--neorelay-line); } .neo-settings-tabs button { flex:1 1 0; padding:11px 16px; border:0; color:var(--neorelay-muted); background:var(--neorelay-ink); font:800 11px/1 ui-monospace,monospace; letter-spacing:.08em; text-transform:uppercase; } .neo-settings-tabs button.active { color:var(--neorelay-void); background:linear-gradient(90deg,var(--neorelay-cyan),var(--neorelay-acid)); } .neo-settings-panel { margin:0; } .neo-colour-settings h5,.neo-weechat-settings h5 { margin:20px 0 9px; color:var(--neorelay-cyan); font:800 11px/1 ui-monospace,monospace; letter-spacing:.1em; text-transform:uppercase; } .neo-colour-settings p,.neo-weechat-settings p { color:var(--neorelay-muted); } .neo-settings-toolbar { display:flex; align-items:end; gap:10px; margin-bottom:12px; } .neo-settings-toolbar p { flex:1 1 auto; margin:0; } .neo-settings-toolbar label { flex:1 1 220px; margin:0; color:var(--neorelay-muted); font-size:11px; } .neo-settings-toolbar .form-control { height:34px; margin:4px 0 0 !important; } .neo-colour-grid { display:grid; grid-template-columns:repeat(2,minmax(250px,1fr)); gap:8px; } .neo-colour-grid label { display:grid; grid-template-columns:minmax(110px,1fr) minmax(120px,.8fr) 28px; align-items:center; gap:8px 10px; margin:0; padding:8px 10px; border:1px solid rgba(157,92,255,.2); background:rgba(7,3,13,.45); color:var(--neorelay-text); font-weight:600; } .neo-colour-grid .form-control { height:34px; margin:0 !important; } .neo-colour-grid code { grid-column:1 / -1; overflow:hidden; padding:0; color:var(--neorelay-muted); background:transparent; font-size:9px; text-overflow:ellipsis; white-space:nowrap; } .neo-colour-swatch { display:block; width:26px; height:26px; border:1px solid rgba(255,255,255,.45); box-shadow:inset 0 0 0 1px rgba(0,0,0,.35); } .neo-option-list { display:grid; gap:7px; max-height:55vh; overflow:auto; } .neo-option { display:grid; grid-template-columns:minmax(260px,1fr) minmax(160px,.65fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid rgba(157,92,255,.2); background:rgba(7,3,13,.45); } .neo-option strong,.neo-option small { display:block; overflow-wrap:anywhere; } .neo-option strong { color:var(--neorelay-cyan); font:700 10px/1.3 ui-monospace,monospace; } .neo-option small { margin-top:3px; color:var(--neorelay-muted); font-size:9px; } .neo-option .form-control { height:34px; margin:0 !important; } .neo-option-actions { display:flex; gap:5px; } .neo-option-actions .btn { min-width:64px; height:34px; } .neo-palette-setting { display:grid; grid-template-columns:1fr auto; gap:8px; padding:10px; border:1px solid rgba(157,92,255,.2); background:rgba(7,3,13,.45); } .neo-palette-setting .form-control { height:34px; margin:0 !important; } .neo-palette-setting code { grid-column:1 / -1; color:var(--neorelay-muted); background:transparent; font-size:9px; } .neo-palette-preview { grid-column:1 / -1; display:flex; align-items:center; gap:3px; min-height:20px; overflow-x:auto; } .neo-palette-preview i { flex:0 0 20px; width:20px; height:20px; border:1px solid rgba(255,255,255,.4); box-shadow:inset 0 0 0 1px rgba(0,0,0,.3); } body #nicklist a { cursor:text; } body .neo-nick { color:var(--neorelay-nick) !important; } body .neo-nick-op { color:var(--neorelay-nick-op) !important; } body .neo-nick-halfop { color:var(--neorelay-nick-halfop) !important; } body .neo-nick-voice { color:var(--neorelay-nick-voice) !important; } body .neo-nick-away { color:var(--neorelay-nick-away) !important; font-style:italic; opacity:.85; } body #nicklist .cof-chat_nick_self { color:var(--neorelay-nick-self) !important; font-style:normal; font-weight:900; opacity:1; text-shadow:1px 1px 0 var(--neorelay-purple),0 0 8px rgba(157,92,255,.45); } body tr.bufferline:hover { background: rgba(157, 92, 255, 0.08) !important; } body #bufferlines tr.bufferline:has(td.prefix .highlight) { background: var(--neorelay-chat-highlight-bg) !important; box-shadow: inset 3px 0 0 var(--neorelay-pink); } body #bufferlines td.prefix .highlight { color: var(--neorelay-chat-highlight) !important; font-weight: 900; text-shadow: 0 0 8px rgba(255, 101, 200, 0.48); } body td.prefix { border-color: rgba(157, 92, 255, 0.2); } body .footer { bottom: 5px; padding-bottom: 0; border-top: 1px solid rgba(157, 92, 255, 0.35); background: var(--neorelay-ink); } body #bufferlines { bottom:40px; } .command-menu { position: absolute; z-index: 5; right: 0; bottom: calc(100% + 4px); left: 0; max-height: min(40dvh, 20rem); overflow-y: auto; border: 1px solid var(--neorelay-line); background: rgba(7, 3, 13, 0.90); box-shadow: 8px -8px 24px rgba(3, 0, 8, 0.45); overscroll-behavior: contain; } .command-menu-item { display: grid; grid-template-columns: minmax(9rem, 0.3fr) minmax(12rem, 0.7fr) minmax(14rem, 1fr); gap: 12px; width: 100%; padding: 7px 10px; border: 0; border-bottom: 1px solid rgba(157, 92, 255, 0.14); color: var(--neorelay-text); text-align: left; background: transparent; } .command-menu-item:hover, .command-menu-item.selected { background: linear-gradient(90deg, rgba(111, 44, 255, 0.55), rgba(255, 101, 200, 0.08)); box-shadow: inset 3px 0 0 var(--neorelay-cyan); } .command-menu-name { color: var(--neorelay-cyan); font-weight: 800; } .command-menu-args { color: #8f8699; white-space: pre-wrap; } .command-menu-description { overflow: hidden; color: var(--neorelay-muted); text-overflow: ellipsis; white-space: nowrap; } .command-menu-empty { padding: 10px; color: var(--neorelay-muted); } body .modal-content, body .dropdown-menu { border: 1px solid var(--neorelay-line); border-radius: 0; color: var(--neorelay-text); background: var(--neorelay-panel) !important; box-shadow: 12px 12px 0 rgba(111, 44, 255, 0.15); } body .badge.danger, body .danger { color: #09020f; background: var(--neorelay-pink) !important; } body #readmarker { border-top-color: var(--neorelay-pink); border-bottom-color: var(--neorelay-cyan); } .neorelay-core-title { color: var(--neorelay-text); font: 800 12px/35px "OpenDyslexic", ui-monospace, monospace; letter-spacing: 0.08em; text-transform: uppercase; } .neorelay-core-title small { margin-left: 8px; color: var(--neorelay-acid); font: 700 9px/35px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.14em; } .core-login-hero { width: min(960px, calc(100% - 32px)); margin: 6vh auto 60px; } body .cof-chat_nick, body .cof-chat_host, body .cof-chat_value { color: var(--neorelay-nick); } body .cof-chat_nick_other { color:var(--neorelay-nick-other); } body .cof-chat_prefix_join, body .cof-chat_nick_prefix { color: var(--neorelay-acid); } body .cof-chat_nick_self { color: var(--neorelay-nick-self); font-style: normal; font-weight: 900; opacity: 1; text-shadow: 1px 1px 0 var(--neorelay-purple), 0 0 8px rgba(157, 92, 255, 0.45); } body .cof-chat_time { color:var(--neorelay-chat-time); } body .cof-chat_prefix_network, body .cof-chat_prefix_more, body .cof-chat_read_marker { color: var(--neorelay-pink); } ::-webkit-scrollbar-track-piece { background: var(--neorelay-void) !important; } ::-webkit-scrollbar-thumb { background: linear-gradient(var(--neorelay-purple), var(--neorelay-pink)) !important; } @media (max-width: 760px) { .login-shell { width: min(100% - 24px, 560px); padding-top: 28px; } .neo-server-layout { grid-template-columns:1fr; } .neo-server-options { grid-template-columns:1fr; } .neo-colour-grid { grid-template-columns:1fr; } .neo-settings-toolbar { align-items:stretch; flex-direction:column; } .neo-settings-toolbar label { width:100%; flex-basis:auto; } .neo-option { grid-template-columns:1fr; } .neo-option-actions .btn { flex:1 1 auto; } .login-hero { grid-template-columns: 1fr; box-shadow: 10px 10px 0 rgba(72, 24, 122, 0.12); } .login-portrait, .login-portrait img { min-height: 300px; max-height: 380px; } .login-portrait { border-right: 0; border-bottom: 1px solid var(--neorelay-line); } .login-intro { padding: 42px 24px 36px; } .login-intro h1 { font-size: clamp(48px, 18vw, 76px); } .login-shell .panel-group { display: block; } .login-shell .panel + .panel { border-top: 1px solid var(--neorelay-line); } .connection-panel .panel-body { padding: 14px; } .relay-terminal { box-shadow: 8px 8px 0 rgba(111, 44, 255, 0.1); } .relay-password-line { display: block; } .relay-password-field { margin-top: 5px; } .connection-options { display: grid; } .relay-connect { width: 100%; } .command-menu { max-height: min(35dvh, 16rem); } .command-menu-item { grid-template-columns: minmax(8rem, 0.45fr) 1fr; min-height: 44px; touch-action: manipulation; } .command-menu-description { display: none; } .neorelay-core-title small { display: none; } .core-login-hero { margin: 32px 12px 60px; width: calc(100% - 24px); } } @media (max-width: 968px) { body .footer.withnicklist { padding-right:113px !important; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } }