
/* TP27: real WebGL artist world with HTML accessible glass controls */
#artistProfile .tp-ultra-world,#artistProfile .tp-holo{display:none!important}
#artistProfile .tp27-world{position:relative;min-height:650px;margin:20px 0 26px;overflow:hidden;isolation:isolate;border:1px solid #cda45d;border-radius:20px;background:radial-gradient(ellipse at 50% 60%,#273b43,#090b10 70%);box-shadow:0 20px 90px #000c}
.tp27-world canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:pan-y}
.tp27-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#03050888,transparent 24%,transparent 70%,#020305bd),linear-gradient(90deg,#02030588,transparent 25%,transparent 75%,#02030588)}
.tp27-top{position:absolute;z-index:5;top:18px;left:24px;right:24px;display:flex;justify-content:space-between;gap:10px;color:#e9c78b;letter-spacing:.16em;font:10px monospace;text-shadow:0 2px 10px #000}
.tp27-name{position:absolute;z-index:4;top:15%;left:50%;transform:translateX(-50%);font-size:clamp(22px,4vw,47px);font-weight:900;letter-spacing:.13em;text-align:center;color:#f9e6c4;text-shadow:0 0 20px #000,0 0 30px #d7a65555;pointer-events:none;white-space:nowrap}
.tp27-nav{position:absolute;inset:0;z-index:5;pointer-events:none}
.tp27-card{position:absolute;left:var(--x);top:var(--y);width:clamp(105px,16%,180px);min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:1px solid #e6d2a7a8;border-radius:12px;color:#f4dfb9!important;text-decoration:none!important;background:linear-gradient(130deg,#d3e6ec21,#0a18217d)!important;backdrop-filter:blur(13px);box-shadow:inset 0 0 22px #badbe51c,0 12px 28px #0009;pointer-events:auto;transform:translate(-50%,-50%) perspective(500px) rotateY(var(--tilt));transition:transform .4s,box-shadow .4s,border-color .4s,background .4s}
.tp27-card svg{width:30px;height:30px;stroke:#edc884;fill:none;stroke-width:1.5}.tp27-card strong{font-size:12px;letter-spacing:.14em}.tp27-card small{font-size:9px;color:#c7bda9;letter-spacing:.1em}
.tp27-card:hover,.tp27-card:focus-visible,.tp27-card[aria-current=page]{transform:translate(-50%,-55%) scale(1.12) perspective(500px) rotateY(0);border-color:#ffe1a2;box-shadow:0 0 35px #d5a4527d,0 15px 32px #000a;outline:none;background:#3d322580!important}
.tp27-bottom{position:absolute;z-index:6;bottom:15px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#e1c89c;font:10px monospace;letter-spacing:.1em}
.tp27-bottom button{padding:10px 14px;border:1px solid #d5a65e;border-radius:6px;color:#efc989;background:#15181caa;cursor:pointer}
.tp27-bottom button:hover{background:#78572c}.tp27-bottom a{color:#f4d59c}
.tp27-panel{position:relative;z-index:8;margin:0 0 25px;padding:22px;border:1px solid #bb945c;border-radius:14px;background:linear-gradient(130deg,#151b21db,#0c0e12d9);backdrop-filter:blur(16px);box-shadow:0 14px 55px #0009}
.tp27-panel h3{color:#f2ce91;margin:0 0 10px}.tp27-panel p{color:#e2d9ca;line-height:1.65}.tp27-panel a{color:#edc47e}
.tp27-loading{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);color:#efc88d;text-align:center;font-size:13px;max-width:300px}
#artistProfile.tp27-active .tp21-left{display:none!important}
#artistProfile.tp27-active .tp21-showcase{display:block!important}
#artistProfile.tp27-active .tp21-panel{max-width:100%;width:100%;margin:0!important}
#artistProfile.tp27-active .tp-ultra-profile-topline{display:none}
@media(max-width:700px){#artistProfile .tp27-world{min-height:620px}.tp27-name{top:14%;font-size:22px;white-space:normal;width:85%}.tp27-card{width:29%;min-height:85px;padding:7px}.tp27-card svg{width:23px;height:23px}.tp27-card strong{font-size:10px}.tp27-card small{font-size:8px}.tp27-top{font-size:8px;left:12px;right:12px}.tp27-bottom{font-size:9px}.tp27-bottom>span{display:none}}
@media(prefers-reduced-motion:reduce){.tp27-card{transition:none!important}}
