:root{--background:#010207;--foreground:#f6f2ff}*{box-sizing:border-box}body,html{margin:0;min-height:100%;overflow:hidden;background:var(--background);color:var(--foreground)}body{font-family:Inter,ui-sans-serif,system-ui,sans-serif}button{font:inherit}.soul-shell{position:fixed;inset:0;overflow:hidden;background:#010207;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.soul-shell:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 38%,#00000047 72%,#000000b8 100%)}.soul-canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}.topbar{position:absolute;z-index:2;left:0;right:0;top:0;height:76px;justify-content:space-between;padding:0 clamp(20px,4vw,58px);border-bottom:1px solid #aab7ff1a;background:linear-gradient(#02030a99,transparent)}.identity,.topbar{display:flex;align-items:center}.identity{gap:10px;font-size:12px;letter-spacing:.22em;font-weight:600;color:#e6e3f8}.identity-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid #9a88c055;border-radius:50%;color:#dcb9ff;box-shadow:inset 0 0 22px #825aff44}.live{display:flex;align-items:center;gap:8px;font:500 11px/1 ui-monospace,monospace;letter-spacing:.14em;color:#a7b0cc}.live i{width:6px;height:6px;border-radius:50%;background:#a775ff;box-shadow:0 0 12px #b989ff;animation:pulse 2s infinite}.soul-label{position:absolute;z-index:2;top:104px;left:clamp(22px,5vw,76px);pointer-events:none}.soul-label p,.soul-label span{font:500 11px/1.5 ui-monospace,monospace;letter-spacing:.16em;color:#8e9ab8}.soul-label h1{margin:9px 0 3px;font:300 clamp(30px,4vw,54px)/.95 Georgia,serif;letter-spacing:-.035em;color:#fff;text-shadow:0 0 38px #b879ff88}.gesture-hint{left:50%;top:68%;transform:translateX(-50%);margin:0;color:#bdc4dd88;font:500 10px/1 ui-monospace,monospace;letter-spacing:.22em;text-transform:uppercase;animation:fade 3s ease-in-out infinite;pointer-events:none}.gesture-hint,.readings{position:absolute;z-index:2}.readings{right:clamp(22px,5vw,76px);top:128px;display:grid;grid-gap:17px;gap:17px;width:150px}.readings div{display:grid;grid-template-columns:1fr auto;align-items:end;padding-bottom:9px;border-bottom:1px solid #a79cc920}.readings span{font:500 9px/1 ui-monospace,monospace;letter-spacing:.13em;color:#76809c}.readings strong{font:400 13px/1 ui-monospace,monospace;color:#d8d9ed}.controls{position:absolute;z-index:3;left:50%;bottom:clamp(22px,4vh,42px);transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:5px;border:1px solid #c4b6ef24;border-radius:999px;background:#090a17aa;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 50px #000a,inset 0 0 40px #7857a818}.controls button{min-height:39px;border:0;border-radius:999px;padding:0 15px;background:transparent;color:#8890a9;cursor:pointer;font-size:12px;transition:.25s ease}.controls button.active,.controls button:hover{color:#fff;background:#b499ff18;box-shadow:inset 0 0 20px #9b62ff17}.controls .icon-button{display:grid;place-items:center;min-width:39px;padding:0}.divider{width:1px;height:20px;background:#aaa0c52a;margin:0 3px}.awaken{position:absolute;z-index:3;right:clamp(22px,4vw,58px);bottom:clamp(26px,4vh,46px);display:flex;gap:8px;align-items:center;height:37px;padding:0 15px;border:1px solid #e9cbff44;border-radius:999px;background:#ab6fff12;color:#e9d9ff;font-size:12px;cursor:pointer;box-shadow:0 0 26px #a657ff18}.awaken:hover{background:#c485ff25;box-shadow:0 0 34px #b967ff35}@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}@keyframes fade{50%{opacity:.35}}@media(max-width:700px){.topbar{height:62px}.soul-label{top:82px}.readings{top:auto;bottom:102px;left:20px;right:20px;width:auto;grid-template-columns:repeat(3,1fr);gap:12px}.readings div{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.readings span{font-size:8px}.gesture-hint{top:65%}.controls{bottom:24px;max-width:calc(100% - 28px)}.controls button{padding:0 10px;font-size:11px}.awaken,.controls .icon-button{display:none}}@media(prefers-reduced-motion:reduce){.gesture-hint,.live i{animation:none}}