*{box-sizing:border-box}body{margin:0;background:#e1dce6;color:#22182c;font:15px -apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.42;cursor:default}a{color:inherit}.studio{max-width:1110px;margin:0 auto;display:grid;grid-template-columns:330px 440px;gap:80px;padding:40px 32px;align-items:start}.review{position:sticky;top:40px}.brand{text-decoration:none;font-weight:800;font-size:26px;letter-spacing:-1.5px}.brand span{font-size:12px;font-weight:500;letter-spacing:0;margin-left:8px}.review h1{font-size:30px;line-height:1.35;letter-spacing:-1.3px;margin:38px 0 18px}.review>p{color:#65586f;line-height:1.8}.review nav{display:grid;gap:2px;margin:24px 0}.review nav button{background:none;border:0;text-align:left;padding:9px 12px;color:#71657a;border-left:2px solid transparent;font-size:14px}.review nav button[aria-current=step]{background:#d7c9e7;color:#46246c;border-color:#6335ba;font-weight:700}.review-controls{display:grid;gap:8px;border-top:1px solid #c1b7cb;padding-top:20px}.review-controls label{font-size:12px;color:#675d70}.review-controls select,.review-controls button{padding:10px;border:1px solid #b7a9c5;border-radius:6px;background:#e8e2ee;color:#4b385b;text-align:left}.meta{font-size:12px!important;line-height:1.8}.device{width:440px;border:8px solid #251c2d;border-radius:38px;overflow:hidden;box-shadow:0 24px 70px #2d13332c;background:#f0eff3}.prototype{text-align:center;background:#d8cde2;color:#49365c;font-size:10px;padding:8px 4px;letter-spacing:.1px}#app{height:820px;position:relative;overflow:auto;scroll-behavior:smooth;display:flex;flex-direction:column;background:#f0eff3}.top{height:68px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.wordmark{font-size:23px;font-weight:800;letter-spacing:-1.5px}.icon{border:0;background:none;padding:9px;font-size:23px;color:inherit;line-height:1;min-width:40px}.step{font-size:12px;color:#756a80}.track{height:2px;margin:0 24px;background:#dfd8e5;flex-shrink:0}.track span{display:block;height:100%;background:#6335ba}.content{padding:25px 22px 110px;flex:1}h2{font-size:28px;letter-spacing:-1.4px;line-height:1.25;margin:0 0 12px}h3{font-size:18px;letter-spacing:-.6px}p{line-height:1.65}.muted{color:#7a6e84;font-size:13px}.intro{color:#776a82;font-size:14px;margin:0 0 25px}.bottom{position:sticky;bottom:0;z-index:5;margin-top:-94px;min-height:94px;background:#f0eff3;padding:13px 22px 20px;border-top:1px solid #e3dce9;display:grid;align-content:center;gap:6px}.primary,.secondary{border:0;padding:16px 18px;border-radius:12px;font-size:15px;font-weight:700;width:100%;min-height:52px}.primary{background:#6335ba;color:#fff}.secondary{background:#e4ddeb;color:#4c3261}.text-button{border:0;background:none;padding:10px;color:#675474;text-decoration:underline;font-size:13px}.small-note{text-align:center;font-size:11px;color:#82758c}.landing{background:#28182e;color:#f4eef7;min-height:100%;display:flex;flex-direction:column}.landing .top{height:64px}.landing .poster{flex:1;min-height:510px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:36px 24px;background:linear-gradient(#24162c55,#25142ce8),url('assets/map.png') center/auto 100%}.event-date{font-size:15px;letter-spacing:1px}.poster h2{font-family:Georgia,serif;font-weight:400;font-size:66px;line-height:.98;letter-spacing:-3px;margin:22px 0}.poster .korean{font-size:18px;line-height:1.5;font-weight:600}.ticket{display:flex;justify-content:space-between;border-top:1px solid #a080ad;border-bottom:1px solid #a080ad;padding:15px 0;margin-top:36px;font-size:12px}.landing footer{padding:22px;background:#28182e}.landing .primary{background:#e2cef6;color:#382046}.landing footer p{font-size:11px;color:#bcabc5;text-align:center;margin-bottom:0}.photo-frame{height:320px;border-radius:180px 180px 16px 16px;background:#e2dce8;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #d1c6dd}.photo-frame img{width:100%;height:100%;object-fit:cover}.photo-placeholder{text-align:center;color:#9886a5;font-size:15px}.face-outline{margin:0 auto 18px;width:100px;height:135px;border:2px dashed #a08db2;border-radius:50%}.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.photo-actions button{border:1px solid #d2c5de;background:#e9e3ef;border-radius:10px;padding:13px 5px;font-size:13px;color:#5a426d}.tips{padding:12px 0;font-size:13px;color:#7c6f85;line-height:1.8}.filters{display:flex;gap:7px;overflow:auto;padding:0 0 16px;scrollbar-width:none}.filters button{white-space:nowrap;border:1px solid #d8cede;border-radius:30px;background:none;padding:9px 15px;font-size:13px;color:#6d6077}.filters button.active{background:#2f203b;color:white;border-color:#2f203b}.looks{display:grid;grid-template-columns:1fr 1fr;gap:17px 12px}.look{background:none;border:0;padding:0;text-align:left;color:#34263d;position:relative}.look .image{display:block;aspect-ratio:3/4;overflow:hidden;background:#eee9ef;border:2px solid transparent;border-radius:13px}.look img{width:100%;height:100%;object-fit:cover}.look.selected .image{border-color:#7a42c6}.look .check{display:none;position:absolute;top:9px;right:9px;width:24px;height:24px;background:#6c37b5;color:#fff;text-align:center;line-height:24px;border-radius:50%;font-size:13px}.look.selected .check{display:block}.look strong{display:block;font-size:14px;margin-top:9px;font-weight:650}.look small{display:block;color:#93829e;font-size:11px;margin-top:3px}.selection-line{font-size:12px;color:#7f668f}.portrait{background:#e9e3ed;border-radius:16px;overflow:hidden;text-align:center}.portrait img{width:100%;height:340px;object-fit:contain;display:block}.choices{display:grid;gap:9px;margin-top:20px}.choice{display:flex;align-items:center;justify-content:space-between;text-align:left;border:1px solid #d4c8df;background:none;border-radius:12px;padding:15px;color:#574264}.choice.active{background:#e7daf4;border-color:#9366bb}.choice strong{font-size:14px}.choice small{display:block;font-size:11px;color:#8d759a;margin-top:4px}.circle{width:20px;height:20px;border:1px solid #b8a7c9;border-radius:50%;padding:4px}.choice.active .circle:after{content:'';display:block;background:#7844af;border-radius:50%;width:100%;height:100%}.review-row{padding:16px 0;border-bottom:1px solid #ddd4e5;display:flex;justify-content:space-between;align-items:center}.review-row small{display:block;color:#92839e;font-size:11px;margin-bottom:5px}.review-row b{font-size:14px;font-weight:600}.review-row button{border:0;background:none;color:#77548d;text-decoration:underline;font-size:12px}.wait{padding:28px 24px 32px;text-align:center;display:flex;flex:1;flex-direction:column;align-items:center}.wait h2{font-size:29px}.wait>p{font-size:13px;color:#86738e}.wait-visual{width:225px;height:260px;display:flex;align-items:center;justify-content:center;margin:25px 0 20px;position:relative}.wait-visual img{width:100%;height:100%;object-fit:contain;border-radius:120px 120px 12px 12px}.spinner{position:absolute;inset:-8px;border:1px solid #d9c8e8;border-top:2px solid #8b50c0;border-radius:50%;animation:spin 2.5s linear infinite;pointer-events:none}.stage-list{text-align:left;width:100%;padding:12px 0;margin-top:12px}.stage-list div{padding:13px 0;font-size:13px;color:#9a8ba4;border-bottom:1px solid #e0d5e7}.stage-list div.current{color:#6335ba;font-weight:700}.wait .actions{margin-top:auto;width:100%;padding-top:20px}.wait .secondary{margin-top:9px}.alert{padding:14px;background:#ebe1ef;border-radius:10px;font-size:12px;color:#776381;line-height:1.7;width:100%;margin:16px 0}.field label{font-size:12px;display:block;color:#82708f;margin-bottom:8px}.field input{width:100%;padding:14px 12px;border:1px solid #cbb9dc;background:#f5f1f8;border-radius:10px;color:#3c2949}.field{margin-top:24px}.result-banner{font-family:Georgia,serif;font-size:36px;letter-spacing:-1px;margin:0 0 8px}.map-screen{position:relative;background:#1c1421;flex:1;min-height:752px;color:white;overflow:hidden;display:flex;flex-direction:column}.map-screen .top{z-index:2}.map-art{position:absolute;inset:0;background:url('assets/map.png') center/auto 100%}.map-screen.close .map-art{background-size:auto 200%;background-position:50% 48%}.map-tools{position:relative;padding:10px 18px;display:flex;gap:8px;z-index:1}.map-tools button{border:1px solid #c3a3d155;color:#f1e4f6;background:#38273ee6;border-radius:30px;padding:10px;font-size:12px}.my-dot{position:absolute;left:55%;top:50%;z-index:2;text-align:center}.my-dot span{display:block;width:16px;height:16px;margin:auto;border-radius:50%;background:#e5c2ff;box-shadow:0 0 0 5px #e3c1fb40}.my-dot b{display:block;background:#392541ee;padding:5px 10px;margin-top:9px;border-radius:6px;font-size:12px}.map-bottom{margin-top:auto;position:relative;z-index:2;background:#291b32ed;border-top:1px solid #a47bb74d;padding:22px}.map-bottom h2{font-size:20px;margin-bottom:7px}.map-bottom p{font-size:12px;color:#bda6c8;margin-bottom:18px}.map-bottom .primary{background:#dbc2ef;color:#422650}.sheet-backdrop{position:absolute;inset:0;background:#1c0d2980;z-index:10;display:flex;align-items:flex-end}.sheet{background:#f0eff3;color:#31213f;width:100%;border-radius:22px 22px 0 0;padding:22px}.sheet .portrait img{height:280px}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h2{font-size:23px}.sheet button.primary{margin-top:16px}#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#2c1d3a;color:white;max-width:90vw;padding:13px 22px;border-radius:12px;z-index:30;display:none;font-size:13px}#toast.show{display:block}.empty{padding:36px 0;text-align:center;color:#8b789b}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}#app{scroll-behavior:auto}}@media(max-width:850px){.studio{gap:30px;padding:24px;grid-template-columns:240px 400px}.device{width:400px}.review h1{font-size:25px}}@media(max-width:700px){body{background:#f0eff3}.studio{display:block;padding:0}.review{position:relative;padding:14px 18px;background:#e3dce9}.review .brand{font-size:20px}.review h1,.review>p,.review-controls,.review .meta{display:none}.review nav{display:flex;overflow:auto;gap:6px;margin:12px 0 0}.review nav button{font-size:11px;padding:7px 8px;white-space:nowrap;border-left:0;border-bottom:2px solid transparent}.review nav button[aria-current=step]{border-bottom-color:#6335ba}.device{width:100%;border:0;border-radius:0;box-shadow:none}#app{height:calc(100dvh - 116px);min-height:560px}.prototype{padding:5px;font-size:9px}.content{padding-top:22px}.poster h2{font-size:65px}.landing .poster{min-height:440px}.top{height:60px}.map-screen{min-height:calc(100dvh - 136px)}}
@media(min-width:701px){#app{height:min(820px,calc(100dvh - 105px));min-height:560px}.landing .poster{min-height:0;padding-top:22px;padding-bottom:22px}.poster h2{font-size:60px;margin:16px 0}.ticket{margin-top:24px}}
@media(max-width:700px){.landing .poster{min-height:0}.poster h2{font-size:58px;margin:16px 0}.ticket{margin-top:24px}}
.look .image{aspect-ratio:1/1.12}.look img{object-fit:contain}
@media(min-width:701px){.studio{padding-top:24px;padding-bottom:24px}.review{top:24px;max-height:calc(100dvh - 48px);overflow:auto;padding-right:10px;scrollbar-width:thin}.review h1{margin-top:25px}.review nav{margin:18px 0}.review nav button{padding:7px 10px}}

body{display:flex;justify-content:center;min-height:100dvh}.device{width:100%;max-width:480px;height:100dvh;border-radius:0;border:0}.wait-visual img{opacity:.7}
.photo-frame img{object-fit:contain;object-position:top center}

.preview-status{padding:10px 12px;background:#eee7f5;color:#4b3566;font-size:12px;text-align:center;line-height:1.5}.device #app{height:calc(100% - 48px)}

/* Halloween-specific entrance environment; existing avatar imagery untouched. */
.landing .poster{background:linear-gradient(90deg,rgba(13,7,20,.12),rgba(13,7,20,.02)),url('assets/event-entrance-91e7ff824b60.png') center/cover}

/* Fit the approved event title on narrow participant screens. */
.poster h2{font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:clamp(30px,9.5vw,48px);font-weight:800;line-height:1.08;letter-spacing:-2px}.poster .korean{font-size:16px}.ticket{gap:5px;font-size:11px}

/* Shared popup journey structure, with Halloween theme colors. */
.participant-header{display:grid;grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);padding:12px 20px;height:76px;gap:8px}.participant-header .wordmark{justify-self:center;margin-left:0;font-size:25px;line-height:.9;text-align:center;letter-spacing:-1.3px}.wordmark small{display:block;font-size:9px;font-weight:500;letter-spacing:1px;margin-top:5px}.header-account{display:flex;gap:8px;justify-content:flex-end;align-items:center}.account-button{width:36px;height:36px;border:1px solid #d7cddd;border-radius:50%;background:transparent;padding:7px;color:#4b365e;flex-shrink:0}.account-button svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.6}.usage-chip{white-space:nowrap;font-size:11px;padding:7px;border-radius:20px;background:#e9dff4;color:#6335ba}.journey-progress{margin:8px 24px 0}.journey-progress .track{margin:0;height:3px;border-radius:3px}.journey-caption{display:flex;justify-content:space-between;font-size:11px;color:#817588;margin-top:10px}.content h2{font-size:26px;line-height:1.35;letter-spacing:-1px}.photo-content{padding:34px 24px 24px;display:flex;flex-direction:column;flex:1}.photo-content .intro{font-size:14px;margin-bottom:0}.photo-guidance{margin:36px 0 28px;text-align:center;color:#817588}.photo-guidance svg{width:72px;height:72px;stroke:#aa95bb;stroke-width:1.5}.photo-guidance p{font-size:12px;line-height:1.8;margin-top:14px}.photo-content .photo-frame{height:230px;max-width:220px;margin:22px auto;border-radius:16px}.photo-content .photo-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:auto;padding-top:24px}.photo-content .photo-actions button{min-height:52px;border-radius:12px;font-weight:600}.photo-content .photo-actions .primary{background:#6335ba;color:white;border:0}.photo-content .photo-actions .secondary{background:transparent;border:1px solid #d4c8df;color:#594268}.photo-privacy{text-align:center;color:#8a7e93;font-size:11px;margin:16px 0 0}@media(max-height:700px){.photo-content{padding-top:22px}.photo-guidance{margin:22px 0 12px}.photo-guidance svg{width:56px;height:56px}}

.wordmark img{display:block;width:104px;height:auto}.landing .wordmark img,.map-screen .wordmark img{filter:invert(1)}

.device{--halloween-primary:#6335ba;--halloween-guide:#9572c8;--halloween-icon:#baa8d2;--ui-blue:var(--halloween-primary)}.device .visitor-primary:hover{background:#52279f}.device .visitor-primary:focus-visible{outline:3px solid #baa8d2;outline-offset:4px}

.device #app{height:100%}
