body{margin:0;font:16px/1.65 -apple-system,Segoe UI,Roboto,Arial,sans-serif; background:var(--mk-bg);color:var(--mk-text)} .wrap{max-width:760px;margin:0 auto;padding:28px 18px 80px} h1{font-size:1.7rem;margin:0 0 6px} h2{font-size:1.15rem;margin:26px 0 8px} .muted{color:var(--mk-text-muted)} .prov{color:var(--mk-text-muted);font-size:13px;margin:6px 0} .card{border:1px solid var(--mk-border);border-radius:12px;padding:16px 18px;margin:14px 0;background:var(--mk-panel)} fieldset{border:1px solid var(--mk-border);border-radius:10px;margin:14px 0;padding:12px 14px} legend{padding:0 6px;font-weight:700} .opt{display:flex;gap:9px;align-items:flex-start;padding:4px 0;cursor:pointer} .field{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 0;flex-wrap:wrap} .field input,.field select{background:var(--mk-bg);color:var(--mk-text);border:1px solid var(--mk-border); border-radius:8px;padding:7px 10px;font:inherit;min-width:8ch} .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:5px 0} .rowlab{min-width:11ch;color:var(--mk-text-muted);font-size:13px} .vas{margin:10px 0} .vas input[type=range]{width:100%} .vasends{display:flex;justify-content:space-between;font-size:12px;color:var(--mk-text-muted)} button{padding:10px 18px;border:1px solid var(--mk-accent);background:var(--mk-accent);color:#1a1306; border-radius:10px;font-weight:800;cursor:pointer;font:inherit;font-weight:800} button.ghost{background:transparent;color:var(--mk-text);border-color:var(--mk-border)} button[disabled]{opacity:.45;cursor:not-allowed} a{color:var(--mk-accent)} .limits li{margin:8px 0} .limits b{display:block} .key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.06em; background:var(--mk-bg);border:1px dashed var(--mk-border);border-radius:8px;padding:9px 11px; display:inline-block;word-break:break-all} table{width:100%;border-collapse:collapse;font-size:14px} td,th{border-bottom:1px solid var(--mk-border);padding:6px 4px;text-align:left} .consult{border:1px solid var(--mk-border);border-left:3px solid var(--mk-text-muted);border-radius:8px; padding:10px 14px;margin:0 0 18px;background:var(--mk-panel);font-size:14px} .consult p{margin:4px 0} .stage{min-height:160px;display:flex;align-items:center;justify-content:center; border:1px solid var(--mk-border);border-radius:12px;margin:12px 0;font-size:15px;color:var(--mk-text-muted)} .swatch{width:100%;height:160px;border-radius:11px} .beat{width:22px;height:22px;border-radius:50%;background:var(--mk-border);margin:0 4px;display:inline-block} .beat.on{background:var(--mk-accent)}
Sixteen hues sampled evenly around a near-perceptually-uniform hue circle, all at the same lightness and chroma, and all inside what your screen can actually show before it starts clipping.
In the Egyptian zar, the thread — khayt — is the distinctive drum rhythm belonging to each spirit, and the kodia who leads the ceremony is expected to know the songs and rhythms of each. She performs them one at a time and watches for a reaction, and the rhythm that produces one identifies the spirit.
Look at the shape of that rather than at the metaphysics. A fixed enumerated set of stimuli. Serial presentation. A response criterion. Classification by maximal differential response. That is a within-person psychophysical protocol, and it was built centuries before anybody wrote down a method section.
We are borrowing the method. We are not borrowing the cosmology. This page will name a hue. It will never name a spirit, a Thread or a deity, and it does not map any hue to one — not because that would be impolite, but because no instrument can do it and the statement would be false.
The khayt-as-drum-rhythm account is the standard one and is consistent across the sources read, but it is marked partially verified: El Hadidi (2016), Zar: Spirit Possession, Music, and Healing Rituals in Egypt (AUC Press) is the scholarly source and has not been read in full here. The protocol does not depend on it — it stands as psychophysics either way — but this attribution does, and saying so is cheaper than implying otherwise.
You will be shown each of the 16 hues for 8 seconds and asked, after each, how much of a response it produced. There is no right answer and no wrong one, and “nothing at all” is a real answer that is worth giving.
This result will never be worded as: “This is your Thread.”
Your browser made you a random key. We store a one-way hash of it, never the key. It is the only thing linking this sitting to your next one — write it down.
…
Under a minute. None of it is required, every question can be skipped, and "prefer not to say" is recorded as itself rather than turned into a default. This is not part of the exam and nothing here is scored.
Every one of those is true and none of them is fixable from JavaScript. They are survivable here for exactly one reason: the comparison is your own first block, on this screen, minutes earlier. A display error that is present in both blocks cancels. A display error that is present in only one of them is why we ask you not to change your brightness halfway through.
All sixteen hues sit inside what an sRGB panel can show before it clips, so none of them is a compressed approximation of a colour we could not send you.
The same protocol runs over the sixteen rhythms. The comparison between the two is the interesting part: a person whose rhythm profile repeats and whose hue profile does not has learned something about themselves that neither run gives on its own.
Coloured light is presented here as history and as published research, not as a treatment. This is not a medical device and not medical advice. Nothing here diagnoses, treats, cures or prevents any disease, no colour is matched to a condition, and no claim is made that light measures or restores anything about your body. Where the research is strong we say so; where the tradition’s claims are unsupported we say that too.