:root{--black:#080808;--panel:#050505b8;--panel-soft:#161616c2;--text:#f5f3ef;--muted:#f5f3efc7;--orange:#ff850f;--orange-2:#ffb21b;--cream:#fff8ee;--line:#ff850fb8;--glow:0 0 18px #ff850fbf, 0 0 46px #ff850f6b;color:var(--text);font-synthesis:none;text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;font-family:Inter,Montserrat,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:#000;min-width:320px;overflow-x:hidden}button,input{font:inherit}button{color:inherit}img{max-width:100%;display:block}.app-shell{isolation:isolate;background:linear-gradient(90deg,#0000006b,#0000001a),url(/assets/bg-fotoflow.webp) 50%/cover fixed,#111;min-height:100dvh;position:relative;overflow-x:hidden}.glow,.grid-noise{display:none}.mobile-page{width:min(100%,640px);min-height:100dvh;margin:0 auto;padding:clamp(28px,6vw,56px) clamp(22px,5vw,34px) 118px;position:relative}.brand-header{width:clamp(132px,30vw,184px);margin-bottom:clamp(32px,8vw,70px)}.brand-header img{width:100%;height:auto}.home-view{grid-template-rows:auto minmax(0,1fr);align-content:stretch;display:grid}.home-view.mobile-page,.login-view.mobile-page{height:100dvh;min-height:0;padding:clamp(14px,3.6dvh,34px) clamp(18px,5vw,34px) clamp(16px,4dvh,34px);overflow:hidden}.home-view .brand-header,.login-view .brand-header{width:clamp(104px,25vw,160px);margin-bottom:0}.role-stack{align-self:center;gap:clamp(14px,3.2dvh,28px);margin-top:0;display:grid}.role-card{text-align:left;cursor:pointer;background:#000000b8;border:1px solid #ffffff14;border-radius:clamp(20px,5vw,28px);grid-template-columns:minmax(74px,.38fr) 1fr;align-items:center;min-height:clamp(128px,22dvh,218px);padding:clamp(15px,4vw,28px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 22px 70px #0000006b}.role-card:after{content:"";background:radial-gradient(circle,#ff850f2e,#0000 58%);height:80%;position:absolute;inset:auto -20% -40% 35%}.role-card.gold{grid-template-columns:minmax(74px,.38fr) 1fr}.role-card h2{z-index:1;letter-spacing:0;margin:0 0 clamp(7px,1.4dvh,16px);font-size:clamp(1.45rem,6vw,2.7rem);font-weight:850;line-height:1.04;position:relative}.role-card p{z-index:1;color:var(--text);margin:0;font-size:clamp(.95rem,3.6vw,1.34rem);line-height:1.2;position:relative}.role-action{display:none}.role-icon{z-index:1;color:#f5f3efeb;grid-row:1/span 2;place-items:center;width:clamp(72px,22vw,142px);height:clamp(104px,21dvh,188px);display:grid;position:relative}.role-asset{object-fit:contain;opacity:.94;filter:drop-shadow(0 0 10px #ff850f38);width:100%;height:100%}.role-asset.guest{transform:translate(-6%)scale(1.04)}.role-asset.photographer{transform:translate(-4%)scale(1.05)}.role-card h2,.role-card p{grid-column:2}.login-view{grid-template-rows:auto minmax(0,1fr);align-content:stretch;display:grid}.login-card{align-self:center;justify-items:center;gap:clamp(12px,2.7dvh,26px);margin-top:0;display:grid}.login-card .icon-button{justify-self:start;margin-bottom:clamp(-12px,-1dvh,-4px)}.login-card h1{text-align:center;letter-spacing:.02em;margin:0;font-size:clamp(1.45rem,6vw,2.65rem);font-weight:850;line-height:1}.login-figure{width:clamp(88px,21dvh,180px);height:clamp(88px,21dvh,180px);color:var(--orange);filter:drop-shadow(0 0 14px #ff850f59);place-items:center;display:grid}.login-figure img{object-fit:contain;opacity:.92;width:100%;height:100%}.field{width:min(100%,470px)}.field span{display:none}.field input{border:clamp(3px, 1vw, 5px) solid var(--orange-2);background:var(--cream);width:100%;min-height:clamp(48px,8.8dvh,74px);color:var(--orange);letter-spacing:.02em;border-radius:999px;outline:none;padding:0 clamp(22px,6vw,36px);font-size:clamp(1.15rem,4.8vw,1.9rem);font-weight:850;box-shadow:clamp(5px,1.4vw,9px) clamp(6px,1.8vw,10px) #ffb21be0}.field input::placeholder{color:var(--orange);opacity:.95}.glow-button,.primary-button{color:#fff;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;min-height:clamp(58px,11vw,78px);box-shadow:var(--glow);background:linear-gradient(#ff9d2b,#ff850f);border:4px solid #fff;border-radius:18px;justify-content:center;align-items:center;gap:12px;padding:0 clamp(22px,7vw,48px);font-size:clamp(1.15rem,5.8vw,2rem);font-weight:900;display:inline-flex}.glow-button svg,.primary-button svg{width:22px;height:22px}.text-link{color:var(--text);cursor:pointer;background:0 0;border:0;font-size:clamp(1rem,4.4vw,1.65rem);font-weight:760}.login-card .glow-button{border-radius:16px;min-height:clamp(46px,8dvh,66px);font-size:clamp(1rem,4.7vw,1.55rem)}.guest-view{grid-template-rows:minmax(0,1fr);align-content:stretch;display:grid}.guest-view.mobile-page{height:100dvh;min-height:0;padding:clamp(14px,3.2dvh,34px) clamp(18px,5vw,34px);overflow:hidden}.guest-view .brand-header{width:clamp(86px,22vw,132px);margin:0;position:absolute;top:clamp(14px,3dvh,28px);left:clamp(18px,5vw,34px)}.guest-view .message{z-index:4;margin:0;position:absolute;top:clamp(14px,3dvh,28px);left:clamp(116px,32vw,170px);right:clamp(18px,5vw,34px)}.guest-result-view{grid-template-rows:auto minmax(0,1fr);align-content:start;gap:18px;height:100dvh;min-height:0;display:grid;overflow:hidden}.floating-back{z-index:5;position:absolute;top:clamp(30px,7vw,56px);right:clamp(22px,5vw,34px)}.guest-find{text-align:center;align-self:center;justify-items:center;margin-top:0;display:grid}.guest-copy{justify-items:center;gap:clamp(10px,2.6dvh,28px);display:grid}.guest-copy h1{max-width:520px;margin:0;font-size:clamp(1.35rem,6vw,2.75rem);font-weight:850;line-height:1.18}.guest-copy p{max-width:520px;color:var(--text);margin:0;font-size:clamp(1rem,4.4vw,1.85rem);font-weight:750;line-height:1.28}.scan-frame{aspect-ratio:1;width:min(62vw,310px,33dvh);color:var(--orange);place-items:center;display:grid;position:relative}.scan-frame>img{object-fit:contain;filter:drop-shadow(0 0 10px #ff850f57);width:62%;height:62%}.scan-frame span{border-style:solid;border-color:#fff;width:25%;height:25%;position:absolute}.scan-frame span:first-child{border-width:6px 0 0 6px;top:0;left:0}.scan-frame span:nth-child(2){border-width:6px 6px 0 0;top:0;right:0}.scan-frame span:nth-child(3){border-width:0 0 6px 6px;bottom:0;left:0}.scan-frame span:nth-child(4){border-width:0 6px 6px 0;bottom:0;right:0}.action-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.guest-find .secondary-button{min-height:clamp(32px,5.3dvh,42px);color:var(--text);background:#00000061;border:1px solid #ff850fb3;border-radius:999px;padding:0 clamp(12px,4vw,16px);font-size:clamp(.78rem,3.4vw,1rem)}.guest-find .glow-button{border-radius:14px;min-height:clamp(44px,7.4dvh,64px);padding-inline:clamp(20px,8vw,46px);font-size:clamp(1rem,4.8vw,1.65rem)}.photographer-view{grid-template-rows:auto auto auto minmax(0,1fr) auto;align-content:stretch;height:100dvh;padding-bottom:130px;display:grid;overflow:hidden}.photographer-header{grid-template-columns:1fr auto auto;align-items:start;gap:16px;margin-bottom:20px;display:grid}.photographer-header .brand-header{margin-bottom:0}.mini-photographer{opacity:.82;place-items:center;width:94px;height:94px;display:grid}.mini-photographer img{object-fit:contain;filter:drop-shadow(0 0 10px #ff850f38);width:100%;height:100%}.logout-button{color:#fff;cursor:pointer;background:0 0;border:0;place-items:center;width:54px;height:54px;margin-top:10px;display:grid}.logout-button svg{width:48px;height:48px;transform:rotate(180deg)}.welcome-title{letter-spacing:.02em;text-transform:uppercase;margin:0 0 clamp(18px,5vw,34px);font-size:clamp(1.55rem,5.8vw,2.45rem);font-weight:900;line-height:1.15}.dashboard-shell{min-height:0;overflow:hidden}.panel-section{grid-template-rows:auto minmax(0,1fr);gap:20px;height:100%;min-height:0;display:grid;overflow:hidden}.panel-section:has(.selection-bar){grid-template-rows:auto auto minmax(0,1fr)}.section-title{gap:8px;display:grid}.section-title h2{text-transform:uppercase;margin:0;font-size:clamp(1.55rem,6vw,2.45rem);line-height:1.05}.section-title p{color:var(--muted);margin:0;font-size:1rem}.photo-grid{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ff850fb3 #0000002e;flex-wrap:wrap;align-content:flex-start;gap:clamp(10px,3vw,18px);min-height:0;padding:2px 3px 118px;display:flex;overflow-y:auto}.photo-card,.face-thumb{aspect-ratio:1;cursor:pointer;background:#ffffff0d;border-radius:13px;position:relative;overflow:hidden}.photo-card{flex:0 0 calc(25% - clamp(10px,3vw,18px)/1.33333)}.image-frame{aspect-ratio:1;background:#0000008c;border:2px solid #ff850feb;border-radius:13px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14,0 6px 18px #00000052}.image-frame img{object-fit:cover;width:100%;height:100%}.photo-menu-button{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#050505ad;border:1px solid #ffffffc7;border-radius:999px;place-items:center;width:27px;height:27px;display:grid;position:absolute;top:6px;right:6px}.photo-menu-button svg{width:16px;height:16px}.photo-meta{display:none}.album-circle-grid{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ff850fb3 #0000002e;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:clamp(28px,7vw,52px) clamp(16px,6vw,44px);min-height:0;padding:4px 4px 118px;display:grid;overflow-y:auto}.album-circle-card{color:var(--text);cursor:pointer;background:0 0;border:0;justify-items:center;gap:8px;display:grid}.album-circle-card strong{display:none}.album-circle-card small{color:var(--text);font-weight:800}.album-avatar{aspect-ratio:1;color:#fff;width:min(27vw,152px);box-shadow:0 0 0 7px var(--orange), 0 0 0 11px #db00adf2, 0 0 22px #ff850f59;background:#d9d9d9;border:5px solid #171717;border-radius:999px;place-items:center;display:grid;overflow:hidden}.album-avatar img{object-fit:cover;width:100%;height:100%}.album-avatar .face-cover-image{transform-origin:50%;transform:scale(1.55)}.album-avatar svg{color:#fff;width:58%;height:58%}.album-circle-card.selected .album-avatar{box-shadow:0 0 0 7px #fff, 0 0 0 13px var(--orange), var(--glow)}.selection-bar{background:#000000b8;border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.selection-bar span{color:var(--text);flex:1;font-weight:750}.album-detail,.move-modal,.camera-modal{background:#000000db;border-radius:28px;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:clamp(18px,5vw,28px);display:grid;box-shadow:0 24px 90px #000000a6}.album-screen{grid-template-rows:minmax(0,1fr)}.album-header,.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.album-header h3,.modal-header h2{margin:0;font-size:clamp(1.45rem,6vw,2.2rem)}.album-header p,.modal-header p{color:var(--muted);margin:6px 0 0}.face-grid{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ff850fb3 #0000002e;flex-wrap:wrap;align-content:flex-start;gap:12px;min-height:0;padding:2px 2px 96px;display:flex;overflow-y:auto}.face-thumb{flex:0 0 calc(33.3333% - 8px)}.face-thumb img{aspect-ratio:1;object-fit:cover;border:2px solid #ff850fad;border-radius:13px;width:100%;height:100%;box-shadow:inset 0 0 0 1px #ffffff14,0 6px 18px #00000052}.face-caption{pointer-events:none;gap:6px;padding:0;display:grid;position:absolute;bottom:5px;left:5px;right:5px}.face-caption span{display:none}.face-actions{pointer-events:auto;justify-content:flex-end;gap:4px;display:flex}.face-actions .icon-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000009e;width:30px;height:30px}.upload-zone{border:6px dotted var(--orange);text-align:center;cursor:pointer;border-radius:54px;align-content:center;justify-items:center;min-height:min(62vh,560px);padding:clamp(28px,7vw,46px);display:grid}.upload-zone>svg{width:min(42vw,190px);height:min(42vw,190px);color:var(--orange);stroke-width:1.4px}.upload-zone h3,.upload-zone p{color:var(--text);text-transform:uppercase;margin:0;font-size:clamp(1.65rem,7vw,2.6rem);font-weight:500}.upload-zone .primary-button{border:0;border-radius:999px;width:min(100%,450px);margin-top:26px}.tab-bar{z-index:10;width:min(100%,640px);min-height:96px;padding:12px clamp(16px, 4vw, 28px) max(12px, env(safe-area-inset-bottom));background:#000000e0;border-radius:34px 34px 0 0;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -18px 46px #0000006b}.tab-bar button{color:var(--orange);text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:18px;justify-items:center;gap:4px;padding:10px 6px;font-size:clamp(.82rem,4vw,1.25rem);font-weight:900;display:grid}.tab-bar button.active{background:#ffffff38}.tab-bar svg{stroke-width:1.55px;width:clamp(30px,8vw,46px);height:clamp(30px,8vw,46px)}.message{background:#000000c7;border-radius:18px;align-items:center;gap:10px;margin-bottom:18px;padding:12px;display:flex}.message span{flex:1}.message svg{color:var(--orange);flex:none}.icon-button{color:#fff;cursor:pointer;background:#0000006b;border:1px solid #ffffff38;border-radius:999px;place-items:center;width:42px;height:42px;display:inline-grid}.icon-button.ghost{background:0 0;border:0}.secondary-button{border:1px solid var(--orange);color:#fff;cursor:pointer;background:#0000006b;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 14px;display:inline-flex}.secondary-button.mini{min-height:30px;padding-inline:10px;font-size:.76rem}.hidden-input{display:none}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.camera-modal,.move-modal{width:min(720px,100%)}.camera-frame{aspect-ratio:3/4;background:#000;border-radius:24px;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%}.camera-error{text-align:center;align-content:center;place-items:center;gap:12px;height:100%;display:grid}.move-target-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:12px;display:grid}.move-target{border:1px solid var(--orange);color:#fff;cursor:pointer;background:#0000007a;border-radius:18px;justify-items:center;gap:8px;min-height:130px;padding:12px;display:grid}.album-avatar.small{width:60px;height:60px}.empty-state{border:4px dotted var(--orange);min-height:240px;color:var(--muted);text-align:center;border-radius:34px;place-items:center;gap:12px;display:grid}.empty-state svg{width:58px;height:58px;color:var(--orange)}.viewer-backdrop{z-index:60;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#000000db;place-items:center;display:grid;position:fixed;inset:0}.image-viewer{justify-items:center;gap:12px;width:min(100%,980px);max-height:100%;display:grid;position:relative}.image-viewer img{object-fit:contain;border-radius:18px;max-width:100%;max-height:min(82dvh,820px);box-shadow:0 24px 90px #000000bf}.image-viewer p{max-width:min(100%,620px);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.viewer-close{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000ad;position:absolute;top:10px;right:10px}.spin{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=900px){.app-shell{place-items:center;padding:clamp(12px,2vw,24px);display:grid}.mobile-page{border-radius:64px;width:min(100%,920px);min-height:min(100dvh - 48px,1120px);max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 40px 120px #000000a6}.home-view.mobile-page,.login-view.mobile-page,.guest-view.mobile-page{height:min(100dvh - 48px,1120px);overflow:hidden}.photographer-view.mobile-page{width:min(100%,960px);height:min(100dvh - 48px,1120px);overflow:hidden}.guest-view.mobile-page{width:min(100%,640px)}.guest-result-view.mobile-page{height:min(100dvh - 48px,1120px);overflow:hidden}.tab-bar{width:calc(100% + 68px);margin:auto -34px -118px;position:sticky;bottom:0;left:auto;transform:none}}@media (width>=760px){.home-view.mobile-page{width:min(100%,1040px)}.home-view .role-stack{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:clamp(18px,3vw,34px)}.home-view .role-card{text-align:left;grid-template-columns:minmax(92px,.32fr) 1fr;align-content:center;justify-items:stretch;min-height:clamp(240px,42dvh,380px)}.home-view .role-icon{grid-area:1/1/span 2;justify-self:start;width:clamp(82px,10vw,118px);height:clamp(138px,27dvh,230px);margin-bottom:0}.home-view .role-card h2{font-size:clamp(1.6rem,3.4vw,2.35rem)}.home-view .role-asset.guest,.home-view .role-asset.photographer{transform:translate(-18%)scale(.95)}.home-view .role-card h2,.home-view .role-card p{grid-column:2}.login-view.mobile-page{width:min(100%,640px)}}@media (height<=720px){.home-view.mobile-page,.login-view.mobile-page,.guest-view.mobile-page{padding-block:clamp(10px,2.7dvh,22px)}.home-view .brand-header,.login-view .brand-header{width:clamp(88px,22vw,128px)}.role-stack{gap:clamp(10px,2.5dvh,18px)}.role-card{border-radius:18px;min-height:clamp(106px,20dvh,156px);padding:clamp(11px,3vw,18px)}.role-icon{width:clamp(58px,18vw,106px);height:clamp(80px,18dvh,128px)}.role-card h2{margin-bottom:5px;font-size:clamp(1.18rem,5vw,2rem)}.role-card p{font-size:clamp(.82rem,3vw,1.05rem)}.login-card{gap:clamp(8px,1.9dvh,16px)}.login-figure{width:clamp(70px,17dvh,126px);height:clamp(70px,17dvh,126px)}.field input{min-height:clamp(40px,7.6dvh,58px)}.login-card .glow-button{min-height:clamp(40px,7.4dvh,54px)}.guest-copy{gap:clamp(8px,2dvh,16px)}.guest-copy h1{font-size:clamp(1.15rem,5.5vw,2.1rem)}.guest-copy p{font-size:clamp(.88rem,3.9vw,1.2rem)}.scan-frame{width:min(54vw,260px,30dvh)}.scan-frame span:first-child{border-width:4px 0 0 4px}.scan-frame span:nth-child(2){border-width:4px 4px 0 0}.scan-frame span:nth-child(3){border-width:0 0 4px 4px}.scan-frame span:nth-child(4){border-width:0 4px 4px 0}}@media (height<=520px){.home-view .role-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.home-view .role-card{text-align:center;grid-template-columns:1fr;align-content:center;justify-items:center;min-height:clamp(130px,38dvh,170px)}.home-view .role-icon{grid-row:auto;width:clamp(62px,15vw,104px);height:clamp(70px,25dvh,116px)}.home-view .role-card h2,.home-view .role-card p{grid-column:1}.login-figure{display:none}.guest-copy h1{max-width:360px}.guest-copy p{max-width:390px}}@media (width<=420px){.photo-card{flex-basis:calc(33.3333% - clamp(10px,3vw,18px)/1.5)}.album-circle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 12px}.face-thumb{flex-basis:calc(33.3333% - 8px)}}@media (width<=360px){.home-view.mobile-page,.login-view.mobile-page,.guest-view.mobile-page{padding-inline:14px}.role-card,.role-card.gold{grid-template-columns:minmax(54px,.34fr) 1fr}.role-card h2{font-size:clamp(1.1rem,5.4vw,1.55rem)}.field input,.glow-button,.primary-button{padding-inline:18px}}
