/* Two-screen guest journey. Authenticated sessions skip it entirely. */
body.entry-checking::after{content:'';position:fixed;inset:0;background:#211032;z-index:40}
.entry-shell{position:fixed;inset:0;z-index:40;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 50% 20%,#65358777,transparent 55%),#211032;color:#fff;padding:calc(20px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));font-family:system-ui,sans-serif}
.entry-inner{max-width:620px;margin:0 auto;text-align:center}
.entry-brand{color:#fff;font-size:34px;font-weight:850;letter-spacing:-1.5px;text-align:center;line-height:1.05;margin:0 0 18px}.entry-brand>span{color:#d389ff}.entry-brand small{display:block;color:#b797cd;font-size:12px;letter-spacing:.2px;font-weight:600;margin-top:6px}
.entry-progress{display:flex;justify-content:center;align-items:center;gap:24px;font-size:12px;color:#ad8fc1;margin:12px 0 20px}.entry-progress strong{background:#9d4fe7;border:1px solid #d798ff;border-radius:25px;padding:9px 16px;color:white}
.entry-inner h1{font:800 clamp(25px,7vw,36px)/1.15 system-ui;color:#fff;letter-spacing:-.8px;margin:0 0 8px}.entry-subtitle{color:#c7a4df;font-size:14px;margin:0 0 20px}
.entry-card{border:1px solid #c28bf3;border-radius:26px;background:linear-gradient(150deg,#633e7b40,#1c0c2d80);padding:12px 14px 16px;box-shadow:0 12px 45px #10041e44}
.entry-hero{height:56dvh;min-height:340px;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible}
.entry-hero::after,.entry-account-stage::after{content:'';position:absolute;bottom:6%;left:10%;right:10%;height:7%;border:2px solid #ce94ff88;border-radius:50%;box-shadow:0 0 24px #ac46ed88,inset 0 0 12px #b965ef55;pointer-events:none}
.entry-avatar{z-index:1;position:relative;filter:drop-shadow(0 6px 10px #14052077)}
.entry-avatar.premium-avatar .head{width:14dvh;height:14dvh;font-size:11dvh;max-width:130px;max-height:130px;border:2px solid #c78ef3;background:#b67de11c;border-radius:50%}
.entry-avatar.premium-avatar .torso,.entry-avatar.premium-avatar .silhouette-body{width:26.1dvh!important;height:38dvh!important;max-width:242px;max-height:352px}
.entry-photo,.entry-primary,.entry-secondary{display:block;width:100%;min-height:48px;padding:13px 12px;border-radius:18px;text-align:center;font:700 15px/1.3 system-ui;cursor:pointer;text-decoration:none}
.entry-photo{width:max-content;max-width:100%;margin:0 auto;border:1px solid #c294e7;background:#6e409749;color:white;font-size:14px}
.entry-help{font-size:10px;line-height:1.5;color:#bc9ad3;margin:8px 0 18px}
.entry-card h2{font:750 16px system-ui;text-align:left;color:#fff;margin:20px 0 12px}
.entry-costumes{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding:3px 2px 10px;scrollbar-width:thin;scrollbar-color:#b477e5 #382146}
.entry-costume,.entry-dance{border:1px solid #9b6dbc66;border-radius:16px;background:#49265f77;color:white;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;padding:12px 5px;cursor:pointer;min-width:0;font:650 11px system-ui}
.entry-costume{flex:0 0 98px;scroll-snap-align:center}.entry-costume[aria-pressed=true],.entry-dance[aria-pressed=true]{background:#9151c349;border:2px solid #d296ff;box-shadow:0 0 12px #a54de64d;padding:11px 4px}
.entry-small.premium-avatar .head{width:38px;height:38px;font-size:27px}.entry-small.premium-avatar .torso,.entry-small.premium-avatar .silhouette-body{width:56px!important;height:82px!important}
.entry-dances{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.entry-dance-small.premium-avatar .head{width:30px;height:30px;font-size:23px}.entry-dance-small.premium-avatar .torso,.entry-dance-small.premium-avatar .silhouette-body{width:42px!important;height:61px!important}
.entry-primary{border:1px solid #ce9afa;background:linear-gradient(120deg,#b65bf1,#8a2ce1);color:white;box-shadow:inset 0 1px 2px #ffffff66,0 7px 24px #8c2bc63d;margin:18px 0 0}.entry-primary span{float:right}
.entry-secondary{background:transparent;border:1px solid #b27edd;color:#f5e8ff;margin:20px auto 0;font-size:13px}
.entry-error{color:#ffd4de!important;font-size:12px!important}.entry-error:empty{display:none}
.entry-shell button:focus-visible,.entry-shell input:focus-visible,.entry-account button:focus-visible{outline:3px solid #f3d6ff;outline-offset:3px}
body.entry-active :is(header,.top-pills,.sheet,.main-nav,.map-tools,.map-note){visibility:hidden}
/* Reuse the actual account form and its server validation, with the dancer beside it. */
#accountDialog>.entry-brand,#accountDialog>.entry-progress,#accountDialog>.entry-account-title,#accountDialog>.entry-account-back{display:none}
#accountDialog .entry-account-layout,#accountDialog .entry-account-fields{display:contents}
body #accountDialog.entry-account{position:fixed;inset:0;margin:0;box-sizing:border-box;width:100%;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;overflow-y:auto;padding:calc(24px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(ellipse at 30% 40%,#70399277,transparent 60%),#211032;color:#fff}
#accountDialog.entry-account::backdrop{background:#211032}
#accountDialog.entry-account>.entry-brand,#accountDialog.entry-account>.entry-progress,#accountDialog.entry-account>.entry-account-title,#accountDialog.entry-account>.entry-account-back{display:block}
#accountDialog.entry-account>.entry-progress{display:flex}
#accountDialog.entry-account>.entry-account-title{font:800 clamp(24px,6vw,36px)/1.15 system-ui;text-align:center;color:#fff;margin:24px auto;max-width:800px}
#accountDialog.entry-account .entry-account-layout{max-width:800px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:8px;border:1px solid #c28bf3;border-radius:25px;padding:20px 10px 20px 0;min-height:58dvh;background:linear-gradient(145deg,#5c33784d,#1b0a2d99)}
#accountDialog.entry-account .entry-account-stage{display:flex;align-items:center;justify-content:center;min-width:0;position:relative;min-height:330px}
#accountDialog.entry-account .entry-account-avatar{width:100%;filter:drop-shadow(0 5px 8px #18051d77)}
#accountDialog.entry-account .entry-account-avatar .head{width:clamp(50px,17vw,102px);height:clamp(50px,17vw,102px);font-size:clamp(40px,14vw,80px);border:2px solid #b879e9;border-radius:50%;background:#6d39854d}
#accountDialog.entry-account .entry-account-avatar .torso,#accountDialog.entry-account .entry-account-avatar .silhouette-body{width:clamp(90px,32vw,200px)!important;height:clamp(131px,46.5vw,291px)!important}
#accountDialog.entry-account .entry-account-fields{display:block;min-width:0;padding:15px 10px;border:1px solid #ad73d5;border-radius:20px;background:#34203de8;position:relative}
#accountDialog.entry-account .entry-account-fields>.eyebrow,#accountDialog.entry-account .entry-account-fields>.close,#accountDialog.entry-account .entry-account-fields>.fineprint,#accountDialog.entry-account #invitationHint,#accountDialog.entry-account [data-open-ensemble]{display:none!important}
#accountDialog.entry-account #accountTitle{font:800 clamp(17px,4.7vw,26px)/1.2 system-ui;margin:0 0 15px;color:#fff;text-align:center}
#accountDialog.entry-account .account-tabs{margin:10px 0 18px;background:#21102f;gap:3px;padding:3px;border-radius:12px;flex-direction:column}
#accountDialog.entry-account .account-tabs button{font:700 12px system-ui;padding:10px 4px;color:#d2b1e6}
#accountDialog.entry-account .account-tabs button.selected{background:#9b42e2;color:#fff}
#accountDialog.entry-account .field{font-size:12px;color:#e7d3f7;margin:14px 0;gap:7px}
#accountDialog.entry-account input:not([type=checkbox]){width:100%;min-width:0;font:400 16px system-ui;padding:12px 8px;background:#472b5c;color:white;border:1px solid #a97bcd;border-radius:11px}
#accountDialog.entry-account .password-field{flex-wrap:wrap;gap:6px}
#accountDialog.entry-account .password-field input{flex:1 1 100%}
#accountDialog.entry-account .password-field button{font-size:11px;background:transparent;color:#d5b1ef;border:0;margin-left:auto;padding:2px}
#accountDialog.entry-account .field small{font-size:10px;color:#b99acb}
#accountDialog.entry-account #registrationLegal .field{font-size:10px;line-height:1.5;margin:10px 0}
#accountDialog.entry-account #registrationLegal a{color:#e0b7ff}
#accountDialog.entry-account #registrationLegal input{accent-color:#b76bf0;width:15px;height:15px;vertical-align:middle}
#accountDialog.entry-account #accountSubmit{background:linear-gradient(120deg,#b65bf1,#8a2ce1);color:#fff;border:1px solid #c58aee;border-radius:14px;min-height:48px;font-size:13px;padding:12px 6px;line-height:1.3}
#accountDialog.entry-account #forgotPassword{font-size:11px;color:#dec0f1}
#accountDialog.entry-account #accountError{color:#ffd2df;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#accountDialog.entry-account>.entry-account-back{max-width:500px}
@media(min-width:700px){#accountDialog.entry-account .account-tabs{flex-direction:row}.entry-costume{flex:1}.entry-shell{padding-top:30px}.entry-card{padding:20px 24px}.entry-hero{height:56dvh}}
@media(prefers-reduced-motion:reduce){.entry-shell *,.entry-account *{animation:none!important;scroll-behavior:auto!important}}
/* Keep the logo above both frames. Only the frame's contents scroll. */
.entry-shell{overflow:hidden;padding:20dvh 12px 5dvh;display:block}
.entry-shell>.entry-brand{position:fixed;top:calc(4dvh + env(safe-area-inset-top));left:12px;right:12px;margin:0;height:11dvh;display:flex;flex-direction:column;justify-content:center;font-size:34px}
.entry-shell>.entry-brand span{display:contents}.entry-shell>.entry-brand small{flex:none}
.entry-inner{height:75dvh;max-height:75dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b477e5 #382146;border:1px solid #c28bf3;border-radius:25px;padding:18px 14px 16px;background:linear-gradient(145deg,#4d2c65,#211032);box-sizing:border-box}
.entry-inner .entry-card{padding:0;border:0;background:transparent;box-shadow:none}
.entry-inner .entry-progress{margin:0 0 16px}.entry-inner .entry-subtitle{margin-bottom:4px}
.entry-inner .entry-hero{height:38dvh;min-height:230px}
.entry-inner .entry-avatar.premium-avatar .head{height:9dvh;width:9dvh;min-height:55px;min-width:55px;font-size:7dvh}
.entry-inner .entry-avatar.premium-avatar .torso,.entry-inner .entry-avatar.premium-avatar .silhouette-body{width:18dvh!important;height:26.2dvh!important;min-width:110px;min-height:160px}
.entry-inner .entry-help{font-size:11px}.entry-inner .entry-error{overflow-wrap:anywhere}
body #accountDialog.entry-account{inset:20dvh 0 auto;margin:0 auto;width:min(800px,calc(100% - 24px));height:75dvh;max-height:75dvh;padding:14px;overflow:visible;border:1px solid #c28bf3;border-radius:25px;background:linear-gradient(145deg,#4d2c65,#211032);display:flex;flex-direction:column;gap:10px;box-shadow:0 12px 45px #10041e55}
body #accountDialog.entry-account:not([open]){display:none}
#accountDialog.entry-account>.entry-brand{position:fixed;top:calc(4dvh + env(safe-area-inset-top));left:12px;right:12px;margin:0;height:11dvh;display:flex;flex-direction:column;justify-content:center;font-size:34px}
#accountDialog.entry-account>.entry-brand span{display:contents}
#accountDialog.entry-account>.entry-progress{flex:none;margin:0;min-height:36px}
#accountDialog.entry-account>.entry-account-title{flex:none;margin:0;font-size:22px}
#accountDialog.entry-account .entry-account-layout{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;align-items:start;padding:8px 0;gap:8px;border:0;border-radius:0;background:transparent;width:100%}
#accountDialog.entry-account .entry-account-stage{position:sticky;top:0;min-height:260px;height:100%;max-height:360px}
#accountDialog.entry-account .entry-account-avatar .head{width:clamp(50px,15vw,86px);height:clamp(50px,15vw,86px);font-size:clamp(40px,12vw,70px)}
#accountDialog.entry-account .entry-account-avatar .torso,#accountDialog.entry-account .entry-account-avatar .silhouette-body{width:clamp(84px,28vw,166px)!important;height:clamp(122px,40.7vw,241px)!important}
#accountDialog.entry-account>.entry-account-back{flex:none;margin:0 auto;min-height:40px;padding:10px;font-size:12px}
.remember-account{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;color:var(--ink);margin:14px 0}
.remember-account input{accent-color:#9a44de;flex:none;width:17px;height:17px;margin:0}
#accountDialog.entry-account .remember-account{font-size:11px;color:#e8d3f8}
#entryCharacterForm button:disabled{opacity:.55;cursor:wait}
@media(max-height:500px){.entry-shell{padding-top:20dvh}.entry-inner{padding:12px}.entry-shell>.entry-brand,#accountDialog.entry-account>.entry-brand{font-size:24px}.entry-brand small{font-size:10px}#accountDialog.entry-account>.entry-account-title{font-size:18px}.entry-inner .entry-hero{min-height:180px}#accountDialog.entry-account .entry-account-stage{min-height:210px}}
.entry-shell>.entry-brand,#accountDialog.entry-account>.entry-brand{display:grid;place-items:center}
.entry-brand img{display:block;width:min(230px,62vw);height:auto;max-height:8dvh;object-fit:contain;background:#faf6ff;border-radius:18px;padding:8px 16px;box-sizing:content-box;box-shadow:0 4px 20px #14031e33}
/* Keep a real, tappable file control instead of a display:none gallery input. */
.entry-photo,.upload-label{position:relative;overflow:hidden}
.gallery-file-input{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer;font-size:16px;z-index:1}
.entry-photo:focus-within,.upload-label:focus-within{outline:3px solid #d5a4ff;outline-offset:3px}
#entryPhotoStatus{min-height:1.5em;overflow-wrap:anywhere}

/* Keep sign-in available in the top bar while creating a first character. */
body.entry-active header{visibility:visible;z-index:41}
body.entry-active .entry-shell{padding-top:calc(104px + var(--touchyou-safe-top))}
