.lamp-root{display:none;position:fixed;inset:0;z-index:9500;overflow:hidden;box-sizing:border-box;background:#06070b;padding-bottom:calc(56px + env(safe-area-inset-bottom, 0px));place-items:center}html[data-lamp="1"] .lamp-root{display:grid}html[data-lamp="1"] body{overflow:hidden}.lamp-ambient,.lamp-vignette{position:absolute;inset:0;pointer-events:none}.lamp-ambient{opacity:0;background:radial-gradient(circle at var(--fx,50%) var(--fy,40%),rgba(255,190,110,.38),rgba(255,190,110,0) 62%)}.lamp-vignette{background:radial-gradient(ellipse at 50% 46%,rgba(0,0,0,0) 14%,rgba(0,0,0,.55) 52%,rgba(0,0,0,.92) 100%)}.lamp-flood{position:absolute;pointer-events:none;visibility:hidden;border-radius:50%;transform:scale(.02);will-change:transform,opacity;background:radial-gradient(circle closest-side,#fff6e0 0,#fbf1de 18%,#f6efe6 44%,#f6efe6 60%,rgba(246,239,230,0) 100%)}.lamp-svg{position:relative;height:min(72vh,680px);height:min(72dvh,680px);width:auto;overflow:visible;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;filter:brightness(.78)}.lamp-svg .lamp-beam,.lamp-svg .lamp-lit{opacity:0}.lamp-sway.is-swaying{animation:lamp-sway 5s ease-in-out infinite alternate;transform-origin:170px 150px}@keyframes lamp-sway{0%{transform:rotate(-1.4deg)}to{transform:rotate(1.4deg)}}.lamp-cord{cursor:grab;outline:none}.lamp-cord:active{cursor:grabbing}.lamp-cord .lamp-hit{fill:transparent;pointer-events:all;stroke:none}.lamp-cord:focus-visible .lamp-hit{stroke:#ffd99a;stroke-width:1.5;stroke-dasharray:3 3}.lamp-pulse{animation:lamp-pulse 2.6s ease-in-out infinite;transform-origin:170px 262px}@keyframes lamp-pulse{0%,to{opacity:0;transform:scale(.8)}50%{opacity:.55;transform:scale(1.25)}}.lamp-hint{position:absolute;z-index:2;pointer-events:none;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom, 0px));display:flex;justify-content:center;opacity:0;transform:translateY(10px);transition:opacity .9s ease,transform .9s ease}.lamp-hint.show{opacity:1;transform:none}.lamp-hint span{max-width:100%;box-sizing:border-box;color:#ffe3b8;background:rgba(20,14,6,.62);border:1px solid rgba(255,214,150,.28);border-radius:999px;padding:10px 18px;font-size:15px;line-height:1.4;text-align:center;text-wrap:balance}.lamp-hint span:empty{display:none}@media (prefers-reduced-motion:reduce){.lamp-pulse,.lamp-sway.is-swaying{animation:none}}.lamp-ready{position:absolute;z-index:3;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .6s ease}.lamp-ready.show{opacity:1}.lamp-ready-card{box-sizing:border-box;width:min(86vw,340px);padding:22px 26px 20px;text-align:center;border-radius:22px;color:#1b2a41;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.85);box-shadow:0 18px 50px rgba(120,80,20,.28),0 0 0 6px rgba(255,214,150,.22);backdrop-filter:blur(14px);transform:translateY(14px) scale(.94);transition:transform .7s cubic-bezier(.2,.9,.3,1.2)}.lamp-ready.show .lamp-ready-card{transform:none}.lamp-ready-title{font-size:clamp(1.35rem,5.4vw,1.75rem);font-weight:800;letter-spacing:.01em;line-height:1.25}.lamp-ready.done .lamp-ready-title{background:linear-gradient(90deg,#0ea5e9,#6366f1,#d946ef);-webkit-background-clip:text;background-clip:text;color:transparent;animation:lamp-ready-pop .6s cubic-bezier(.2,.9,.3,1.4) both}.lamp-ready-sub{margin-top:6px;font-size:.9rem;font-weight:500;color:#4a5a72}.lamp-ready-track{margin:16px auto 0;width:100%;height:4px;border-radius:999px;overflow:hidden;background:rgba(27,42,65,.12)}.lamp-ready-bar{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#38bdf8,#818cf8,#e879f9)}.lamp-ready.show .lamp-ready-bar{animation:lamp-ready-fill 1.2s ease-out forwards}.lamp-ready.done .lamp-ready-bar{animation:none;width:100%}@keyframes lamp-ready-fill{0%{width:0}to{width:88%}}@keyframes lamp-ready-pop{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.lamp-ready,.lamp-ready-card{transition:none}.lamp-ready.done .lamp-ready-title{animation:none}}