:root{--ink: #4a3358;--ink-soft: #7d6888;--rose: #ff8fb3;--rose-deep: #f4729a;--paper: rgba(255, 252, 255, .86);--shadow: 0 16px 40px rgba(176, 132, 186, .22);--font: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--display: "Jua", "Pretendard", sans-serif;color:var(--ink);font-family:var(--font);background:#f6e4fb}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{min-height:100dvh;min-height:var(--tg-vh, 100dvh);color:var(--ink)}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit}img{max-width:100%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}:focus-visible{outline:3px solid #f08bb0;outline-offset:3px}.sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background-color:#f6e4fb;background-image:radial-gradient(circle at 14% 16%,#fff 0 1.6px,transparent 2.4px),radial-gradient(circle at 78% 10%,#ffe7a8 0 2.2px,transparent 3px),radial-gradient(circle at 88% 28%,#fff 0 1.4px,transparent 2.2px),radial-gradient(circle at 22% 72%,#fff 0 1.8px,transparent 2.6px),radial-gradient(circle at 70% 80%,#ffe7a8 0 2px,transparent 3px),radial-gradient(circle at 40% 40%,rgba(255,255,255,.9) 0 1px,transparent 2px),linear-gradient(180deg,#e7d6fb,#ffd6ea 46%,#d9fff4);background-repeat:no-repeat}.sky.has-photo{background-image:var(--bg-photo);background-size:cover;background-position:center top}.shell{position:relative;z-index:1;width:min(480px,100%);margin:0 auto;min-height:100dvh;min-height:var(--tg-vh, 100dvh);display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom))}#screen{flex:1;display:flex;flex-direction:column}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.brand{display:flex;align-items:center;gap:10px}.brand-mark,.banner-mark{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#ffb7d5,#c9b6ef);color:#fff;font-family:var(--display);font-size:20px;box-shadow:0 8px 16px #d696ba59}.brand-kicker{margin:0;font-size:12px;letter-spacing:.04em;color:var(--ink-soft)}h1{margin:0;font-family:var(--display);font-size:28px;font-weight:400;line-height:1.1}.mute{width:44px;height:44px;border:0;border-radius:50%;background:#ffffffb8;color:var(--ink);display:grid;place-items:center;box-shadow:var(--shadow)}.mute svg{width:22px;height:22px}.mute .slash,.mute.is-muted .wave{display:none}.mute.is-muted .slash{display:block}.status-pill{align-self:center;margin:4px 0 8px;padding:7px 14px;border-radius:999px;background:#ffffffc7;color:var(--ink);font-size:13px;font-weight:700;box-shadow:0 6px 16px #b48cbe29}.stage{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;min-height:68dvh}.machine-wrap{display:flex;justify-content:center}.machine{border:0;background:transparent;padding:0;cursor:pointer}.machine:disabled{cursor:default}.machine-frame{width:min(340px,86vw);height:min(48dvh,480px);display:flex;align-items:flex-end;justify-content:center}.machine-photo,.machine-svg{display:block;width:auto;height:auto;max-width:100%;max-height:100%;min-height:0;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(186,140,190,.28))}.stage.phase-idle .machine-wrap{animation:floaty 4.8s ease-in-out infinite}.stage.phase-shake .machine-wrap{animation:shake .48s ease-in-out}.art-frame .art-fallback,.art-frame.fallback .art-photo{display:none}.art-frame.fallback .art-fallback{display:block;width:100%;height:100%}.machine-fallback{width:min(300px,76vw)}.hint{margin:8px 0 0;text-align:center;font-family:var(--display);font-size:20px;font-weight:400}.home-actions,.actions{width:100%;display:flex;flex-direction:column;gap:8px;margin-top:12px}.actions.minor{margin-top:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;min-height:48px;padding:12px 18px;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none}.btn.primary{color:#fff;background:linear-gradient(180deg,#ffb0cb,#f4729a);box-shadow:0 10px 20px #f4729a47}.btn.ghost,.text-btn{background:#ffffffc7;color:var(--ink);box-shadow:0 8px 18px #b48cbe1f}.btn.slim{margin-top:12px;min-height:42px}.btn span{display:inline-block;margin-left:6px;color:var(--rose-deep)}.text-btn{border:0;border-radius:999px;padding:8px 12px;font-weight:700}.fine,.ad-note,.empty{text-align:center;color:var(--ink-soft);font-size:13px;line-height:1.5}.ad-note{margin:10px 0 0;color:#9a4d78;font-weight:700}.banner{margin-top:14px;display:flex;align-items:center;gap:12px;padding:12px;border-radius:20px;text-decoration:none;color:inherit;background:linear-gradient(135deg,#ffffffeb,#ffe4f2eb);box-shadow:var(--shadow)}.banner-mark{width:42px;height:42px;border-radius:14px;font-size:16px;flex:none}.banner-copy{display:flex;flex-direction:column;flex:1}.banner-copy strong{font-size:15px}.banner-copy small{color:var(--ink-soft)}.banner-go{font-size:12px;font-weight:800;color:#fff;background:#f48ab0;border-radius:999px;padding:7px 10px}.capsule{position:absolute;left:50%;top:48%;width:min(290px,78vw);aspect-ratio:1;border:0;padding:0;background:transparent;transform:translate(-50%,-50%);z-index:4;cursor:pointer}.stage.phase-roll .capsule{opacity:0;pointer-events:none}.stage.phase-ready .capsule{animation:bob 1.7s ease-in-out infinite}.capsule-frame,.capsule-photo,.cap-css{width:100%;height:100%}.capsule-photo{object-fit:contain;filter:drop-shadow(0 16px 16px rgba(186,140,190,.25))}.stage.phase-ready .machine-wrap,.stage.phase-open .machine-wrap{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.pop-glow,.hero-face,.pop-face,.pop-name,.burst{position:absolute}.pop-glow{left:50%;top:48%;width:58%;aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.95),var(--accent, #ffd0e4) 42%,transparent 70%);opacity:.85;z-index:1;border-radius:50%}.pop-face,.hero-face{left:50%;top:47%;width:48%;height:auto;transform:translate(-50%,-52%);z-index:2;filter:drop-shadow(0 10px 12px rgba(120,80,140,.25))}html:not(.reduce-motion) .pop-face{animation:pop .72s cubic-bezier(.16,1.35,.4,1) both}.pop-name{left:50%;bottom:6%;transform:translate(-50%);z-index:3;padding:4px 12px;border-radius:999px;background:#ffffffe0;font-family:var(--display);font-size:18px;white-space:nowrap}.burst{top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.burst i{position:absolute;left:50%;top:46%;width:var(--s);height:var(--s);background:var(--c);border-radius:50%;opacity:0;transform:translate(-50%,-50%)}html:not(.reduce-motion) .burst i{animation:spark .82s ease-out var(--delay) forwards}.burst i.star{border-radius:2px;clip-path:polygon(50% 0%,62% 36%,100% 38%,70% 60%,80% 100%,50% 76%,20% 100%,30% 60%,0 38%,38% 36%)}.cap-css{position:relative;display:block}.cap-top,.cap-bottom{position:absolute;left:8%;right:8%;height:46%}.cap-top{top:4%;border-radius:140px 140px 24px 24px;background:radial-gradient(circle at 32% 28%,#fff 0,#fff 8%,#ffd0e0 18%,#ffb3cc 70%)}.cap-bottom{bottom:4%;border-radius:24px 24px 140px 140px;background:radial-gradient(circle at 30% 30%,#fff 0,#fff 10%,#fff8fb 40%,#f4e7ee)}.cap-band{position:absolute;left:10%;right:10%;top:47%;height:8%;border-radius:999px;background:linear-gradient(90deg,#f6e2a8,#fff6d4,#e7c56d)}.cap-css.is-open .cap-top{top:0;transform:rotate(-16deg);transform-origin:80% 100%}.cap-css.is-open .cap-bottom{bottom:0}.ticket{background:var(--paper);border-radius:28px;padding:16px 16px 18px;box-shadow:var(--shadow);border:2px solid color-mix(in srgb,var(--accent, #ffd0e4) 70%,white)}.ticket-date{margin:0;text-align:center;color:var(--ink-soft);font-size:13px}.ticket-hero{position:relative;width:min(250px,70vw);margin:0 auto;aspect-ratio:1}.ticket-hero .pop-glow{opacity:.7}.who{margin:4px 0 8px;text-align:center;font-family:var(--display);font-size:32px;font-weight:400;color:var(--accent, var(--ink))}.fortune-block{padding:10px 4px;border-top:1px dashed #f0d4e6}.fortune-block h3{margin:0 0 4px;font-size:13px;letter-spacing:.08em;color:var(--rose-deep)}.fortune-block p{margin:0;line-height:1.55;font-size:15px}.stars{letter-spacing:2px;font-size:18px;margin-bottom:4px}.stars .on{color:#f0b429}.stars .off{color:#ecdff2}.luck-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.luck{display:flex;align-items:center;gap:8px;background:#ffffffb3;border-radius:16px;padding:8px}.luck small{display:block;color:var(--ink-soft);font-size:11px}.luck strong{font-size:14px}.swatch,.num{width:36px;height:36px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 2px #fffc}.num{display:grid;place-items:center;background:#fff4c8;font-family:var(--display);font-size:18px}.signoff{margin:14px 0 0;text-align:center;font-family:var(--display);font-size:18px;line-height:1.45}.empty-ticket{text-align:center}.empty-ticket h2{font-family:var(--display);font-weight:400}.dex-head{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.dex-head h2{margin:0;font-family:var(--display);font-size:30px;font-weight:400}.dex-head p{margin:0 0 8px;color:var(--ink-soft)}.dex-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dex-card{background:var(--paper);border-radius:22px;padding:12px 8px 14px;text-align:center;box-shadow:0 10px 24px #b48cbe1f}.dex-card h3{margin:0;font-family:var(--display);font-size:18px;font-weight:400}.dex-card p{margin:2px 0 0;color:var(--ink-soft);font-size:13px;font-weight:700}.portrait{width:108px;height:108px;margin:0 auto 8px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#fff,#f4e8f8 72%)}.dex-card.is-found .portrait{box-shadow:0 0 0 3px var(--accent, #ffd0e4)}.portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%}.dex-card.is-missing img{filter:brightness(0);opacity:.55}.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%) translateY(12px);opacity:0;pointer-events:none;z-index:30;max-width:min(420px,92vw);padding:12px 16px;border-radius:999px;background:#4a3358;color:#fff;font-size:14px;text-align:center;transition:opacity .2s ease,transform .2s ease}.toast.is-on{opacity:1;transform:translate(-50%) translateY(0)}.ad-wait{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:none;place-items:center;background:#fff4fac7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;padding:24px}.ad-wait.is-on{display:grid}.ad-wait p{margin:0;font-family:var(--display);font-size:26px;line-height:1.35}.boot-error{min-height:100dvh;display:grid;place-items:center;text-align:center;padding:24px}.boot-error button{border:0;border-radius:999px;padding:12px 18px;background:#f4729a;color:#fff;font-weight:700}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes shake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-4px) rotate(-1.4deg)}40%{transform:translate(4px) rotate(1.3deg)}60%{transform:translate(-3px) rotate(-.8deg)}80%{transform:translate(2px) rotate(.6deg)}}@keyframes bob{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 8px))}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-20%) scale(.2)}70%{opacity:1;transform:translate(-50%,-60%) scale(1.06)}to{opacity:1;transform:translate(-50%,-52%) scale(1)}}@keyframes spark{0%{opacity:1;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(1)}}@media(min-width:720px){.home-actions,.actions{flex-direction:row}.actions .btn,.home-actions .btn{flex:1}.shell{width:min(460px,calc(100vw - 48px));margin:24px auto;min-height:calc(100dvh - 48px);border-radius:36px;background:#ffffff3d;border:1px solid rgba(255,255,255,.55);box-shadow:0 24px 70px #aa82be40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@media(max-width:719px){.actions.minor{flex-direction:row}.actions.minor .btn{flex:1}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important}
