@keyframes gradientMove{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes floatOrb{0%{transform:translateY(0)}50%{transform:translateY(-18px)}to{transform:translateY(0)}}:root{--header-h: 96px;--header-h-fixed: var(--header-h);--btn-purple:#a78bfa;--btn-purple-hover:#9a86f7;--btn-purple-press:#8b75f4;--btn-text:#0b0b0b;--btn-shadow: rgba(0,0,0,.18);--lilac:#c8b5ff;--bg-a:#1a1a1d;--bg-b:#2c2f33;--bg-c:#3a3f44;--bg-d:#1f2125;--ink:#ffffff;--muted:#e7edf6;--band-py: 22px;--cube-size: min(340px, 62vw);--cube-perspective: 1200px}section.gallery-page{min-height:100vh;padding:calc(var(--header-h-fixed) + 36px) 200px 120px;color:var(--ink);background:linear-gradient(135deg,var(--bg-a),var(--bg-b),var(--bg-c),var(--bg-d));background-size:400% 400%;animation:gradientMove 18s ease infinite;position:relative;overflow:hidden}.gallery-page>header,.gallery-page .gallery-hero,.gallery-page .title-wrap,.gallery-page .filters{background:transparent!important;box-shadow:none!important;border:none!important;outline:none!important}.bg-orbs .orb{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(40px);opacity:.2;z-index:0}.bg-orbs .o1{top:-80px;left:-60px;background:#8b5cf6;animation:floatOrb 11s ease-in-out infinite}.bg-orbs .o2{bottom:-120px;right:-90px;background:#8b5cf6;animation:floatOrb 13s ease-in-out infinite}.bg-orbs .o3{top:30%;right:20%;background:#8b5cf6;width:300px;height:300px;opacity:.16;animation:floatOrb 15s ease-in-out infinite}.bg-orbs .noise{position:absolute;inset:0;pointer-events:none;opacity:.06;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E")}.gallery-hero{position:relative;z-index:1;display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-end}.title-wrap h1{margin:0;line-height:1;display:flex;flex-direction:column;gap:6px;text-transform:uppercase;letter-spacing:1px}.title-wrap h1 span{font-size:clamp(2.2rem,3.8vw,3.2rem);font-weight:900}.title-wrap p{margin:8px 0 0;color:var(--muted);max-width:58ch}.filters{display:flex;gap:10px;flex-wrap:wrap}.btn-purple{background:var(--btn-purple);color:var(--btn-text);border:none;border-radius:999px;padding:10px 18px;font-weight:800;line-height:1;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s,filter .15s;box-shadow:0 2px 0 var(--btn-shadow),0 6px 18px #a78bfa40}.btn-purple:hover{background:var(--btn-purple-hover);transform:translateY(-1px);box-shadow:0 3px 0 var(--btn-shadow),0 10px 22px #a78bfa52}.btn-purple:active{background:var(--btn-purple-press);transform:translateY(0);box-shadow:0 1px 0 var(--btn-shadow),0 4px 12px #a78bfa38}.btn-purple:focus-visible{outline:3px solid #c4b5fd;outline-offset:3px}.chip{font-size:.95rem}.chip.active{background:var(--btn-purple-press);color:var(--btn-text)}.media-icons{position:fixed;top:50%;right:22px;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:5000;pointer-events:auto}.media-icons a{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;text-decoration:none;background:#7157bd;color:#fff;border:none;box-shadow:none;transition:transform .18s,opacity .18s}.media-icons a:hover{transform:translateY(-1px) scale(1.03);opacity:.9}#lightbox{position:fixed;inset:0;display:none;z-index:10000}#lightbox.open{display:block}#lightbox .lb-bg{position:absolute;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#lightbox .lb-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92vw,1100px);background:#000000a6;border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:16px 54px;color:#fff;box-shadow:0 20px 60px #00000080}#lightbox img{width:100%;height:auto;max-height:70vh;object-fit:contain;border-radius:8px}#lightbox figcaption{margin-top:10px;color:var(--muted);font-size:.98rem}#lightbox .lb-close,#lightbox .lb-prev,#lightbox .lb-next{all:unset;position:absolute;top:16px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#ffffff24;border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer}#lightbox .lb-close{right:16px}#lightbox .lb-prev,#lightbox .lb-next{top:50%;transform:translateY(-50%)}#lightbox .lb-prev{left:12px}#lightbox .lb-next{right:12px}#lightbox .lb-close:hover,#lightbox .lb-prev:hover,#lightbox .lb-next:hover{background:#ffffff38}body.header-scrolled .site-header{background:#141414f5!important;-webkit-backdrop-filter:saturate(1.05) blur(8px);backdrop-filter:saturate(1.05) blur(8px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 24px #00000040;padding-top:var(--band-py);padding-bottom:var(--band-py)}body.header-scrolled .site-header .navigation .navigation-items a:before{bottom:-6px}@media(max-width:1040px){:root{--band-py:16px}body.header-scrolled .site-header{padding-left:20px;padding-right:20px}}.cube-zone{position:relative;z-index:2;margin:-30px auto 8px;display:grid;place-items:center;gap:14px}.cube-stage{width:var(--cube-size);height:var(--cube-size);perspective:var(--cube-perspective);perspective-origin:50% 50%;position:relative;isolation:isolate;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.cube-stage.dragging{cursor:grabbing}.cube{position:absolute;inset:0;margin:auto;width:var(--cube-size);height:var(--cube-size);transform-style:preserve-3d;transition:transform .2s ease;will-change:transform}.cube .face{position:absolute;width:100%;height:100%;overflow:hidden;box-shadow:0 20px 40px #00000059,inset 0 0 0 1px #ffffff1f;border:none;cursor:inherit;outline:none;transform-style:preserve-3d;backface-visibility:hidden;image-rendering:auto;filter:saturate(1.06) contrast(1.03)}.cube .face .face-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.cube .face:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,#0a0a0cad,#0a0a0c00 60%);mix-blend-mode:luminosity;pointer-events:none}.cube .face .vis-label{position:absolute;left:12px;top:12px;z-index:2;padding:6px 10px;border-radius:10px;font-weight:800;font-size:.9rem;letter-spacing:.02em;color:#0b0b0b;background:var(--btn-purple);box-shadow:0 2px 0 var(--btn-shadow),0 6px 18px #a78bfa40;pointer-events:none}.cube .face .desc-label{position:absolute;left:12px;bottom:12px;z-index:2;max-width:calc(100% - 24px);padding:8px 10px;border-radius:12px;font-weight:700;font-size:.86rem;line-height:1.2;color:#0b0b0b;background:var(--lilac);box-shadow:0 2px 0 var(--btn-shadow),0 8px 22px #c8b5ff47;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.cube .front{transform:translateZ(calc(var(--cube-size)/2))}.cube .back{transform:rotateY(180deg) translateZ(calc(var(--cube-size)/2))}.cube .right{transform:rotateY(90deg) translateZ(calc(var(--cube-size)/2))}.cube .left{transform:rotateY(-90deg) translateZ(calc(var(--cube-size)/2))}.cube .top{transform:rotateX(90deg) translateZ(calc(var(--cube-size)/2))}.cube .bottom{transform:rotateX(-90deg) translateZ(calc(var(--cube-size)/2))}.cube .face:hover{box-shadow:0 24px 56px #00000070,inset 0 0 0 1px #ffffff2e}.cube .face.selected{outline:2px solid rgba(200,181,255,.8);box-shadow:0 28px 72px #00000080,0 0 0 6px #c8b5ff2e,inset 0 0 0 1px #fff3}.cube .face:focus-visible{outline:3px solid #ffffff;outline-offset:2px}.cube-message{position:relative;min-height:0;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;background:#0f1216b8;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 14px;color:#e7edf6;font-size:.98rem;max-width:min(720px,90vw);text-align:center;box-shadow:0 14px 40px #00000052}.cube-message.on{opacity:1;transform:translateY(0)}.cube-hint{color:var(--muted);font-size:.92rem;opacity:.9;text-align:center;-webkit-user-select:none;user-select:none}.cube-actions{display:flex;gap:10px;align-items:center;justify-content:center}.btn-ghost{all:unset;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(255,255,255,.16);color:#e7edf6;background:#ffffff0f;transition:transform .15s,background .15s,border-color .15s,opacity .15s}.btn-ghost:hover{transform:translateY(-1px);background:#ffffff1a}.btn-ghost:active{transform:translateY(0);opacity:.9}@media(max-width:980px){:root{--cube-size:min(360px, 78vw)}section.gallery-page{padding:calc(var(--header-h-fixed) + 28px) 24px 100px}.cube-zone{margin-top:24px}}@media(max-width:600px){:root{--cube-size:min(300px, 86vw)}.cube-hint{font-size:.86rem}.cube .face .vis-label{font-size:.84rem;padding:6px 8px}.cube .face .desc-label{font-size:.8rem;padding:7px 9px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis}}.panel{padding:88px 20px;background:#0f1216;color:#e9eaf3;border-top:1px solid rgba(255,255,255,.06)}.panel .container{max-width:1100px;margin:0 auto}.panel h2{font-size:clamp(1.6rem,3vw,2.3rem);margin:0 0 12px;font-weight:900;color:#fff}.panel h2 span{color:#c8b5ff;font-weight:900}.panel p{max-width:80ch;margin:0 0 22px;color:#dfe3f2}.panel.contact{background:#000,transparent 60%,#0f1216;padding:96px 20px;border-top:1px solid rgba(255,255,255,.06);position:relative;overflow:hidden}.panel.contact .container{max-width:1100px;margin:0 auto;position:relative}.panel.contact .kicker{display:inline-block;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#c8b5ff;margin-bottom:10px;opacity:.9}.panel.contact h2{font-size:clamp(2rem,4vw,3rem);font-weight:900;color:#fff;margin:0 0 14px;line-height:1.05}.panel.contact h2 span{background:linear-gradient(90deg,#c8b5ff,#a78bfa);-webkit-background-clip:text;background-clip:text;color:transparent}.panel.contact p{max-width:68ch;margin:0 0 24px;color:#d9dcea}.panel.contact h2:after{content:"";display:block;width:72px;height:3px;margin-top:14px;border-radius:999px;background:linear-gradient(90deg,#c8b5ff,#a78bfa);opacity:.9}.panel.contact .actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.cta.btn-purple{background:var(--btn-purple);color:var(--btn-text);border:none;border-radius:999px;padding:12px 24px;font-weight:800;font-size:1rem;line-height:1;text-decoration:none;display:inline-block;cursor:pointer;box-shadow:0 2px 0 var(--btn-shadow),0 6px 18px #a78bfa40;transition:transform .15s,box-shadow .15s,background .15s}.cta.btn-purple:hover{background:var(--btn-purple-hover);transform:translateY(-1px);box-shadow:0 3px 0 var(--btn-shadow),0 10px 22px #a78bfa52}.cta.btn-purple:active{background:var(--btn-purple-press);transform:translateY(0);box-shadow:0 1px 0 var(--btn-shadow),0 4px 12px #a78bfa38}.cta.btn-purple:focus-visible{outline:3px solid #c4b5fd;outline-offset:3px}@media(max-width:980px){.panel{padding:72px 20px}}@media(max-width:600px){.panel{padding:64px 16px}}.cube-zone{min-height:calc(var(--cube-size) + 120px)}.cube-hint{position:absolute;left:50%;transform:translate(-50%);top:calc(var(--cube-size) + 250px);margin:0!important;text-align:center}.cube-actions{position:absolute;left:50%;transform:translate(-50%);top:calc(var(--cube-size) + 300px);margin:0!important}@media(max-width:600px){.cube-zone{min-height:calc(var(--cube-size) + 100px)}.cube-hint{top:calc(var(--cube-size) + 8px);width:92vw}.cube-actions{top:calc(var(--cube-size) + 52px)}}.cube-actions .btn-ghost{background:#b39afc;color:#0b0b0b;font-weight:700;border:none;border-radius:999px;padding:12px 24px;box-shadow:0 0 12px #b39afc73;transition:transform .2s,box-shadow .2s,background .2s}.cube-actions .btn-ghost:hover{background:#a78bfa;box-shadow:0 0 18px #a78bfa99;transform:translateY(-2px)}.cube-actions .btn-ghost:active{background:#9a7bf5;transform:translateY(0);box-shadow:0 0 10px #a78bfa80}.ghost{color:var(--lilac);text-decoration:none;font-weight:600;transition:color .2s ease}.ghost:hover{color:#a78bfa}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;padding:10px 14px;background:#fff;color:#000;border-radius:8px;z-index:99999;outline:3px solid #000}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}section.gallery-page{background-size:auto;animation:none!important}.bg-orbs .orb{animation:none!important}}
