@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";:root{--bg: #f7f7f7;--bg-card: #ffffff;--ink: #2b2b2b;--ink-soft: #555555;--muted: #8b8b8b;--line: #ececec;--analyst: #88619a;--diplomat: #33a474;--sentinel: #4298b4;--explorer: #e4ae3a;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .05);--shadow: 0 8px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .1);--radius: 14px;--font: "Nunito", -apple-system, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;min-height:100dvh}#app{min-height:100vh;min-height:100dvh;max-width:100vw;overflow:hidden;display:flex;flex-direction:column;align-items:center}button{font-family:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit;font-weight:700}button:disabled{cursor:not-allowed;opacity:.5}.app-header{width:100%;padding:28px 20px 8px;text-align:center}.brand{font-size:13px;font-weight:800;letter-spacing:.32em;color:var(--ink)}.brand-sub{font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:.12em;font-weight:600}.app-main{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px}.app-main>*{width:100%;max-width:420px;margin-left:auto;margin-right:auto}.hero{text-align:center;padding:24px 0;display:flex;flex-direction:column;align-items:center}.hero h1{font-size:42px;font-weight:900;line-height:1.1;margin:0 0 18px;letter-spacing:-.02em}.hero p{font-size:15px;color:var(--ink-soft);margin:0 0 32px;line-height:1.7;max-width:360px}.hero .quote{color:var(--muted);font-size:13px;font-style:italic;margin-bottom:36px}.card-wrap{display:flex;flex-direction:column;align-items:center;justify-content:start;flex:1;width:100%}.roll-stage{width:100%;max-width:360px;height:560px;position:relative;perspective:1400px;margin:0 auto;overflow:visible}.roll-stage .card{position:absolute;top:0;left:0;right:0;width:100%;max-width:360px;margin:0 auto}.roll-stage .stage-current{z-index:1}.roll-stage .stage-falling.card.compact{z-index:2;pointer-events:none;transform-origin:50% 40%;animation:cardFall .7s cubic-bezier(.33,0,.67,.2) var(--delay, 0) forwards!important;will-change:transform}@keyframes cardFall{0%{transform:translate(0) rotate(0)}to{transform:translate(var(--drop-x),100vh) rotate(var(--drop-rotate));transform-origin:var(--drop-rotate-origin, 50% 40%)}}.rolling-banner{width:100%;display:flex;justify-content:center;margin-bottom:22px}.rolling-badge{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;font-size:14px;font-weight:800;letter-spacing:.12em;padding:12px 22px;border-radius:999px;box-shadow:var(--shadow);animation:badgePulse 1.2s ease-in-out infinite}.rolling-badge:before{content:"";width:10px;height:10px;border-radius:50%;background:#ff4757;box-shadow:0 0 #ff4757b3;animation:dotBlink 1s ease-in-out infinite}@keyframes dotBlink{0%,to{box-shadow:0 0 #ff4757b3}50%{box-shadow:0 0 0 8px #ff475700}}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.rolling-badge:after{content:"...";display:inline-block;width:16px;text-align:left;animation:dots 1s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%,to{content:"..."}}.card.compact{height:540px;display:flex;flex-direction:column;animation:none}.card.compact .card-illust{flex:0 0 320px;min-height:320px}.card.compact .card-body{flex:1 1 auto;min-height:220px;display:flex;flex-direction:column}.card.compact .card-desc{display:none}.card{width:100%;max-width:360px;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative}@keyframes cardIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.card-illust{position:relative;background:#fff;padding:28px 24px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:320px;overflow:hidden}.card-illust-bg{position:absolute;top:0;left:0;right:0;height:50%;background:var(--card-soft, #efe5f3);z-index:0}.card-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:28px;display:block;pointer-events:none}.card-wave path{fill:#fff}.card-category{position:relative;z-index:1;font-size:13px;font-weight:600;color:var(--card-color, #88619a);margin-bottom:6px;letter-spacing:.02em;opacity:.85}.card-title{position:relative;z-index:1;font-size:24px;font-weight:900;margin:0 0 12px;color:var(--card-color, #88619a);letter-spacing:-.01em;line-height:1.2}.card-title-code{font-weight:900;letter-spacing:.01em}.card-emoji{position:relative;z-index:1;font-size:140px;line-height:1;filter:drop-shadow(0 8px 24px rgba(0,0,0,.18));margin-top:4px}.card-emoji.has-image{width:200px;height:200px;margin-top:0;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 10px 26px rgba(0,0,0,.18))}.card-image{width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.card-body{padding:22px 26px 26px}.card-tagline{font-size:12px;color:var(--muted);font-style:italic;margin-bottom:10px;letter-spacing:.02em;text-align:center}.card-summary{font-size:16px;font-weight:800;color:var(--ink);text-align:center;margin:0 0 18px;line-height:1.45;padding:0 4px}.card-traits{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.card-trait{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--card-soft, #efe5f3);color:var(--card-color, #88619a)}.card-desc{font-size:14px;line-height:1.75;color:var(--ink-soft);margin:0;font-weight:500}.card-url{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);text-align:center;font-size:11px;letter-spacing:.08em;color:var(--muted);font-weight:700;text-transform:lowercase}.card.compact .card-url{margin-top:14px;padding-top:10px}.actions{margin-top:28px;display:flex;flex-direction:column;gap:12px;align-items:center;width:100%;max-width:360px}.btn{width:100%;height:52px;border-radius:999px;font-size:15px;font-weight:800;letter-spacing:.02em;transition:transform .15s,box-shadow .2s,background .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--ink);color:#fff;box-shadow:var(--shadow)}.btn-primary:active:not(:disabled){transform:translateY(1px) scale(.99)}.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}.btn-ghost:active:not(:disabled){background:var(--ink);color:#fff}.btn-small{height:42px;font-size:13px;padding:0 22px;width:auto;border:2px solid var(--line);background:#fff;color:var(--ink-soft)}.btn-small:active{background:var(--bg)}.share-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.share-sheet{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:520px;max-height:92vh;padding:22px 20px calc(20px + env(safe-area-inset-bottom));animation:slideUp .25s cubic-bezier(.2,.9,.3,1);max-height:90vh;overflow-y:auto}.share-preview-wrap{background:var(--bg);border-radius:16px;padding:20px;margin-bottom:16px;display:flex;justify-content:center}.share-preview{width:100%;max-width:320px}.share-preview .card{max-width:100%;box-shadow:var(--shadow)}.share-preview .card-illust{min-height:280px}.share-preview .card-emoji{font-size:110px}.share-preview .card-emoji.has-image{width:160px;height:160px}.share-toggle{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg);border-radius:999px;margin-bottom:16px;cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content;margin-left:auto;margin-right:auto}.share-toggle input{display:none}.toggle-track{width:36px;height:20px;background:#d0d0d0;border-radius:999px;position:relative;transition:background .2s}.toggle-dot{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.share-toggle input:checked+.toggle-track{background:var(--ink)}.share-toggle input:checked+.toggle-track .toggle-dot{transform:translate(16px)}.toggle-label{font-size:13px;font-weight:700;color:var(--ink)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.share-title{font-size:18px;font-weight:900;margin:0 0 14px;text-align:center}.share-actions{display:flex;gap:12px;margin-top:18px}.share-actions .btn{flex:1}.app-footer{width:100%;max-width:540px;padding:40px 24px 36px;text-align:center;color:var(--muted);align-self:center}.app-footer .divider{width:32px;height:2px;background:var(--ink);margin:0 auto 22px;border-radius:2px}.app-footer p{font-size:13px;line-height:1.95;margin:0;color:var(--ink-soft);font-weight:500}.app-footer .signature{margin-top:18px;font-size:10px;letter-spacing:.25em;color:var(--muted);font-weight:800}.toast{position:fixed;bottom:36px;left:50%;transform:translate(-50%);background:#2b2b2bf0;color:#fff;padding:11px 22px;border-radius:999px;font-size:13px;font-weight:700;z-index:200;animation:toastIn .25s,toastOut .25s 1.8s forwards}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translate(-50%) translateY(10px)}}@media(min-width:768px){.hero h1{font-size:56px}.app-main{padding:56px 20px}.card,.actions{max-width:360px}}.card.ultimate-tier .card-illust{background:linear-gradient(160deg,#2b2b2b,#1a1a1a)}.card.ultimate-tier .card-category,.card.ultimate-tier .card-title{color:#c9a227}.card.ultimate-tier .card-emoji{filter:drop-shadow(0 6px 20px rgba(201,162,39,.4))}.card.ultimate-tier .card-trait{background:#fbf3df;color:#8a6c10}.card.secret-tier .card-illust{background:linear-gradient(160deg,#fde9d9,#f5d6f0,#d6e5f5)}.card.secret-tier .card-category{color:#2b2b2b}.card.secret-tier .card-title{background:linear-gradient(90deg,#88619a,#33a474,#4298b4,#e4ae3a);-webkit-background-clip:text;background-clip:text;color:transparent}.card.secret-tier .card-trait{background:#2b2b2b;color:#fff}
