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

	:root {
	  --bg: #000;
	  --font: 'Courier New', Courier, monospace;
	  --h1: #ff00ff;
	  --h2: #00ffff;
	  --h3: #ff00aa;
	  --h4: #00ff88;
	  --h5: #aaff00;
	  --h6: #ff6600;
	}

	html, body {
	  width: 100%; height: 100%;
	  background: var(--bg);
	  font-family: var(--font);
	  overflow: hidden;
	  cursor: crosshair;
	}

	/* scanlines */
	body::after {
	  content: '';
	  position: fixed; inset: 0;
	  background: repeating-linear-gradient(
	    to bottom,
	    transparent 0px, transparent 3px,
	    rgba(0,0,0,0.1) 3px, rgba(0,0,0,0.1) 4px
	  );
	  pointer-events: none;
	  z-index: 9998;
	}

	#matrix-canvas {
	  position: fixed; inset: 0;
	  z-index: 0;
	  opacity: .06;
	  pointer-events: none;
	}

	#app {
	  width: 100vw; height: 100vh;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  position: relative;
	  z-index: 1;
	}

	/* ── wallet top-right ── */
	#wallet-bar {
	  position: fixed;
	  top: 22px; right: 24px;
	  z-index: 100;
	  text-align: right;
	}
	#btn-connect {
	  background: linear-gradient(90deg, var(--h1), var(--h2), var(--h3), var(--h1));
	  background-size: 200%;
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	  border: none;
	  font-family: var(--font);
	  font-size: 11px;
	  letter-spacing: 3px;
	  cursor: pointer;
	  padding: 0;
	  animation: hshift 4s linear infinite;
	}
	#btn-connect:hover { filter: brightness(1.5); }
	#wallet-info { display: none; }
	#wallet-addr {
	  font-size: 11px;
	  letter-spacing: 2px;
	  background: linear-gradient(90deg, var(--h2), var(--h4), var(--h5), var(--h2));
	  background-size: 200%;
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	  animation: hshift 5s linear infinite;
	}
	#network-name { font-size: 9px; color: rgba(255,255,255,0.2); letter-spacing: 1px; margin-top:2px; }

	/* ── center ── */
	#center-block {
	  display: flex;
	  flex-direction: column;
	  align-items: flex-start;
	  width: min(540px, 88vw);
	}

	/* ── input row ── */
	#search-wrap {
	  width: 100%;
	  display: flex;
	  align-items: center;
	  gap: 10px;
	  border-bottom: 1px solid rgba(255,255,255,0.1);
	  padding-bottom: 8px;
	}
	.prompt {
	  font-size: 22px;
	  flex-shrink: 0;
	  background: linear-gradient(90deg, var(--h1), var(--h2), var(--h3));
	  background-size: 200%;
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	  animation: hshift 3s linear infinite;
	  filter: drop-shadow(0 0 6px var(--h1));
	}
	#word-input {
	  flex: 1;
	  background: none;
	  border: none;
	  outline: none;
	  font-family: var(--font);
	  font-size: 22px;
	  letter-spacing: 3px;
	  text-transform: lowercase;
	  background: linear-gradient(90deg, var(--h2), var(--h4), var(--h5), var(--h2));
	  background-size: 300%;
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	  animation: hshift 6s linear infinite;
	  caret-color: #fff;
	}
	#word-input::placeholder {
	   animation: none;
	  -webkit-text-fill-color: rgba(64,64,64);
	  
	}

	/* ── status ── */
	#status-line {
	  width: 100%;
	  min-height: 18px;
	  margin-top: 12px;
	  font-size: 10px;
	  letter-spacing: 3px;
	  color: rgba(255,255,255,0.2);
	}
	#status-line.ok {
	  background: linear-gradient(90deg, var(--h4), var(--h2));
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	}
	#status-line.err { -webkit-text-fill-color: #ff3333; }

	/* ── actions ── */
	#action-area {
	  width: 100%;
	  margin-top: 28px;
	  display: flex;
	  flex-direction: column;
	  gap: 10px;
	  min-height: 50px;
	}

	.action-btn {
	  background: linear-gradient(90deg, var(--h1), var(--h2), var(--h3), var(--h6), var(--h1));
	  background-size: 300%;
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	  animation: hshift 4s linear infinite;
	  border: none;
	  font-family: var(--font);
	  font-size: 12px;
	  letter-spacing: 5px;
	  padding: 10px 0;
	  cursor: pointer;
	  width: 100%;
	  text-align: left;
	  position: relative;
	  filter: drop-shadow(0 0 3px var(--h3));
	  transition: filter .2s;
	}
	.action-btn::after {
	  content: '';
	  position: absolute;
	  bottom: 0; left: 0;
	  width: 0; height: 1px;
	  background: linear-gradient(90deg, var(--h1), var(--h2));
	  transition: width .25s;
	}
	.action-btn:hover::after { width: 100%; }
	.action-btn:hover { filter: drop-shadow(0 0 10px var(--h2)) brightness(1.5); }

	.action-btn.secondary {
	  background: none;
	  -webkit-text-fill-color: rgba(255,255,255,0.2);
	  animation: none;
	  filter: none;
	  letter-spacing: 3px;
	  font-size: 11px;
	}
	.action-btn.secondary:hover { -webkit-text-fill-color: rgba(255,255,255,.5); }

	/* ── owner panel ── */
	#owner-panel {
	  width: 100%;
	  margin-top: 30px;
	  border-top: 1px solid rgba(255,255,255,0.06);
	  padding-top: 20px;
	  display: none;
	  flex-direction: column;
	  gap: 12px;
	}
	#owner-panel.visible { display: flex; }
	#owner-panel label {
	  font-size: 9px;
	  letter-spacing: 4px;
	  color: rgba(255,255,255,0.18);
	}
	#op-word-tag {
	  font-size: 9px;
	  letter-spacing: 4px;
	  background: linear-gradient(90deg, var(--h5), var(--h2));
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	}
	#cid-input {
	  width: 100%;
	  background: none;
	  border: none;
	  border-bottom: 1px solid rgba(255,255,255,0.08);
	  outline: none;
	  font-family: var(--font);
	  font-size: 12px;
	  letter-spacing: 1px;
	  padding: 6px 0;
	  color: rgba(255,255,255,0.5);
	  caret-color: #fff;
	}
	#cid-input::placeholder { color: rgba(255,255,255,0.12); }

	/* ── viewer ── */
	#viewer-overlay {
	  position: fixed; inset: 0;
	  background: #000;
	  z-index: 200;
	  display: none;
	  flex-direction: column;
	}
	#viewer-overlay.visible { display: flex; }
	#viewer-toolbar {
	  display: flex;
	  align-items: center;
	  gap: 16px;
	  padding: 12px 22px;
	  border-bottom: 1px solid rgba(255,255,255,0.06);
	  flex-shrink: 0;
	}
	#viewer-word-title {
	  font-size: 13px;
	  letter-spacing: 5px;
	  flex: 1;
	  background: linear-gradient(90deg, var(--h1), var(--h2), var(--h3), var(--h1));
	  background-size: 200%;
	  -webkit-background-clip: text;
	  -webkit-text-fill-color: transparent;
	  background-clip: text;
	  animation: hshift 4s linear infinite;
	}
	#viewer-cid-small {
	  font-size: 9px;
	  color: rgba(255,255,255,0.15);
	  letter-spacing: 1px;
	  max-width: 220px;
	  overflow: hidden;
	go on.  text-overflow: ellipsis;
	  white-space: nowrap;
	}
	#btn-close-viewer {
	  background: none; border: none;
	  font-family: var(--font);
	  font-size: 10px;
	  letter-spacing: 3px;
	  cologo on.r: rgba(255,255,255,.2);
	  cursor: pointer;
	}
	#btn-close-viewer:hover { color: #fff; }
	#viewer-frame { flex: 1; width: 100%; border: none; background: #000; }

	/* ── SEX logo bottom-right 48×48 circle ── */
	#logo-wrap {
	  position: fixed;
	  bottom: 20px;
	  right: 22px;
	  z-index: 100;
	  width: 52px;
	  height: 52px;
	  border-radius: 50%;
	  /* holographic spinning ring */
	  /*background: conic-gradient(
	    var(--h1), var(--h2), var(--h3),
	    var(--h4), var(--h5), var(--h6), var(--h1)
	  );
	  padding: 2px;
	  animation: logo-spin 3s linear infinite;
		  filter: drop-shadow(0 0 10px var(--h2));*/
		}
	#logo-inner {
	  width: 100%;
	  height: 100%;
	  border-radius: 50%;
	  overflow: hidden;
	  background: #000;
	}
	#logo-inner video {
	  width: 100%;
	  height: 100%;
	  object-fit: cover;
	  display: block;
	  mix-blend-mode: screen;
	}

	/* ── anims ── */
	@keyframes hshift {
	  0%   { background-position: 0% 50%; }
	  100% { background-position: 200% 50%; }
	}
	@keyframes logo-spin {
	  from { filter: drop-shadow(0 0 8px var(--h1)) hue-rotate(0deg); }
	  to   { filter: drop-shadow(0 0 12px var(--h3)) hue-rotate(360deg); }	}

