:root{color:#202227;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100svh}button,input,textarea,select{font:inherit}.gallery-page{color:#202227;background:radial-gradient(circle at 50% 48%,#fff,#0000 48%),radial-gradient(circle at 80% 22%,#d6f9ff7a,#0000 30%),radial-gradient(circle at 18% 76%,#ffe5fb57,#0000 28%),linear-gradient(#fff 0% 56%,#fbfdff 100%);height:100svh;min-height:100svh}.utility-controls{z-index:4;justify-items:end;gap:8px;display:grid;position:fixed;top:clamp(14px,2.4vw,28px);right:clamp(14px,2.4vw,32px)}.sound-toggle,.gate-return{color:#2a3840ad;letter-spacing:.08em;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);cursor:pointer;background:#ffffff8a;border:1px solid #a8c6d461;border-radius:999px;min-width:86px;height:34px;font-size:.68rem;font-weight:700;box-shadow:0 12px 36px #608ca01f,inset 0 1px #fffc}.sound-toggle.is-off{color:#525c627a;background:#ffffff5c}.gate-return{min-width:112px}.entry-gate{z-index:10;background:radial-gradient(circle,#defaffb8,#0000 28%),radial-gradient(circle,#fff 0% 54%,#f8fdff 100%);place-items:center;transition:opacity .72s,transform .72s;display:grid;position:fixed;inset:0}.entry-gate.is-reforming{animation:.56s both gateOverlayReform}.entry-gate.is-over-gallery{pointer-events:none;background:0 0}.entry-gate.is-over-gallery.is-reforming{animation:none}.entry-gate.is-over-gallery .gate-button.is-reforming{background:radial-gradient(circle,#ffffffc2 0%,#ecfcff61 58%,#ffffff14 100%);box-shadow:0 28px 90px #61aecd24,inset 0 0 36px #ffffff94}.entry-gate.is-return-forming{background:radial-gradient(circle,#00cfff2e,#0000 24%),radial-gradient(circle,#fff 0% 58%,#f8fdff 100%)}.entry-gate.is-opening{opacity:0;pointer-events:none;transform:scale(1.08)}.gate-button{aspect-ratio:1;cursor:pointer;touch-action:none;will-change:transform, opacity;background:radial-gradient(circle,#fffffff5 0%,#ecfcff94 58%,#ffffff2e 100%);border:1px solid #8cd2e657;border-radius:999px;width:min(42vw,260px);position:relative;overflow:hidden;box-shadow:0 28px 90px #61aecd2e,inset 0 0 36px #ffffffe0}.gate-button.is-reforming,.entry-gate.is-return-forming .gate-button{opacity:0;animation:.52s cubic-bezier(.2,.9,.2,1) 20ms forwards gateReturnForm;transform:scale(.72)}.entry-gate.is-return-forming .gate-label{opacity:0;animation:.36s .1s forwards gateLabelReturnForm}.gate-button.is-reforming .gate-orbit{animation:9s linear infinite gateSpin,.6s both gateOrbitReform}.gate-button.is-reforming .keyhole{animation:.6s cubic-bezier(.2,.9,.2,1) both keyholeReform}.gate-button.is-reforming .gate-label{opacity:0;animation:.46s .15s forwards gateLabelReturnForm}.gate-button.is-reforming:after{content:"";filter:blur(2px);opacity:0;background:radial-gradient(circle,#00cfff59,#0000 58%),conic-gradient(from 20deg,#00cfff00,#00cfff52,#ff4fd847,#9cff2e2e,#00cfff00);border-radius:999px;animation:.56s both gateParticleReform;position:absolute;inset:-22px}.gate-button:before{content:"";border-radius:inherit;background:conic-gradient(from -90deg, #79e7ff 0deg, #71dfff calc(var(--hold-progress) * .22), #f19af8 calc(var(--hold-progress) * .54), #aa85ff calc(var(--hold-progress) * .82), #8bd8ff var(--hold-progress), #cde8f02e 0);opacity:.86;position:absolute;inset:-1px;-webkit-mask:radial-gradient(circle,#0000 62%,#000 63%);mask:radial-gradient(circle,#0000 62%,#000 63%)}.gate-button.is-holding{box-shadow:0 32px 110px #00cfff38,inset 0 0 44px #ffffffeb}.gate-button.is-ready{animation:.3s cubic-bezier(.25,0,.2,1) both gateReady,.3s linear both gateBodyShake}.gate-button.is-unlocked{animation:.56s cubic-bezier(.2,.9,.2,1) both gateUnlock}.gate-orbit{will-change:transform, opacity;border:1px solid #00cfff52;border-radius:999px;animation:9s linear infinite gateSpin;position:absolute;inset:12%;box-shadow:0 0 22px #ff4fd82e,inset 0 0 18px #9cff2e24}.keyhole{clip-path:polygon(50% 0,82% 22%,66% 100%,34% 100%,18% 22%);filter:drop-shadow(0 0 12px #00cfff61);will-change:transform, opacity;background:radial-gradient(circle at 50% 20%,#00cfffe0 0 18px,#0000 19px),linear-gradient(#00cfffe0,#ff4fd894);width:38px;height:82px;transition:transform .3s;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.gate-button.is-unlocked .keyhole{filter:drop-shadow(0 0 12px #00cfff75)drop-shadow(0 0 14px #ff4fd82e);animation:.56s cubic-bezier(.2,.9,.2,1) both keyholeUnlock}.gate-button.is-ready .keyhole{filter:drop-shadow(0 0 14px #00cfff9e);animation:.3s cubic-bezier(.25,0,.2,1) both keyholePress}.gate-button.is-unlocked .gate-orbit{animation:4.8s linear infinite gateSpin,.34s both gateOrbitKick}.gate-label{color:#2a3840a3;letter-spacing:.18em;white-space:nowrap;font-size:.72rem;font-weight:700;position:absolute;bottom:19%;left:50%;transform:translate(-50%)}@keyframes gateSpin{to{transform:rotate(360deg)}}@keyframes gateOverlayReform{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes gateButtonReform{0%{opacity:0;filter:blur(14px)brightness(1.35);transform:scale(.24)}48%{opacity:1;filter:blur()brightness(1.1);transform:scale(1.12)}72%{transform:scale(.96)}to{opacity:1;filter:blur()brightness();transform:scale(1)}}@keyframes gateOrbitReform{0%{opacity:0;transform:scale(.18)}48%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes keyholeReform{0%{opacity:0;transform:translate(-50%,-50%)scale(.32)}45%{opacity:1;transform:translate(-50%,-50%)scale(1.18)}70%{transform:translate(-50%,-50%)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes gateParticleReform{0%{opacity:0;transform:scale(.28)rotate(-24deg)}42%{opacity:.9;transform:scale(1.08)rotate(12deg)}to{opacity:0;transform:scale(1.28)rotate(32deg)}}@keyframes gateReturnForm{0%{opacity:0;filter:blur(5px)brightness(1.25);transform:scale(.55)}48%{opacity:.82;filter:blur(1px)brightness(1.12);transform:scale(1.08)}to{opacity:1;filter:blur()brightness();transform:scale(1)}}@keyframes gateLabelReturnForm{0%{opacity:0;transform:translate(-50%,4px)scale(.96)}to{opacity:.74;transform:translate(-50%)scale(1)}}@keyframes gateUnlock{0%{transform:scale(.9)rotate(0)}20%{transform:scale(.84)rotate(-2deg)}42%{transform:scale(1.06)rotate(1.4deg)}62%{transform:scale(.98)rotate(-1deg)}to{transform:scale(1.18)rotate(0)}}@keyframes gateReady{0%{transform:scale(1)}55%{transform:scale(.88)}to{transform:scale(.94)}}@keyframes keyholePress{0%{transform:translate(-50%,-50%)scale(1)}60%{transform:translate(-50%,-50%)scale(.74)}to{transform:translate(-50%,-50%)scale(.88)}}@keyframes keyholeUnlock{0%{transform:translate(-50%,-50%)scale(.88)rotate(0)}38%{transform:translate(-50%,-50%)scale(1.18)rotate(18deg)}68%{transform:translate(-50%,-50%)scale(1.04)rotate(9deg)}to{transform:translate(-50%,-50%)scale(1.28)rotate(12deg)}}@keyframes gateBodyShake{0%,to{translate:0}22%{translate:-2px 1px}44%{translate:2px -1px}66%{translate:-1px -1px}82%{translate:1px 1px}}@keyframes gateOrbitKick{0%{transform:scale(.98)}45%{transform:scale(1.06)}to{transform:scale(1)}}.gallery-hero{isolation:isolate;height:100svh;min-height:100svh;transition:opacity .42s;position:relative;overflow:hidden}.entry-space-ripple{z-index:4;aspect-ratio:1;pointer-events:none;opacity:0;background:radial-gradient(circle,#fffffff5 0 10%,#75e8ff94 25%,#ff75e852 42%,#a76bff38 55%,#0000 70%),conic-gradient(from -40deg,#00cfff00,#00cfff47,#ff4fd838,#9cff2e1f,#00cfff00);border-radius:999px;width:28vmin;animation:1.06s cubic-bezier(.14,.86,.18,1) both entrySpaceRipple;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.16)}.entry-space-ripple:before,.entry-space-ripple:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0}.entry-space-ripple:before{border:1px solid #46daff9e;animation:1.06s cubic-bezier(.14,.86,.18,1) both entryPortalRing;transform:scale(.58)}.entry-space-ripple:after{clip-path:polygon(50% 0,82% 24%,66% 100%,34% 100%,18% 24%);opacity:0;background:radial-gradient(circle at 50% 22%,#fffffffa 0 28%,#0000 29%),linear-gradient(#4be0ffd1,#ee9aff85);border-radius:999px;width:24%;height:48%;animation:.76s ease-out both entryKeyholePulse;top:48%;left:50%;transform:translate(-50%,-50%)scale(.48)}.entry-space-ripple>span{display:none}@keyframes entrySpaceRipple{0%{opacity:0;transform:translate(-50%,-50%)scale(.16)}18%{opacity:1;transform:translate(-50%,-50%)scale(.42)}56%{opacity:.6;transform:translate(-50%,-50%)scale(2.65)}to{opacity:0;transform:translate(-50%,-50%)scale(6.1)}}@keyframes entryPortalRing{0%{opacity:0;transform:scale(.28)}24%{opacity:.96}to{opacity:0;transform:scale(6.6)}}@keyframes entryKeyholePulse{0%{opacity:0;transform:translate(-50%,-50%)scale(.44)}28%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(2.2)}}.gallery-hero.is-gate-waiting{opacity:1}.gallery-hero.is-gate-waiting canvas{pointer-events:none}.gallery-hero.is-returning{opacity:1;filter:none}.gallery-hero.is-returning:after{content:"";z-index:5;pointer-events:none;background:radial-gradient(circle,#fff,#0000 26%),radial-gradient(circle,#dff9ff80,#0000 44%),#ffffffbd;animation:1.05s both returnToGateFlash;position:absolute;inset:0}@keyframes returnToGateFlash{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1.18)}}.gallery-hero:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(90deg,#ffffffe6,#0000 24% 76%,#ffffffe6),radial-gradient(circle,#ecfaff3d,#0000 48%);position:absolute;inset:0}.gallery-copy{z-index:2;text-align:left;max-width:260px;position:absolute;top:clamp(14px,2.2vw,28px);left:clamp(14px,2.4vw,32px)}.eyebrow{color:#636c74b3;letter-spacing:.14em;text-transform:uppercase;margin:0 0 3px;font-size:.64rem;font-weight:700}.gallery-copy h1{color:#181c20b8;margin:0;font-family:Times New Roman,Georgia,serif;font-size:clamp(1rem,1.8vw,1.38rem);font-weight:400;line-height:1.05}.gallery-hero canvas{touch-action:none;width:100%;height:100svh;min-height:100svh;display:block}.art-viewer-backdrop{z-index:3;box-sizing:border-box;-webkit-backdrop-filter:blur(7px)saturate(.92);backdrop-filter:blur(7px)saturate(.92);background:radial-gradient(circle at 50% 48%,#ffffffad,#0000 56%),radial-gradient(circle,#d6f6ff33,#0000 64%),#ffffff47;place-items:center;padding:clamp(18px,4vw,56px);animation:.46s both viewerBackdropIn;display:grid;position:absolute;inset:0}.art-viewer{box-sizing:border-box;-webkit-backdrop-filter:blur(28px)saturate(1.18);backdrop-filter:blur(28px)saturate(1.18);text-align:left;width:min(1180px,100%);max-height:min(760px,100svh - 48px);transform-origin:var(--viewer-origin-x) var(--viewer-origin-y);background:linear-gradient(135deg,#ffffffc7,#f3fcff7a),#ffffff8a;border:1px solid #ffffffd1;border-radius:8px;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(20px,3vw,38px);padding:clamp(18px,3vw,34px);animation:.56s cubic-bezier(.2,.8,.2,1) both viewerPanelIn;display:grid;position:relative;overflow:hidden;box-shadow:0 28px 90px #586c7e29,inset 0 1px #ffffffd6}.art-viewer:before{content:"";z-index:0;aspect-ratio:1;filter:blur(4px);pointer-events:none;background:radial-gradient(circle,#ffffffbd 0%,#caf7ff47 34%,#e2d3ff29 54%,#0000 72%);border-radius:999px;width:min(58vw,620px);animation:.82s both viewerHaloIn;position:absolute;top:50%;left:clamp(16px,5vw,72px);transform:translateY(-50%)}.viewer-light-trail{left:var(--viewer-origin-x);top:var(--viewer-origin-y);background:#00cfff;border-radius:999px;width:4px;height:4px;animation:.52s ease-out both viewerLightTrail;position:absolute;box-shadow:0 0 24px #00cfffbd,0 0 46px #ff4fd86b}.art-viewer-backdrop.is-closing{animation:.52s both viewerBackdropOut}.art-viewer-backdrop.is-closing .art-viewer{animation:.52s cubic-bezier(.4,0,.2,1) both viewerPanelOut}.art-viewer-backdrop.is-closing .viewer-light-trail{animation:.52s ease-in both viewerLightTrailOut}.viewer-close{z-index:4;color:#242c34b8;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffad;border:1px solid #96aab847;border-radius:999px;place-items:center;width:36px;height:36px;padding:0;font-size:0;line-height:1;display:grid;position:absolute;top:14px;right:14px}.viewer-close:before,.viewer-close:after{content:"";transform-origin:50%;background:currentColor;border-radius:999px;width:15px;height:1.7px;position:absolute;top:50%;left:50%}.viewer-close:before{transform:translate(-50%,-50%)rotate(45deg)}.viewer-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.viewer-image,.viewer-copy{z-index:1;position:relative}@keyframes viewerBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes viewerPanelIn{0%{opacity:0;filter:blur(18px);transform:scale(.08)}to{opacity:1;filter:blur();transform:scale(1)}}@keyframes viewerHaloIn{0%{opacity:0;filter:blur(18px);transform:translateY(-50%)scale(.86)}to{opacity:1;filter:blur(4px);transform:translateY(-50%)scale(1)}}@keyframes viewerLightTrail{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(160)}}@keyframes viewerBackdropOut{0%{opacity:1}to{opacity:0}}@keyframes viewerPanelOut{0%{opacity:1;filter:blur();transform:scale(1)}to{opacity:0;filter:blur(18px);transform:scale(.08)}}@keyframes viewerLightTrailOut{0%{opacity:.8;transform:translate(-50%,-50%)scale(120)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.viewer-image{object-fit:contain;background:#ffffff3d;border-radius:6px;width:100%;max-height:calc(100svh - 128px);animation:.78s cubic-bezier(.2,.8,.2,1) 90ms both viewerImageReveal;box-shadow:0 18px 58px #444c5421}.viewer-copy{scrollbar-gutter:stable;overscroll-behavior:contain;align-self:center;max-height:calc(100svh - 148px);padding-right:24px;animation:.72s cubic-bezier(.2,.8,.2,1) .24s both viewerCopyReveal;overflow-y:auto}@keyframes viewerImageReveal{0%{opacity:0;filter:blur(14px);transform:scale(.965)translateY(10px)}to{opacity:1;filter:blur();transform:scale(1)translateY(0)}}@keyframes viewerCopyReveal{0%{opacity:0;filter:blur(8px);transform:translateY(14px)}to{opacity:1;filter:blur();transform:translateY(0)}}.bubble-label{color:#6a747cc2;letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;font-size:.72rem;font-weight:700}.viewer-copy h2{color:#17191ddb;margin:0 0 8px;font-family:Times New Roman,Georgia,serif;font-size:clamp(2rem,3vw,3.4rem);font-weight:400;line-height:1.1}.viewer-description{color:#4a535bd1;white-space:pre-line;margin:0;padding-right:10px;font-size:1rem;line-height:1.8}.sanctuary-toast{z-index:35;color:#263744d1;letter-spacing:.08em;text-align:center;white-space:normal;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:none;background:#ffffffb8;border:1px solid #84b9d66b;border-radius:999px;max-width:min(88vw,460px);padding:11px 18px;font-size:.82rem;line-height:1.45;animation:3.1s both sanctuaryToast;position:fixed;top:58%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 54px #5c91b02e}@keyframes sanctuaryToast{0%{opacity:0;filter:blur(8px);transform:translate(-50%,calc(12px - 50%))}8%,82%{opacity:1;filter:blur();transform:translate(-50%,-50%)}to{opacity:0;filter:blur(8px);transform:translate(-50%,calc(-50% - 10px))}}@media (width<=760px){.gallery-copy{right:20px}.gallery-copy h1{max-width:14ch}.art-viewer-backdrop{padding:14px}.art-viewer{grid-template-columns:1fr;gap:16px;max-height:calc(100svh - 28px);padding:16px;overflow:auto}.viewer-image{max-height:58svh}.viewer-copy{max-height:34svh;padding-right:0}}
