html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{--golden-space: 0;--golden-space-edge: 0;background:radial-gradient(ellipse at 51% 46%,rgba(255,190,54,var(--golden-space)) 0%,rgba(214,143,24,calc(var(--golden-space) * .42)) 30%,transparent 68%),radial-gradient(ellipse at 18% 70%,rgba(224,160,38,var(--golden-space-edge)) 0%,transparent 58%),radial-gradient(ellipse at 82% 28%,rgba(236,174,49,calc(var(--golden-space-edge) * .72)) 0%,transparent 54%),radial-gradient(ellipse at 50% 43%,#1f2a4cad,#0e12277a 30%,#04060f2e 62%,#01020700),radial-gradient(ellipse at 15% 18%,rgba(22,42,78,.34) 0%,rgba(8,13,29,.08) 42%,transparent 72%),radial-gradient(ellipse at 86% 79%,rgba(39,22,64,.28) 0%,rgba(9,7,21,.08) 40%,transparent 70%),linear-gradient(145deg,#02030a,#060816 48%,#010207)}main{width:100%;height:100%}canvas{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.photo-modal-backdrop{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:24px;background:#02030aa3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:photo-backdrop-in .32s ease-out both;touch-action:auto}.photo-modal{position:relative;width:min(86vw,430px);animation:photo-frame-in .42s cubic-bezier(.2,.8,.2,1) both}.photo-modal-close{position:absolute;z-index:4;top:-14px;right:-14px;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,232,126,.72);border-radius:50%;background:#171126;color:#ffe477;box-shadow:0 8px 24px #00000073;cursor:pointer;font:500 28px/1 system-ui,sans-serif;transition:background .18s ease,color .18s ease,transform .18s ease}.photo-modal-close:hover,.photo-modal-close:focus-visible{background:#ffe477;color:#171126;outline:none;transform:rotate(90deg)}.photo-frame{position:relative;padding:18px;border:1px solid rgba(255,226,110,.82);background:linear-gradient(135deg,rgba(255,241,177,.12),transparent 28%),linear-gradient(315deg,rgba(255,210,31,.1),transparent 34%),#171126;box-shadow:0 0 0 7px #ffe06814,0 26px 80px #00000094,0 0 40px #ffd21f1f}.photo-frame:before,.photo-frame:after{position:absolute;content:"";pointer-events:none}.photo-frame:before{inset:8px;border:1px solid rgba(255,241,177,.34)}.photo-frame:after{inset:13px;border:1px solid rgba(255,210,31,.18)}.photo-frame-inner{position:relative;z-index:1;display:grid;min-height:min(64vh,540px);place-items:center;overflow:hidden;border:7px solid #3d2c2e;background:radial-gradient(circle at 50% 34%,rgba(255,210,31,.16),transparent 48%),#0a0b16;box-shadow:inset 0 0 0 1px #fff1b147,inset 0 0 34px #000000a3}.photo-frame-inner>img,.photo-placeholder img{display:block;width:100%;height:100%;object-fit:contain}.photo-placeholder{position:relative;display:grid;width:100%;height:100%;min-height:min(64vh,540px);place-items:center}.photo-placeholder img{width:78%;height:78%;opacity:.86;filter:saturate(.92) drop-shadow(0 12px 20px rgba(0,0,0,.48))}.photo-placeholder span{position:absolute;right:14px;bottom:12px;left:14px;color:#fff1b1b8;font:500 11px/1.2 system-ui,sans-serif;letter-spacing:.2em;text-align:center;text-transform:uppercase}.photo-flower{position:absolute;z-index:3;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle,#8d5b1d 0 19%,transparent 21%),repeating-conic-gradient(from 4deg,#ffe477 0 14deg,transparent 14deg 45deg);filter:drop-shadow(0 5px 7px rgba(0,0,0,.35));animation:photo-flower-breathe 2.8s ease-in-out infinite}.photo-flower--top{top:-17px;left:50%;transform:translate(-50%)}.photo-flower--left{top:50%;left:-17px;animation-delay:-.8s;transform:translateY(-50%) rotate(-12deg)}.photo-flower--right{top:50%;right:-17px;animation-delay:-1.6s;transform:translateY(-50%) rotate(12deg)}.photo-flower--bottom{bottom:-17px;left:50%;animation-delay:-2.2s;transform:translate(-50%)}@keyframes photo-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes photo-frame-in{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes photo-flower-breathe{0%,to{filter:drop-shadow(0 5px 7px rgba(0,0,0,.35))}50%{filter:drop-shadow(0 5px 12px rgba(255,210,31,.38))}}@media(max-width:600px){.photo-modal-backdrop{padding:20px}.photo-frame{padding:13px}.photo-frame-inner,.photo-placeholder{min-height:min(68vh,500px)}}
