:root{--purple:#8046d1;--deep:#5422a5;--pink:#ffe0ff;--orange:#ee592b;--ink:#100d12;font-family:var(--brand-font,Arial,sans-serif);font-synthesis:none;color:#fff;background:var(--page-background,var(--ink))}*{box-sizing:border-box}body{min-height:100vh;place-items:center;min-height:100svh;margin:0;display:grid}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}[hidden]{display:none!important}.screen[data-view=welcome] [data-for]:not([data-for*=welcome]),.screen[data-view=welcome] [data-hide*=welcome]{display:none}.screen{isolation:isolate;aspect-ratio:390/844;background:var(--deep);width:min(100vw,46.2085svh);position:relative;overflow:hidden;container-type:inline-size}.backdrop{z-index:-2;width:100%;height:100%;position:absolute;inset:0}.masthead{z-index:8;justify-content:space-between;align-items:center;display:flex;position:absolute;top:5.2%;left:8%;right:8%}.event-logo{flex-shrink:0;width:32cqw;height:6.5cqw;overflow:hidden}.event-logo img{width:100%;height:auto;display:block}.experience-name{letter-spacing:.025em;white-space:nowrap;font-size:3.3cqw;font-weight:700;position:absolute;top:11cqw;left:0}.icon-button{color:var(--pink);background:0 0;border:0;place-items:center;width:10cqw;height:10cqw;padding:2.6cqw;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.retake{margin-top:-1cqw;margin-right:-2cqw}.invitation{pointer-events:none;position:absolute;inset:0}.invitation h1{letter-spacing:-.055em;color:var(--pink);text-shadow:2px 3px 0 var(--ink);z-index:2;margin:0;font-size:10.7cqw;font-style:italic;font-weight:900;line-height:.9;position:absolute;top:12.5%;left:8%;right:7%}.invitation h1 em{font:inherit;color:var(--yellow,#fa0)}.invitation-copy{color:var(--pink);margin:0;font-size:3.4cqw;line-height:1.5;position:absolute;top:27.2%;left:8%;right:8%}.hero-portrait{aspect-ratio:2/3;border:1.2px solid var(--ink);width:84%;height:auto;box-shadow:3px 4px 0 var(--ink);background:var(--ink);margin:0;position:absolute;top:31%;left:8%;overflow:hidden}.hero-portrait img{object-fit:cover;object-position:50% 30%;width:100%;height:100%;display:block}.welcome-actions{z-index:3;position:absolute;bottom:12%;left:8%;right:8%}.primary,.secondary{border:1.2px solid var(--ink);background:var(--pink);color:var(--ink);min-height:13.5cqw;box-shadow:2px 3px 0 var(--ink);justify-content:space-between;align-items:center;gap:3cqw;padding:3.4cqw 4.1cqw;font-size:4.1cqw;font-weight:700;line-height:1.3;text-decoration:none;display:flex}.primary:hover{background:#f9e4ff}.primary svg,.secondary svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:5cqw;height:5cqw}.welcome-actions .primary{width:100%}.welcome-actions p{color:var(--pink);text-align:center;margin:3cqw 0 0;font-size:2.65cqw}.welcome-actions .primary span{font-size:6cqw;font-weight:400}.camera-window{aspect-ratio:2/3;border:1.3px solid var(--ink);background:var(--ink);width:88%;box-shadow:3px 4px 0 var(--ink);z-index:1;position:absolute;top:15.6%;left:6%;overflow:hidden}.portrait-plane{transform-origin:55% 35%;animation:8s ease-in-out infinite camera-sway;position:absolute;inset:0}.portrait{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.helmet-overlay{transform-origin:50%;filter:drop-shadow(1px 3px 1px #100d1233);z-index:2;width:60.5%;height:auto;position:absolute;top:4.5%;left:24.5%;transform:rotate(12deg)}.camera-shade{pointer-events:none;background:linear-gradient(#0000,#100d1299);position:absolute;inset:70% 0 0}.camera-status{text-align:center;z-index:4;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:5%;left:5%;right:5%}.camera-status>span{letter-spacing:-.03em;font-size:5.3cqw;font-weight:700;line-height:1.2}.camera-status small{margin-top:1.5cqw;font-size:2.65cqw}.reveal-status>span{font-size:4cqw}.photo-stamp{background:var(--pink);height:8.5cqw;color:var(--ink);z-index:4;justify-content:space-between;align-items:center;padding:0 4cqw;display:none;position:absolute;bottom:0;left:0;right:0}.photo-stamp span{letter-spacing:-.025em;font-size:2.7cqw;font-weight:700}.photo-stamp b{color:#8a4429;font-size:6cqw;font-weight:400;line-height:1}.face-guide{z-index:3;width:53%;height:39%;position:absolute;top:21%;left:25%}.face-guide i{border-color:var(--pink);border-style:solid;border-width:1.4px 0 0 1.4px;width:5cqw;height:5cqw;position:absolute}.face-guide i:nth-child(2){right:0;transform:rotate(90deg)}.face-guide i:nth-child(3){bottom:0;right:0;transform:rotate(180deg)}.face-guide i:nth-child(4){bottom:0;left:0;transform:rotate(270deg)}.screen[data-view=align] .helmet-overlay,.screen[data-view=recovery] .helmet-overlay,.screen[data-view=multiple] .helmet-overlay{display:none}.screen[data-view=reveal] .helmet-overlay{animation:1.4s cubic-bezier(.22,.7,.15,1) both helmet-land}.screen[data-view=reveal] .portrait-plane{animation:none}.screen[data-view=recovery] .portrait-plane,.screen[data-view=multiple] .portrait-plane{opacity:.25;filter:blur(3px);animation:none}.screen[data-view=processing] .portrait-plane{filter:brightness(.45);animation:none}.capture-dock{z-index:4;justify-content:space-between;align-items:center;gap:8cqw;display:flex;position:absolute;bottom:14%;left:12%;right:12%}.shutter{border:1.3px solid var(--pink);background:0 0;border-radius:50%;flex-shrink:0;place-items:center;width:18cqw;height:18cqw;padding:1.4cqw;display:grid}.shutter span{background:var(--pink);border:1px solid var(--ink);border-radius:50%;width:100%;height:100%;transition:transform .15s;display:block}.shutter:hover span{transform:scale(.94)}.shutter:active span{transform:scale(.84)}.effect-tag{letter-spacing:.08em;color:var(--pink);width:11cqw;font-size:2.4cqw;line-height:1.6}.review-heading{letter-spacing:-.045em;color:var(--pink);text-shadow:1px 2px 0 var(--ink);margin:0;font-size:10.5cqw;font-style:italic;font-weight:900;line-height:1;position:absolute;top:14%;left:8%;right:8%}.screen[data-view=review] .experience-name,.screen[data-view=collection] .experience-name,.screen[data-view=phone] .experience-name{display:none}.screen[data-view=review] .camera-window,.screen[data-view=phone] .camera-window{width:76%;top:22%;left:12%}.screen[data-view=review] .portrait-plane,.screen[data-view=collection] .portrait-plane,.screen[data-view=phone] .portrait-plane{animation:none}.screen[data-view=review] .photo-stamp,.screen[data-view=collection] .photo-stamp,.screen[data-view=phone] .photo-stamp{display:flex}.screen[data-view=review] .camera-shade,.screen[data-view=collection] .camera-shade,.screen[data-view=phone] .camera-shade{display:none}.review-actions{z-index:5;grid-template-columns:1.15fr 1fr;gap:2cqw;display:grid;position:absolute;bottom:13%;left:8%;right:8%}.secondary{border-color:var(--pink);color:var(--pink);box-shadow:none;background:0 0;justify-content:center}.secondary:hover{background:#ffe0ff16}.collection-panel{z-index:4;grid-template-columns:30cqw 1fr;align-items:center;gap:4cqw;display:grid;position:absolute;bottom:12%;left:8%;right:8%}.qr-wrap{border:1px solid var(--ink);box-shadow:2px 3px 0 var(--ink);aspect-ratio:1;background:#fff;padding:2.1cqw;display:block}.qr-wrap img{width:100%;height:100%;display:block}.eyebrow{letter-spacing:.09em;color:var(--pink);font-size:2.15cqw;font-weight:700}.collection-panel h2{letter-spacing:-.045em;margin:1.7cqw 0 2cqw;font-size:4.8cqw;line-height:1.16}.collection-panel p{color:var(--pink);margin:0;font-size:2.5cqw}.countdown{text-align:center;z-index:4;color:var(--pink);flex-direction:column;align-items:center;display:flex;position:absolute;inset:auto 0 2%}.countdown>span{letter-spacing:.1em;font-size:2.9cqw;font-weight:700}.countdown strong{letter-spacing:-.09em;text-shadow:3px 4px 0 var(--ink);padding-right:2cqw;font-size:33cqw;font-style:italic;font-weight:900;line-height:.98;animation:.25s ease-out count-in}.processing{z-index:5;flex-direction:column;justify-content:center;align-items:center;gap:4cqw;display:flex;position:absolute;inset:0}.processing p{text-align:center;margin:0;font-size:3.8cqw;font-weight:700}.loader{border:2px solid #ffe0ff33;border-top-color:var(--orange);border-radius:50%;width:9cqw;height:9cqw;animation:1.2s linear infinite spin;display:block}.recovery{background:var(--ink);border:1px solid var(--pink);text-align:center;z-index:5;color:var(--pink);padding:7cqw 4cqw;position:absolute;top:28%;left:5%;right:5%}.recovery svg{fill:none;width:8cqw;height:8cqw;stroke:var(--orange);stroke-width:1.4px;margin-bottom:4cqw}.recovery h2{letter-spacing:-.045em;margin:0;font-size:5.8cqw;line-height:1.2}.recovery p{color:#fff;margin:2.5cqw 0 0;font-size:2.9cqw;line-height:1.5}.flash{z-index:9;pointer-events:none;opacity:0;background:#fff;position:absolute;inset:0}.screen.is-capturing .flash{animation:.35s ease-out flash}.service-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:29% 8% 22%}.service-state>svg{fill:none;width:11cqw;height:11cqw;stroke:var(--orange);stroke-width:1.4px;margin-bottom:6cqw}.service-state h1{letter-spacing:-.05em;color:var(--pink);margin:0;font-size:8.8cqw;font-style:italic;font-weight:900;line-height:1.1}.service-state p{max-width:70cqw;margin:4cqw 0 8cqw;font-size:3.6cqw;line-height:1.6}.service-state .primary{width:100%}.service-state .loader{margin-bottom:7cqw}.text-button{color:var(--pink);text-underline-offset:.7cqw;background:0 0;border:0;margin-top:3cqw;padding:4cqw;font-size:3.4cqw;text-decoration:underline}footer{z-index:7;justify-content:space-between;align-items:center;gap:3cqw;display:flex;position:absolute;bottom:4.8%;left:8%;right:8%}footer span{letter-spacing:.06em;font-size:1.9cqw;font-weight:700}footer b{letter-spacing:-.035em;font-size:3.1cqw;font-weight:700}.pattern-edge{border-top:1px solid var(--ink);background:var(--brand-pattern,none) left center/auto 96px repeat-x;z-index:8;height:1.25%;position:absolute;bottom:0;left:0;right:0}.toast{z-index:20;border:1px solid var(--ink);background:var(--pink);color:var(--ink);text-align:center;box-shadow:2px 3px 0 var(--ink);padding:4cqw;font-size:3.1cqw;line-height:1.5;position:absolute;bottom:23%;left:8%;right:8%}@keyframes camera-sway{0%,to{transform:scale(1.01)rotate(0)}50%{transform:scale(1.02)rotate(-.35deg)}}@keyframes helmet-land{0%{opacity:0;transform:translateY(-90%)rotate(-5deg)scale(.86)}35%{opacity:1}to{opacity:1;transform:translateY(0)rotate(12deg)scale(1)}}@keyframes count-in{0%{opacity:.7;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flash{0%{opacity:.9}to{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.retake{gap:1.2cqw;width:auto;min-height:11.5cqw;padding:1cqw 0;font-size:3.1cqw;font-weight:700;display:flex}.retake svg{width:4.4cqw;height:4.4cqw}.camera-switch{width:12cqw;height:12cqw;padding:2.4cqw}.dock-spacer{flex-shrink:0;width:12cqw;height:12cqw}.screen[data-still=true] *{transition:none!important;animation:none!important}.live-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scaleX(-1)}#ar-canvas{width:100%;height:100%;display:block}.captured-photo{object-fit:contain;background:var(--ink);width:100%;height:100%;position:absolute;inset:0}#video{opacity:.001;pointer-events:none;width:1px;height:1px;position:fixed;top:-2px;left:-2px}.screen[data-view=welcome] .camera-window,.screen[data-view=permission] .camera-window,.screen[data-view=loading] .camera-window,.screen[data-view=expired] .camera-window{visibility:hidden}.screen[data-view=review] .camera-shade,.screen[data-view=collection] .camera-shade,.screen[data-view=phone] .camera-shade,.screen[data-view=upload-error] .camera-shade,.screen[data-view=local-review] .camera-shade{display:none}.screen[data-view=upload-error] .camera-window,.screen[data-view=local-review] .camera-window{width:56%;top:23%;left:22%}.handoff-copy{text-align:center;position:absolute;bottom:16%;left:8%;right:8%}.handoff-copy h2{letter-spacing:-.04em;margin:0 0 2cqw;font-size:6cqw}.handoff-copy p{margin:0;font-size:3.5cqw;line-height:1.5}.operator-trigger{color:#ffe0ff80;z-index:30;background:#100d1233;border:0;border-radius:50%;width:36px;height:36px;font-size:18px;position:fixed;bottom:12px;right:12px}.screen[data-mode=mobile]~.operator-trigger,body[data-active=true] .operator-trigger{display:none}dialog{color:#fff;width:min(92vw,460px);max-height:90vh;background:#16111e;border:1px solid #8046d1;border-radius:0;max-height:90svh;padding:24px;font:14px/1.5 Argentum,Arial,sans-serif;overflow:auto;box-shadow:8px 8px #8046d1}dialog::backdrop{background:#100d12c9}dialog header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}dialog h2{margin:0;font-size:21px}dialog header button{color:#fff;background:0 0;border:0;padding:0 4px;font-size:26px}dialog label{gap:5px;margin-bottom:14px;display:grid}dialog input,dialog select{color:#fff;width:100%;font:inherit;background:#271e34;border:1px solid #8046d1;min-width:0;padding:10px}dialog .check{align-items:center;gap:10px;display:flex}dialog .check input{accent-color:#a076f4;width:18px;height:18px}.fit-controls{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}dialog p{color:#cbbbd9;font-size:12px}.operator-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.operator-actions button{color:#100d12;background:#ffe0ff;border:1px solid #8046d1;padding:12px;font:700 12px Argentum,Arial,sans-serif}.operator-actions button:first-child{grid-column:1/-1}.demo-tools{z-index:40;color:#fff;background:#100d12;align-items:center;gap:6px;padding:8px;font:11px Arial;display:flex;position:fixed;top:8px;left:8px}.demo-tools button{padding:6px;font:11px Arial}.demo-tools b{color:var(--yellow,#fa0)}.demo-tools{justify-content:center;gap:5px;padding:4px;font-size:10px;inset:auto 0 0}.demo-tools button{padding:5px;font-size:10px}button:disabled{opacity:.45;cursor:wait}@media (max-height:600px) and (orientation:landscape){body{min-height:100svh}}.camera-slot{display:contents}.screen[data-mode=mobile]{--layout-gap:clamp(10px,2dvh,20px);width:100%;height:100vh;height:100svh;aspect-ratio:auto;gap:var(--layout-gap);height:100dvh;min-height:0;padding:max(16px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));grid-template:"header""content"minmax(0,1fr)"actions"72px"footer"/minmax(0,1fr);display:grid}.screen[data-mode=mobile]:is([data-view=welcome],[data-view=attract]){grid-template-rows:auto minmax(0,1fr) auto auto}.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]){grid-template:"header""title""content"minmax(0,1fr)"actions""footer"/minmax(0,1fr)}.screen[data-mode=mobile]:is([data-view=permission],[data-view=loading],[data-view=expired]){grid-template:"header""content"minmax(0,1fr)"footer"/minmax(0,1fr)}.screen[data-mode=mobile] .masthead{flex-wrap:wrap;grid-area:header;gap:6px;min-width:0;min-height:32px;position:relative;inset:auto}.screen[data-mode=mobile] .event-logo{aspect-ratio:520/96;width:clamp(132px,36vw,176px);height:auto}.screen[data-mode=mobile] .event-logo img{width:100%;height:auto}.screen[data-mode=mobile] .experience-name{flex-basis:100%;order:3;font-size:11px;position:static}.screen[data-mode=mobile] .retake{gap:6px;min-height:44px;margin:0 0 0 auto;padding:8px 0;font-size:13px}.screen[data-mode=mobile] .retake svg{width:20px;height:20px}.screen[data-mode=mobile] .invitation{gap:var(--layout-gap);grid-area:content;grid-template-rows:auto auto minmax(0,1fr);min-height:0;display:grid;position:relative;inset:auto}.screen[data-mode=mobile] .invitation h1{margin:0;font-size:clamp(28px,min(9vw,5dvh),52px);position:static}.screen[data-mode=mobile] .invitation-copy{margin:0;font-size:clamp(12px,1.8dvh,15px);line-height:1.4;position:static}.screen[data-mode=mobile] .hero-portrait{aspect-ratio:auto;width:100%;height:100%;min-height:0;box-shadow:none;background:0 0;border:0;place-items:center;margin:0;display:grid;position:relative;inset:auto;overflow:visible;container-type:size}.screen[data-mode=mobile] .hero-portrait img{aspect-ratio:1;object-fit:contain;width:min(100%,460px,100cqh);height:auto;max-height:100%;box-shadow:none;filter:drop-shadow(0 18px 20px #100d1244);border:0;animation:6s ease-in-out infinite landing-float}.screen[data-mode=mobile] .welcome-actions{grid-area:actions;width:100%;max-width:460px;margin:0 auto;position:static}.screen[data-mode=mobile] .welcome-actions p{margin:8px 0 0;font-size:11px;line-height:1.4}.screen[data-mode=mobile] .primary,.screen[data-mode=mobile] .secondary{gap:10px;min-height:48px;padding:12px 14px;font-size:15px}.screen[data-mode=mobile] .primary svg,.screen[data-mode=mobile] .secondary svg{flex-shrink:0;width:22px;height:22px}.screen[data-mode=mobile] .welcome-actions .primary span{font-size:24px;line-height:1}.screen[data-mode=mobile] .camera-slot{grid-area:content;place-items:center;min-width:0;min-height:0;display:grid;container-type:size}.screen[data-mode=mobile] .camera-window,.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]) .camera-window{aspect-ratio:2/3;width:min(100%,460px,66.6667cqh);height:auto;margin:0;position:relative;inset:auto;container-type:inline-size}.screen[data-mode=mobile]:is([data-view=welcome],[data-view=attract],[data-view=permission],[data-view=loading],[data-view=expired]) .camera-slot{display:none}.screen[data-mode=mobile] .camera-status small{margin-top:6px;font-size:clamp(10px,3cqw,12px)}.screen[data-mode=mobile] .reveal-status>span{font-size:clamp(11px,4cqw,15px)}.screen[data-mode=mobile] .capture-dock{grid-area:actions;justify-content:center;gap:0;width:100%;max-width:460px;margin:0 auto;position:static;inset:auto}.screen[data-mode=mobile] .shutter{width:72px;height:72px;padding:6px}.screen[data-mode=mobile] .camera-switch,.screen[data-mode=mobile] .dock-spacer{width:48px;height:48px;padding:10px}.screen[data-mode=mobile] .review-heading{grid-area:title;margin:0;font-size:clamp(28px,min(10vw,5dvh),46px);position:static;inset:auto}.screen[data-mode=mobile] .review-actions{grid-area:actions;gap:12px;width:100%;max-width:460px;margin:0 auto;position:static;inset:auto}.screen[data-mode=mobile] .service-state{grid-area:content;gap:clamp(8px,2dvh,20px);min-height:0;position:relative;inset:auto}.screen[data-mode=mobile] .service-state>svg{flex-shrink:0;width:40px;height:40px;margin:0}.screen[data-mode=mobile] .service-state h1{font-size:clamp(26px,min(8vw,5dvh),42px)}.screen[data-mode=mobile] .service-state p{max-width:460px;margin:0;font-size:clamp(13px,2dvh,16px);line-height:1.5}.screen[data-mode=mobile] .service-state .primary{flex-shrink:0;max-width:460px}.screen[data-mode=mobile] .service-state .loader{flex-shrink:0;width:36px;height:36px;margin:0}.screen[data-mode=mobile] .text-button{min-height:44px;margin:0;padding:10px;font-size:14px}.screen[data-mode=mobile] footer{grid-area:footer;gap:16px;margin:0;padding:0;position:static;inset:auto}.screen[data-mode=mobile] footer span{font-size:9px}.screen[data-mode=mobile] footer b{font-size:14px}.screen[data-mode=mobile] .pattern-edge{height:8px}.screen[data-mode=mobile] .toast{left:20px;right:20px;bottom:max(24px,env(safe-area-inset-bottom));max-width:520px;margin:0 auto;padding:16px;font-size:14px;position:fixed}@media (min-width:700px){.screen[data-mode=mobile] .invitation{grid-template-rows:auto minmax(0,1fr);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.screen[data-mode=mobile] .invitation h1{grid-area:1/1;font-size:clamp(36px,min(7vw,7dvh),72px)}.screen[data-mode=mobile] .invitation-copy{grid-area:2/1;align-self:start}.screen[data-mode=mobile] .hero-portrait{grid-area:1/2/3}}@media (min-width:560px) and (max-height:540px){.screen[data-mode=mobile],.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]){grid-template:"header content""title content"minmax(0,1fr)"actions content""footer footer"/minmax(0,1fr) minmax(0,1fr);column-gap:28px}.screen[data-mode=mobile]:is([data-view=welcome],[data-view=attract]){grid-template:"header content""title content"minmax(0,1fr)"copy content""actions content""footer footer"/minmax(0,1fr) minmax(0,1fr)}.screen[data-mode=mobile] .invitation{display:contents}.screen[data-mode=mobile] .invitation h1{grid-area:title;align-self:center;font-size:clamp(26px,8dvh,40px)}.screen[data-mode=mobile] .invitation-copy{grid-area:copy}.screen[data-mode=mobile] .hero-portrait{grid-area:content}.screen[data-mode=mobile] .experience-name{font-size:10px}.screen[data-mode=mobile] .capture-dock{justify-content:center}.screen[data-mode=mobile] .review-actions{grid-template-columns:1fr}.screen[data-mode=mobile]:is([data-view=permission],[data-view=loading],[data-view=expired]){grid-template:"header""content"minmax(0,1fr)"footer"/minmax(0,1fr)}.screen[data-mode=mobile] .service-state{gap:6px}}.refresh-cameras{color:#100d12;cursor:pointer;background:#ffe0ff;border:1px solid #a076f4;min-height:40px;padding:9px 14px;font:700 13px Argentum}#camera-status{font-size:12px;line-height:1.5}.screen[data-mode=mobile][data-view=personalise]{grid-template:"header""title""content""form""footer"/minmax(0,1fr);row-gap:14px;height:auto;min-height:100dvh;overflow:visible}.screen[data-view=personalise] .camera-shade{display:none}.screen[data-mode=mobile][data-view=personalise] .camera-window{aspect-ratio:4/5;width:158px;max-width:100%;height:auto}.screen[data-view=personalise] .camera-slot{container-type:normal}.personalise-form{color:#fff;grid-area:form;gap:12px;width:100%;max-width:440px;margin:0 auto;font-size:13px;display:grid;position:relative}.personalise-intro{text-align:center;color:var(--pink);margin:0 0 4px;font-size:14px}.personalise-form label{gap:5px;display:grid}.name-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.personalise-form input:not([type=checkbox]){color:#fff;outline-offset:3px;background:#100d1244;border:1px solid #a076f4;border-radius:0;width:100%;min-width:0;min-height:44px;padding:9px 11px;font:400 16px Argentum}.personalise-form input:focus-visible{outline:2px solid var(--pink)}.personalise-form .contact-choice{grid-template-columns:18px 1fr;align-items:start;gap:8px;font-size:12px;line-height:1.5}.contact-choice input{accent-color:#ee592b;margin:2px 0 0}.personalise-note{opacity:.85;margin:0;font-size:10px;line-height:1.5}.personalise-note a{color:inherit;text-underline-offset:2px}.form-error{color:#ffd6c2;margin:0;font-size:12px;line-height:1.5}.form-error:empty{display:none}.personalise-form .primary{width:100%}body:has(.screen[data-view=personalise]){overflow:auto}.screen[data-mode=mobile][data-view=personalise] .backdrop{height:100dvh;position:fixed}.screen[data-view=personalise] footer{margin-top:8px}@media (min-width:700px){.screen[data-mode=mobile][data-view=personalise]{grid-template:"header header""title title""content form"minmax(0,1fr)"footer footer"/1fr 1fr;column-gap:48px;height:100dvh;padding-left:max(32px,8vw);padding-right:max(32px,8vw);overflow:auto}.screen[data-mode=mobile][data-view=personalise] .camera-window{aspect-ratio:4/5;width:min(100%,320px);height:auto}.personalise-form{align-self:center}}.demo-tools{flex-wrap:wrap;max-height:84px;overflow:auto}.demo-tools output{text-align:center;flex-basis:100%;font:9px monospace}.demo-tools button{flex-shrink:0}.demo-tools img,.demo-tools video{object-fit:cover;width:24px;height:32px}.demo-tools a{color:#ffe0ff;font-size:10px}#camera-aperture{position:absolute;inset:0;overflow:hidden}.screen[data-photo=true]~.demo-tools{display:none}.screen .camera-window{aspect-ratio:1;background:#100d12;border:1px solid #ffe0ff55;box-shadow:5px 6px #100d12}.screen[data-mode=mobile] .camera-window{aspect-ratio:1;width:min(100%,540px,100cqh)}.screen[data-photo=true] .camera-window{aspect-ratio:4/5;border:0;box-shadow:5px 6px #100d12}.screen[data-mode=mobile][data-photo=true] .camera-window{aspect-ratio:4/5;width:min(100%,540px,80cqh)}.screen[data-mode=mobile][data-view=personalise] .camera-window{aspect-ratio:4/5;width:158px}.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]){grid-template:"header"44px"content"minmax(0,1fr)"actions"/minmax(0,1fr);gap:12px}.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]) .event-logo,.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]) footer{display:none}.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]) .review-heading{pointer-events:none;grid-area:header;align-self:center;padding-right:90px;font-size:28px}.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]) .masthead{min-height:44px}@media (min-width:560px) and (max-height:540px){.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]){grid-template:"header content"44px"actions content"minmax(0,1fr)/minmax(0,1fr) minmax(0,1fr);column-gap:24px}.screen[data-mode=mobile]:is([data-view=review],[data-view=phone]) .review-actions{align-self:end}}.camera-window .camera-shade{background:linear-gradient(#0000,#100d12b3);display:block;inset:65% 0 0}.camera-window .camera-status{z-index:3;text-shadow:0 2px 12px #100d12;bottom:7%;left:8%;right:8%}.camera-window .face-guide{z-index:3;opacity:.65;width:50%;height:56%;top:17%;left:25%}.camera-window .face-guide i{border-width:2px 0 0 2px;border-color:#ffe0ff}.screen[data-mode=mobile] .camera-status>span{font-size:clamp(16px,5cqw,24px)}.screen[data-mode=mobile] .camera-status small{opacity:.85;font-size:clamp(11px,3cqw,14px)}.screen[data-mode=mobile] .shutter{background:#ffe0ff12;border-color:#ffe0ff;box-shadow:0 0 0 5px #ffe0ff0a}.screen[data-mode=mobile] .shutter span{background:#ffe0ff}.screen[data-photo=true] .captured-photo{animation:.4s cubic-bezier(.2,.7,.2,1) both poster-reveal}@keyframes poster-reveal{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.tracking-hint,.screen[data-mode=mobile] .recovery{display:none}.screen[data-mode=mobile] .tracking-hint{z-index:5;max-width:calc(100% - 32px);color:var(--pink);text-align:center;pointer-events:none;background:#100d12d9;grid-area:content;place-self:end center;margin:0 0 12px;padding:6px 10px;font-size:12px;line-height:1.4;display:block}.screen[data-mode=kiosk]{--monitor-gap:clamp(12px,2vh,28px);width:100%;height:100vh;height:100svh;aspect-ratio:auto;gap:var(--monitor-gap);grid-template:"header""content"minmax(0,1fr)"status"32px"footer"/minmax(0,1fr);height:100dvh;min-height:0;padding:clamp(16px,3vmin,48px) clamp(16px,3vmin,48px) calc(clamp(16px,3vmin,48px) + 8px);display:grid}@supports (height:100dvh){.screen[data-mode=kiosk]{--monitor-gap:clamp(12px,2dvh,28px)}}.screen[data-mode=kiosk] .masthead{flex-wrap:wrap;grid-area:header;gap:20px;min-height:40px;position:relative;inset:auto}.screen[data-mode=kiosk] .event-logo{aspect-ratio:520/96;width:clamp(152px,18vw,280px);height:auto}.screen[data-mode=kiosk] .event-logo img{width:100%;height:auto}.screen[data-mode=kiosk] .experience-name{margin-left:auto;font-size:clamp(11px,1.3vw,20px);position:static}.screen[data-mode=kiosk] .camera-slot{grid-area:content;min-width:0;min-height:0;display:grid;container-type:size}.screen[data-mode=kiosk] .camera-window{aspect-ratio:auto;width:100%;height:100%;margin:auto;position:relative;inset:auto;container-type:size}.screen[data-mode=kiosk] :is(.invitation,.recovery,.camera-status,.face-guide,.camera-shade){display:none}.screen[data-mode=kiosk] .tracking-hint{text-align:center;color:var(--pink);grid-area:status;margin:0;font-size:clamp(14px,2vmin,24px);line-height:1.5;display:block;position:static}.screen[data-mode=kiosk] footer{grid-area:footer;gap:16px;margin:0;position:static;inset:auto}.screen[data-mode=kiosk] footer span{font-size:clamp(10px,1.4vmin,18px)}.screen[data-mode=kiosk] footer b{font-size:clamp(16px,2vmin,26px)}.screen[data-mode=kiosk] .pattern-edge{background-size:auto 96px;height:8px}.screen[data-mode=kiosk] .countdown{bottom:5%}.screen[data-mode=kiosk] .countdown strong{font-size:clamp(80px,18vmin,240px)}.screen[data-mode=kiosk] .countdown>span{font-size:clamp(14px,2vmin,24px)}.screen[data-mode=kiosk] .welcome-actions{grid-area:content;align-self:center;width:100%;max-width:460px;margin:auto;position:static;inset:auto}.screen[data-mode=kiosk] .welcome-actions p{font-size:14px}.screen[data-mode=kiosk] .primary{gap:16px;min-height:48px;padding:14px 18px;font-size:16px}.screen[data-mode=kiosk] .primary span{font-size:24px}.screen[data-mode=kiosk] .service-state{grid-area:content;gap:20px;position:relative;inset:auto}.screen[data-mode=kiosk] .service-state h1{font-size:clamp(28px,5vmin,64px)}.screen[data-mode=kiosk] .service-state p{max-width:560px;margin:0;font-size:clamp(16px,2vmin,24px)}.screen[data-mode=kiosk] .service-state .primary{max-width:360px}.screen[data-mode=kiosk] .service-state svg{width:48px;height:48px;margin:0}.screen[data-mode=kiosk] .text-button{margin:0;padding:12px;font-size:16px}.screen[data-mode=kiosk] .loader{width:48px;height:48px;margin:0}.screen[data-mode=kiosk] .processing{gap:20px}.screen[data-mode=kiosk] .processing p{font-size:clamp(16px,2.5vmin,28px)}.screen[data-mode=kiosk] .review-heading{display:none}.screen[data-mode=kiosk][data-photo=true]{grid-template:"header""content"minmax(0,1fr)"handoff""footer"/minmax(0,1fr)}.screen[data-mode=kiosk][data-photo=true] .camera-window{aspect-ratio:4/5;width:min(100%,80cqh);height:auto;max-height:100%;inset:auto}.screen[data-mode=kiosk] .collection-panel{grid-area:handoff;grid-template-columns:clamp(100px,18dvh,200px) minmax(0,1fr);gap:clamp(16px,3vmin,36px);width:100%;max-width:700px;margin:auto;position:static;inset:auto}.screen[data-mode=kiosk] .qr-wrap{padding:clamp(8px,1vmin,14px)}.screen[data-mode=kiosk] .eyebrow{font-size:clamp(11px,1.5vmin,18px)}.screen[data-mode=kiosk] .collection-panel h2{margin:12px 0;font-size:clamp(24px,4vmin,48px)}.screen[data-mode=kiosk] .collection-panel p{font-size:clamp(14px,2vmin,24px)}.screen[data-mode=kiosk] .handoff-copy{text-align:center;grid-area:handoff;margin:auto;position:static;inset:auto}.screen[data-mode=kiosk] .handoff-copy h2{margin:0 0 12px;font-size:clamp(28px,4vmin,48px)}.screen[data-mode=kiosk] .handoff-copy p{font-size:clamp(16px,2vmin,24px)}.screen[data-mode=kiosk] .toast{width:min(90%,600px);padding:16px;font-size:16px;left:50%;right:auto;transform:translate(-50%)}.screen[data-mode=kiosk] .captured-photo{animation:none}@media (min-aspect-ratio:1){.screen[data-mode=kiosk][data-photo=true]{grid-template:"header header""content handoff"minmax(0,1fr)"footer footer"/minmax(0,1fr) minmax(260px,32%)}.screen[data-mode=kiosk] .collection-panel{text-align:center;grid-template-columns:1fr;width:auto}.screen[data-mode=kiosk] .qr-wrap{width:clamp(160px,28vh,320px);width:clamp(160px,28dvh,320px);margin:auto}}.effect-carousel{display:none}.screen[data-mode=mobile]:is([data-view=align],[data-view=reveal],[data-view=camera],[data-view=countdown],[data-view=recovery],[data-view=multiple]){grid-template:"header""content"minmax(0,1fr)"effects""actions"48px"footer"/minmax(0,1fr);row-gap:clamp(8px,1.4dvh,14px)}.screen[data-mode=mobile] .mobile-effects{z-index:6;grid-area:effects;justify-self:center;gap:2px;width:min(100%,360px);min-width:0;display:grid;position:relative}.effect-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;align-items:center;gap:18px;padding:6px calc(50% - 32px);scroll-padding-inline:calc(50% - 32px);display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 15% 85%,#0000);mask-image:linear-gradient(90deg,#0000,#000 15% 85%,#0000)}.effect-track::-webkit-scrollbar{display:none}.effect-option{scroll-snap-align:center;opacity:.6;background:#25123f;border:1px solid #ffe0ff55;border-radius:50%;flex:0 0 64px;width:64px;height:64px;padding:3px;transition:transform .2s,opacity .2s,border-color .2s;position:relative;transform:scale(.86)}.effect-option img{object-fit:contain;border-radius:50%;width:100%;height:100%;display:block}.effect-option[aria-pressed=true]{opacity:1;border:2px solid var(--pink);transform:scale(1);box-shadow:0 0 0 3px #ffe0ff20}.effect-option:focus-visible{outline:2px solid var(--orange);outline-offset:4px}.effect-option:disabled{cursor:wait;opacity:.5}.effect-option[aria-pressed=true]:disabled{opacity:1}.effect-spinner{border:2px solid #0000;border-top-color:var(--orange);border-radius:50%;animation:.8s linear infinite spin;display:none;position:absolute;inset:-4px}.effect-carousel[aria-busy=true] .effect-option[aria-pressed=true] .effect-spinner{display:block}.effect-name{text-align:center;min-height:18px;color:var(--pink);margin:0;font-size:12px;font-weight:700;line-height:18px}.screen[data-mode=kiosk] :is(.mobile-effects,.capture-dock){display:none}.screen[data-mode=kiosk] .monitor-effects{--effect-size:clamp(44px,8vmin,88px);width:max-content;max-width:calc(100% - 16px);color:var(--pink);z-index:6;background:#100d12d9;border:1px solid #ffe0ff33;border-radius:24px;gap:8px;padding:10px 12px 8px;display:grid;position:absolute;bottom:clamp(12px,2vmin,24px);left:50%;transform:translate(-50%)}.monitor-effects .effect-track{scroll-snap-type:none;touch-action:manipulation;gap:clamp(4px,1.4vmin,18px);padding:6px;overflow:visible;-webkit-mask-image:none;mask-image:none}.monitor-effects .effect-option{flex-basis:var(--effect-size);width:var(--effect-size);height:var(--effect-size);color:var(--pink);opacity:.8;transform:none}.monitor-effects .effect-option[aria-pressed=true]{opacity:1}.monitor-effects .effect-option svg{border-radius:50%;width:100%;height:100%;padding:12%;display:block}.monitor-effects .effect-name{min-height:1.4em;font-size:clamp(12px,1.6vmin,18px);line-height:1.4}.screen[data-mode=kiosk] .countdown{pointer-events:none;bottom:calc(clamp(44px,8vmin,88px) + 90px)}@media (min-width:560px) and (max-height:540px){.screen[data-mode=mobile]:is([data-view=align],[data-view=reveal],[data-view=camera],[data-view=countdown],[data-view=recovery],[data-view=multiple]){grid-template:"header content""effects content"minmax(0,1fr)"actions content"48px"footer footer"/minmax(0,1fr) minmax(0,1fr)}.screen[data-mode=mobile] .effect-carousel{align-self:center}.screen[data-mode=mobile] .shutter{width:64px;height:64px}}@keyframes landing-float{0%,to{transform:translateY(3px)rotate(-5deg)}50%{transform:translateY(-5px)rotate(-2deg)}}.landing-title{display:none}.screen[data-mode=mobile][data-view=welcome]{--layout-gap:clamp(14px,2.3dvh,22px);padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}.screen[data-mode=mobile][data-view=welcome] .masthead{grid-template-columns:minmax(0,1fr) clamp(104px,28vw,150px);align-items:start;column-gap:18px;min-height:0;display:grid}.screen[data-mode=mobile][data-view=welcome] .landing-title{letter-spacing:-.055em;color:var(--pink);text-shadow:2px 3px 0 var(--ink);margin:0;font-size:clamp(28px,8vw,44px);font-style:italic;font-weight:900;line-height:.91;display:block;position:static}.landing-title em{font:inherit;color:var(--yellow,#fa0)}.screen[data-mode=mobile][data-view=welcome] .event-logo{justify-self:end;width:100%;margin-top:3px}.screen[data-mode=mobile][data-view=welcome] .invitation{grid-template-rows:auto minmax(0,1fr);gap:14px}.screen[data-mode=mobile][data-view=welcome] .invitation-copy{color:var(--pink);font-size:13px;line-height:1.5}.screen[data-mode=mobile][data-view=welcome] .hero-portrait{aspect-ratio:6/7;background:var(--deep);border:1px solid #100d12;place-self:center;width:min(100%,460px,85.7143cqh);height:auto;max-height:100%;overflow:hidden;box-shadow:4px 5px #100d12}.screen[data-mode=mobile][data-view=welcome] .hero-portrait img{aspect-ratio:auto;object-fit:cover;object-position:50% 50%;filter:none;width:100%;height:120%;max-height:none;box-shadow:none;border:0;animation:none;position:absolute;top:-10%;left:0}@media (max-width:360px){.screen[data-mode=mobile][data-view=welcome]{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.screen[data-mode=mobile][data-view=welcome] .masthead{grid-template-columns:minmax(0,1fr) 92px;column-gap:12px}.screen[data-mode=mobile][data-view=welcome] .landing-title{font-size:26px}}@media (min-width:700px){.screen[data-mode=mobile][data-view=welcome]{padding-left:clamp(32px,5vw,72px);padding-right:clamp(32px,5vw,72px)}.screen[data-mode=mobile][data-view=welcome] .landing-title{font-size:clamp(40px,5vw,56px)}.screen[data-mode=mobile][data-view=welcome] .invitation{grid-template-rows:minmax(0,1fr);grid-template-columns:.8fr 1fr;align-items:center;column-gap:48px}.screen[data-mode=mobile][data-view=welcome] .invitation-copy{grid-area:1/1;align-self:center;max-width:18ch;font-size:clamp(18px,2.2vw,28px)}.screen[data-mode=mobile][data-view=welcome] .hero-portrait{grid-area:1/2}}@media (min-width:560px) and (max-height:540px){.screen[data-mode=mobile][data-view=welcome]{grid-template:"header content""copy content"minmax(0,1fr)"actions content""footer footer"/minmax(0,1fr) minmax(0,1fr);gap:14px 28px;padding-top:20px;padding-bottom:20px}.screen[data-mode=mobile][data-view=welcome] .masthead{grid-template-columns:1fr 96px;column-gap:12px}.screen[data-mode=mobile][data-view=welcome] .landing-title{font-size:26px}.screen[data-mode=mobile][data-view=welcome] .invitation{display:contents}.screen[data-mode=mobile][data-view=welcome] .invitation-copy{grid-area:copy;align-self:center;font-size:13px}.screen[data-mode=mobile][data-view=welcome] .hero-portrait{aspect-ratio:6/7;grid-area:content;width:auto;max-width:100%;height:100%}}.event-logo img{object-fit:contain;object-position:left top;width:100%;height:100%}footer [data-photo-privacy]{color:var(--pink);text-underline-offset:3px;white-space:nowrap;font-size:clamp(11px,1cqw,16px)}:root.brand-heading-font :is(h1,h2,.landing-title,.review-heading,.hero-title,.d-title,.cd-num,.final-score,.countdown>span,.r-title){letter-spacing:-.015em;font-family:var(--disp)!important;font-weight:var(--brand-heading-weight)!important;font-style:var(--brand-heading-style)!important}:root.brand-heading-font :is(h1,h2,.landing-title,.review-heading,.hero-title,.d-title) em{font-style:inherit;font-weight:inherit}
