.lanyard-layer{z-index:5;pointer-events:none;position:fixed;inset:0}.lanyard-layer canvas{display:block}.lanyard-grip{pointer-events:auto;touch-action:none;cursor:grab;will-change:transform;width:230px;height:350px;margin:-175px 0 0 -115px;position:fixed;top:0;left:0}.lanyard-grip:active{cursor:grabbing}.card-viewer{z-index:200;background:var(--page);flex-direction:column;display:flex;position:fixed;inset:0}.card-viewer-bar{justify-content:space-between;align-items:center;gap:var(--space-14);padding:var(--space-12) var(--gap);border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);display:flex}.card-viewer-bar p{margin:0}.card-viewer-close,.holo-studio-actions button{padding:var(--space-6) var(--space-12);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--tertiary);color:var(--fg);font:inherit;cursor:pointer;transition:transform .1s}.card-viewer-close:hover,.holo-studio-actions button:hover{background:var(--line)}.card-viewer-close:active,.holo-studio-actions button:active{transform:scale(.96)}.card-viewer-stage{flex:1;min-height:0;position:relative}.card-viewer-stage canvas{touch-action:none;display:block}.holo-studio{z-index:210;background:var(--page);flex-direction:column;display:flex;position:fixed;inset:0}.holo-studio-page{z-index:auto;border:1px solid var(--line);border-radius:var(--radius-sm);position:relative;inset:auto;overflow:hidden}.holo-studio-bar{justify-content:space-between;align-items:center;gap:var(--space-14);min-height:56px;padding:var(--space-10) var(--space-16);border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);display:flex}.holo-studio-bar p{margin:0}.holo-studio-actions{gap:var(--space-8);display:flex}.holo-studio-body{flex:1;min-height:0;display:flex}.holo-studio-stage{flex:1;min-height:0;position:relative}.holo-studio-stage canvas{touch-action:none;display:block}.light-direction-gizmo{bottom:var(--space-16);left:var(--space-16);z-index:1;justify-items:center;gap:var(--space-4);padding:var(--space-8);border:1px solid color-mix(in srgb, var(--line) 82%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--page) 82%, transparent);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);display:grid;position:absolute}.light-direction-gizmo p{margin:0}.light-direction-gizmo-pad{cursor:crosshair;touch-action:none;width:86px;height:86px}.light-direction-gizmo-pad svg{width:100%;height:100%;display:block;overflow:visible}.light-direction-gizmo-pad path{fill:none;stroke:var(--line);stroke-width:1px}.light-direction-gizmo-pad line{stroke:#e89a28;stroke-width:1.5px}.light-direction-gizmo-pad rect{fill:var(--page);stroke:var(--muted);stroke-width:1.5px}.light-direction-gizmo-pad g rect{fill:#e89a28;stroke:var(--page);stroke-width:2px}.light-direction-gizmo-pad g path{stroke:color-mix(in srgb, var(--page) 82%, transparent);stroke-width:1px}.light-direction-gizmo small{white-space:nowrap}.holo-studio-panel{gap:var(--space-12);width:clamp(320px,27vw,420px);padding:var(--space-12) var(--space-14);border-left:1px solid var(--line);background:var(--soft);flex-direction:column;display:flex;overflow-y:auto}.holo-param{gap:var(--space-6);flex-direction:column;display:flex}.holo-group{margin:var(--space-6) 0 0;padding-top:var(--space-10);border-top:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:1px}.holo-studio-panel .holo-group:first-child{border-top:0;margin-top:0;padding-top:0}.holo-param-head{justify-content:space-between;align-items:baseline;gap:var(--space-10);color:var(--fg);font-size:var(--text-sm);display:flex}.holo-param-head em{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);font-style:normal}.holo-param input{accent-color:var(--fg)}.holo-param small{color:var(--muted);font-size:var(--text-2xs);line-height:1.6}.holo-json summary{color:var(--muted);font-size:var(--text-sm);cursor:pointer}.holo-json textarea{width:100%;margin-top:var(--space-8);padding:var(--space-8);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--entry);color:var(--fg);font-family:var(--font-mono);font-size:var(--text-2xs);resize:vertical}@media (width<=900px){.holo-studio-body{flex-direction:column}.holo-studio-panel{border-left:0;border-top:1px solid var(--line);width:auto;max-height:46vh}}.lanyard-dim{z-index:108;background:#0e0e1157;animation:.28s ease-out lanyard-dim-in;position:fixed;inset:0}:root[data-theme=dark] .lanyard-dim{background:#00000085}@keyframes lanyard-dim-in{0%{opacity:0}}.lanyard-layer.is-focused{z-index:115}.lanyard-layer.is-focused .lanyard-grip{width:880px;height:1240px;margin:-620px 0 0 -440px}.lanyard-focus-bar{top:calc(var(--header-height) + 12px);right:var(--gap);z-index:118;gap:var(--space-6);animation:.28s ease-out lanyard-bar-in;display:flex;position:fixed}.lanyard-focus-bar button{padding:var(--space-6) var(--space-12);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--page);color:var(--fg);font:inherit;cursor:pointer;transition:transform .1s,background .15s}.lanyard-focus-bar button:hover{background:var(--tertiary)}.lanyard-focus-bar button:active{transform:scale(.96)}@keyframes lanyard-bar-in{0%{opacity:0}}.lanyard-tuner{z-index:119;background:var(--page);border-left:1px solid var(--line);flex-direction:column;width:340px;max-width:92vw;animation:.24s ease-out lanyard-tuner-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes lanyard-tuner-in{0%{transform:translate(100%)}}.lanyard-tuner-head{gap:var(--space-12);padding:var(--space-12);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.lanyard-tuner-head p{color:var(--muted);margin:0;font-size:.8125rem}.lanyard-tuner-head button{padding:var(--space-6) var(--space-12);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--tertiary);color:var(--fg);font:inherit;cursor:pointer;transition:transform .1s}.lanyard-tuner-head button:hover{background:var(--line)}.lanyard-tuner-head button:active{transform:scale(.96)}.lanyard-tuner-body{min-height:0;padding:var(--space-12);flex:1;overflow-y:auto}
