:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#172642;--muted:#617087;--paper:#f6f8fb;--surface:#fff;--line:#dce2ea;--red:#e8414f;--red-dark:#bf2635;--yellow:#f5c542;--teal:#19a78f;--blue:#3578df;--purple:#7457d7;--shadow:0 12px 34px #1726421c;font-family:Avenir Next Rounded,Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--paper)}body{min-width:320px;color:var(--ink);background:#8ed7ff url(/assets/adventure-world.png) top/cover no-repeat fixed;margin:0;line-height:1.55}button,input{font:inherit}button{cursor:pointer}button[disabled]{cursor:not-allowed}:is(button:focus-visible,input:focus-visible){outline-offset:2px;outline:3px solid #3578df59}[hidden]{display:none!important}.auth-gate{z-index:2;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1.05fr) minmax(310px,.7fr);align-items:center;gap:18px;width:min(980px,100% - 32px);min-height:100vh;margin:0 auto;padding:28px 0;display:grid;position:relative}.auth-welcome{text-align:center;grid-column:1/-1;align-self:end;padding:8px 12px 20px}.auth-welcome-kicker{color:var(--red-dark);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:.82rem;font-weight:900}.auth-welcome-title{color:#f7c928;letter-spacing:0;-webkit-text-stroke:3px #2b4f9f;paint-order:stroke fill;text-shadow:0 0 #fff,0 0 #fff,5px 5px #e8414f,8px 8px #172642;margin:0;font-family:Cooper Black,Avenir Next Rounded,Arial Rounded MT Bold,system-ui,sans-serif;font-size:clamp(2rem,4.5vw,3.55rem);line-height:1.08}.auth-hero,.auth-panel{border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);background:#fffce5f7;border-radius:8px}.auth-hero{grid-template-columns:minmax(0,1fr) 210px;align-items:center;min-height:340px;padding:34px;display:grid;overflow:hidden}.auth-hero h1{font-size:2.65rem}.auth-hero p:last-child{max-width:460px;color:var(--muted)}.auth-hero img{filter:drop-shadow(0 16px 9px #17264233);width:min(100%,210px)}.auth-panel{background:#fffffff7;padding:22px}.auth-tabs{border:1px solid var(--line);background:#f3f6fa;border-radius:7px;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:18px;padding:4px;display:grid}.auth-tabs button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:5px;font-weight:850}.auth-tabs button.active{color:#fff;background:var(--ink)}.auth-form{gap:8px;display:grid}.auth-form label{margin-top:6px;font-weight:800}.auth-form input{width:100%;min-height:44px;color:var(--ink);background:#fff;border:2px solid #b8c1cf;border-radius:6px;padding:8px 12px}.auth-form .primary-button{width:100%;margin-top:10px}.auth-message{min-height:24px;color:var(--red-dark);margin:12px 0 0;font-weight:750}.auth-progress{min-height:24px;color:var(--blue);align-items:center;gap:9px;margin-top:8px;font-size:.82rem;font-weight:850;display:flex}.auth-progress-bar{background:#dbe6f6;border-radius:5px;width:68px;height:7px;display:block;position:relative;overflow:hidden}.auth-progress-bar:after{border-radius:inherit;content:"";background:var(--blue);width:42%;animation:1.05s ease-in-out infinite authProgress;position:absolute;inset:0 auto 0 0}.footer-credit{color:var(--muted);margin-top:4px;font-size:.78rem;font-weight:800;display:block}.app-shell{z-index:2;width:min(1180px,100% - 32px);min-height:100vh;margin:0 auto;padding-bottom:110px;position:relative}.topbar{border:3px solid var(--ink);min-height:76px;box-shadow:5px 5px 0 var(--ink);background:#fffce5f5;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:14px 0 18px;padding:10px 14px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;font-size:1.18rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{border:3px solid var(--ink);width:38px;height:38px;color:var(--ink);background:var(--yellow);box-shadow:3px 3px 0 var(--ink);border-radius:50%;place-items:center;display:grid}.quick-stats{align-items:center;gap:8px;display:flex}.audio-controls{gap:6px;display:inline-flex}.status-pill{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--muted);border-radius:6px;align-items:center;gap:7px;padding:6px 12px;font-size:.88rem;display:inline-flex}.status-pill strong{color:var(--ink);font-size:1rem}.ticket-pill{background:#fff8d7;border-color:#e8bf37}.ticket-pill span{color:#8b6500;font-weight:800}.trainer-chip{text-overflow:ellipsis;white-space:nowrap;border:2px solid var(--ink);max-width:140px;min-height:34px;color:var(--ink);background:#eaf8f5;border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:850;overflow:hidden}.sync-status{min-width:72px;color:var(--muted);text-align:center;font-size:.78rem;font-weight:800}.sync-status.warning{color:var(--red-dark)}.logout-button{background:#fff;flex-basis:38px;width:38px;height:38px}main{min-height:calc(100vh - 180px)}.view[hidden]{display:none}.play-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px;display:grid}.world-decor{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.world-decor img{object-fit:contain;filter:drop-shadow(0 14px 8px #1726424d);height:auto;position:absolute}.world-pikachu{width:190px;bottom:4%;right:-24px;transform:rotate(-6deg)}.world-eevee{width:178px;bottom:2%;left:-26px;transform:rotate(7deg)}.world-bulbasaur{width:130px;top:41%;right:2%;transform:rotate(4deg)}.draw-station{border:3px solid var(--ink);min-height:390px;box-shadow:9px 9px 0 var(--yellow), 13px 13px 0 var(--ink);background:#fffdf0;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(210px,.68fr);display:grid;position:relative;overflow:hidden}.draw-station:before{content:"";background:var(--red);width:12px;position:absolute;inset:0 auto 0 0}.station-copy{z-index:1;flex-direction:column;justify-content:center;padding:48px 24px 48px 46px;display:flex}.route-tag{z-index:3;border:2px solid var(--ink);color:var(--ink);background:var(--yellow);border-radius:5px;padding:5px 10px;font-size:.72rem;font-weight:900;position:absolute;top:14px;left:28px;transform:rotate(-1deg)}.eyebrow{color:var(--red-dark);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:850}h1,h2,p{overflow-wrap:anywhere}h1{letter-spacing:0;margin:0;font-size:3rem;line-height:1.12}h2{letter-spacing:0;margin:0;font-size:1.35rem;line-height:1.25}.station-note{color:var(--muted);margin:18px 0 24px;font-size:1rem}.draw-actions{align-items:center;gap:10px;display:flex}.primary-button,.secondary-button{border:2px solid var(--ink);border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 18px;font-weight:800;display:inline-flex}.primary-button{color:#fff;background:var(--red);box-shadow:4px 4px 0 var(--yellow), 7px 7px 0 var(--ink)}.primary-button:hover{background:var(--red-dark);transform:translateY(-1px)}.primary-button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.primary-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.primary-button.compact{white-space:nowrap;min-height:44px}.secondary-button{color:var(--ink);background:var(--surface)}.admin-panel{border:1px solid var(--line);background:#fffffff5;padding:18px}.admin-toolbar{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.admin-toolbar label{width:100%;font-weight:800}.admin-toolbar input{border:2px solid #b8c1cf;border-radius:6px;flex:260px;min-height:44px;padding:8px 12px}.admin-message{min-height:24px;color:var(--muted);font-weight:750}.admin-users{gap:8px;display:grid}.admin-user-row{border:1px solid var(--line);background:#fffdf0;align-items:center;gap:12px;min-height:58px;padding:10px 12px;display:flex}.admin-user-row strong{min-width:150px}.admin-user-row span{color:var(--muted);flex:1;font-size:.86rem}.admin-user-row input{border:1px solid #b8c1cf;border-radius:5px;min-width:120px;min-height:38px;padding:6px 8px}.admin-note-input{flex:150px}.admin-limit-input{width:78px}.admin-card-list{width:100%;color:var(--muted);line-height:1.45}.admin-detail-heading{align-items:center}.admin-detail-heading .secondary-button{flex:none}.admin-detail-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px;display:grid}.admin-detail-summary>div{border:1px solid var(--line);background:#fffffff5;min-width:0;padding:13px 14px}.admin-detail-summary span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:800;display:block}.admin-detail-summary strong{overflow-wrap:anywhere;margin-top:5px;display:block}.admin-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.admin-detail-panel{border:1px solid var(--line);background:#fffffff5;min-width:0;padding:18px}.admin-detail-panel .section-heading{align-items:end}.admin-detail-panel .section-heading>strong{color:var(--muted);font-size:.82rem}.admin-detail-cards,.admin-detail-tasks{gap:8px;display:grid}.admin-detail-card{border-left:5px solid var(--blue);background:#f5fbff;align-items:center;gap:10px;min-height:66px;padding:8px 10px;display:flex}.admin-detail-card.rarity-edge-4{border-left-color:var(--yellow);background:#fffdf0}.admin-detail-card.rarity-edge-5{border-left-color:var(--purple);background:#f5f1ff}.admin-detail-card img{object-fit:contain;width:50px;height:50px}.admin-detail-card div{flex:1;min-width:0}.admin-detail-card strong,.admin-detail-card span{overflow-wrap:anywhere;display:block}.admin-detail-card span{color:var(--muted);margin-top:2px;font-size:.8rem}.admin-detail-card b{color:var(--purple);white-space:nowrap;font-size:.75rem}.admin-detail-tasks .log-list{margin-top:0}@media (max-width:640px){.admin-user-row{flex-wrap:wrap}.admin-user-row strong{width:100%;min-width:0}.admin-detail-heading{align-items:flex-start;gap:12px}.admin-detail-heading .secondary-button{width:100%}.admin-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-detail-grid{grid-template-columns:1fr}}.icon-button{border:2px solid var(--ink);width:46px;height:46px;color:var(--ink);background:var(--yellow);border-radius:50%;flex:0 0 46px;font-weight:900}.draw-availability{min-height:24px;color:var(--muted);margin:18px 0 0;font-size:.9rem}.limited-card{border-left:2px solid var(--ink);background:#bdf1f7f2;flex-direction:column;justify-content:center;align-items:center;padding:28px 20px 24px;display:flex;position:relative}.limited-card:after{content:"";border:2px dashed #1726423d;border-radius:50%;position:absolute;inset:18px}.limited-card img{z-index:1;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 13px 7px #1726422e);width:min(100%,260px);height:auto}.limited-card>div:last-child{z-index:1;align-items:baseline;gap:10px;display:flex}.limited-card strong{font-size:1.4rem}.limited-card span:last-child{color:var(--muted);font-size:.86rem}.limited-badge{z-index:2;border:2px solid var(--ink);color:#fff;background:var(--purple);border-radius:5px;padding:5px 9px;font-size:.78rem;font-weight:800;position:absolute;top:18px;right:18px;transform:rotate(2deg)}.progress-panel,.task-panel,.settings-panel,.task-history{border:1px solid var(--line);background:#fffffff5;border-radius:8px;box-shadow:5px 5px #172642e0}.progress-panel{border:3px solid var(--ink);background:#fffadaf7;padding:26px}.panel-heading,.section-heading,.page-heading,.settings-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.progress-number{color:var(--blue);white-space:nowrap;font-size:1.1rem}.progress-track{border:2px solid var(--ink);background:#edf0f5;border-radius:3px;height:14px;margin:22px 0 16px;overflow:hidden}.progress-track span{background:var(--yellow);width:0;height:100%;transition:width .3s;display:block}.progress-panel>p{color:var(--muted);font-size:.9rem}.mini-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:26px;display:grid}.mini-stats div{border-top:3px solid var(--teal);text-align:center;background:#f3faf8;min-width:0;padding:12px 6px}.mini-stats strong,.mini-stats span{display:block}.mini-stats strong{font-size:1.3rem}.mini-stats span{color:var(--muted);font-size:.75rem}.recent-section{margin-top:38px}.recent-section,.view[data-view=collection],.view[data-view=evolution],.view[data-view=parent]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f6fbffe6;border-top:3px solid #172642d1;border-bottom:3px solid #172642d1;border-radius:0;padding:20px}.section-heading{align-items:flex-end;margin-bottom:16px}.text-button,.danger-text-button{background:0 0;border:0;padding:6px;font-weight:750}.text-button{color:var(--blue)}.danger-text-button{color:var(--red-dark)}.recent-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.mini-card,.dex-card,.evolution-card{border:2px solid var(--ink);background:#fffdf1;border-radius:8px;position:relative;overflow:hidden;box-shadow:4px 4px #1726422e}.mini-card[role=button]{cursor:pointer}.mini-card[role=button]:focus-visible{outline:4px solid var(--red);outline-offset:3px}.mini-card{grid-template-columns:90px minmax(0,1fr);align-items:center;min-height:110px;padding:10px;display:grid}.mini-card img{object-fit:contain;width:86px;height:86px}.mini-card strong,.mini-card span{display:block}.mini-card span{color:var(--muted);font-size:.8rem}.rarity-edge-3{border-bottom-color:var(--blue)}.rarity-edge-4{border-bottom-color:var(--yellow);border-bottom-width:5px}.rarity-edge-5{border-bottom-color:var(--purple);border-bottom-width:5px}.empty-state{color:var(--muted);text-align:center;background:#ffffffb3;border:2px dashed #aeb8c7;border-radius:8px;grid-column:1/-1;padding:42px 20px}.empty-state strong{color:var(--ink);font-size:1.05rem;display:block}.page-heading{align-items:flex-end;padding:22px 0 24px}.page-heading h1{font-size:2.5rem}.heading-note{max-width:420px;color:var(--muted);text-align:right;margin:0}.segmented-control{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:4px;display:flex}.segmented-control button{min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:5px 12px}.segmented-control button.active{color:#fff;background:var(--ink)}.collection-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.dex-card{min-height:276px;padding:14px}.dex-card[role=button]{cursor:pointer}.dex-card[role=button]:focus-visible{outline:4px solid var(--red);outline-offset:3px}.pokedex-tools{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 14px;margin:20px 0;display:grid}.pokedex-tools label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;grid-column:1/-1;font-size:.8rem;font-weight:850}.pokedex-tools input{border:2px solid var(--ink);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:6px;padding:9px 12px}.pokedex-tools input:focus{outline-offset:2px;outline:3px solid #19a78f59}.pokedex-tools span{color:var(--muted);font-size:.82rem;font-weight:800}.dex-card.rarity-edge-3{background:#eef7ff}.dex-card.rarity-edge-4{background:#fff3b6}.dex-card.rarity-edge-5{color:#fff;background:#7457d7}.dex-card.rarity-edge-5 .card-footer,.dex-card.rarity-edge-5 .card-topline{color:#f2ecff}.dex-card.rarity-edge-5 .count-badge{color:var(--ink);background:var(--yellow)}.dex-card.locked{filter:grayscale();opacity:.7;background:#edf0f4;border-color:#c9d0da}.dex-card img{aspect-ratio:1;object-fit:contain;width:100%;display:block}.dex-card.locked img{opacity:.22}.card-topline,.card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-topline{color:var(--muted);font-size:.74rem}.card-stars{color:#a87900;white-space:nowrap}.rarity-edge-5 .card-stars{color:var(--purple)}.dex-card h3{margin:6px 0 2px;font-size:1.05rem}.card-footer{color:var(--muted);font-size:.78rem}.count-badge{min-width:29px;color:var(--ink);text-align:center;background:#eef2f7;border-radius:4px;padding:2px 7px;font-weight:800}.evolved-stamp{color:#fff;background:var(--teal);text-align:center;width:92px;padding:4px;font-size:.7rem;font-weight:900;position:absolute;top:44px;right:-20px;transform:rotate(35deg)}.evolution-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.evolution-card{grid-template-columns:130px minmax(0,1fr);align-items:center;padding:16px;display:grid}.evolution-card img{object-fit:contain;width:128px;height:128px}.evolution-card h3{margin:0 0 3px}.evolution-card p{color:var(--muted);margin:0;font-size:.84rem}.copy-progress{background:#e5e9ef;border-radius:3px;height:10px;margin:12px 0;overflow:hidden}.copy-progress span{background:var(--purple);height:100%;display:block}.evolve-button{border:2px solid var(--ink);color:#fff;background:var(--purple);border-radius:5px;min-height:38px;font-weight:800}.evolve-button:disabled{color:var(--muted);cursor:not-allowed;background:#e9edf2;border-color:#bbc3ce}.parent-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:16px;display:grid}.task-panel,.settings-panel{padding:24px}.task-panel label{margin-bottom:9px;font-weight:800;display:block}.task-input-row{gap:10px;display:flex}.task-input-row input{width:100%;min-height:44px;color:var(--ink);background:#fff;border:2px solid #b8c1cf;border-radius:6px;padding:8px 12px}.task-shortcuts{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.task-shortcuts button{min-height:34px;color:var(--ink);background:#f4f7fa;border:1px solid #b9c3d0;border-radius:5px;padding:5px 12px}.settings-heading p{color:var(--muted);margin:3px 0 0;font-size:.86rem}.settings-heading strong{color:var(--teal);white-space:nowrap}.settings-panel input[type=range]{width:100%;accent-color:var(--teal);margin-top:26px}.task-history{margin-top:18px;padding:24px}.log-list{gap:8px;display:grid}.log-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.log-item:last-child{border-bottom:0}.log-item div{min-width:0}.log-item strong,.log-item span{display:block}.log-item strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.log-item span,.log-item time{color:var(--muted);font-size:.78rem}.ticket-earned{color:#8b6500;flex:none;font-weight:800}.bottom-nav{z-index:20;border:2px solid var(--ink);width:min(560px,100% - 32px);box-shadow:5px 5px 0 var(--red), 8px 8px 0 var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff4b3f7;border-radius:8px;grid-template-columns:repeat(4,1fr);padding:6px;display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.bottom-nav button{min-height:50px;color:var(--muted);background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:6px;font-weight:750;display:flex}.bottom-nav button.active{color:#fff;background:var(--ink)}.sound-toggle{border:2px solid var(--ink);width:38px;height:38px;color:var(--muted);background:#fff;border-radius:50%;flex:0 0 38px;font-size:1rem;font-weight:900}.sound-toggle.active{color:var(--ink);background:var(--teal);box-shadow:2px 2px 0 var(--ink)}#musicToggle.active{background:var(--yellow)}dialog{border:3px solid var(--ink);width:min(480px,100% - 28px);max-height:calc(100vh - 28px);color:var(--ink);box-shadow:8px 8px 0 var(--ink);background:#fff;border-radius:8px;padding:28px;overflow:auto}.result-dialog{width:min(760px,100% - 28px);max-height:calc(100dvh - 24px);overflow:visible}.result-dialog>:not(.effect-layer){z-index:2;position:relative}.result-dialog .dialog-close{z-index:3;position:absolute}.effect-layer{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.spark{top:var(--y);left:var(--x);width:var(--size);height:var(--size);background:var(--yellow);opacity:0;transform:rotate(var(--turn)) scale(0);animation:sparkBurst 1.45s var(--delay) ease-out forwards;border-radius:50%;position:absolute;box-shadow:0 0 14px}.spark.diamond{border-radius:1px;transform:rotate(45deg)scale(0)}.spark.ring{width:calc(var(--size) * 4);height:calc(var(--size) * 4);background:0 0;border:3px solid;border-radius:50%;box-shadow:0 0 18px}.spark.rainbow{width:calc(var(--size) * 1.8);height:calc(var(--size) * 1.8);background:var(--yellow);border:3px solid #ff6c7a;border-radius:50%;box-shadow:0 0 8px #19a78f,0 0 18px #7457d7}.effect-3 .spark{color:var(--blue);background:#84c8ff}.effect-4 .spark{color:#f2b700;background:var(--yellow)}.effect-5 .spark{color:var(--purple);background:var(--yellow)}.effect-limited .spark{color:var(--teal);background:#ff6c7a}.burst-core{opacity:.05;background:radial-gradient(circle,#ffffffe6,#84c8ff57 38%,#0000 70%);border:5px solid #84c8ffb8;border-radius:50%;animation:1.25s ease-out forwards coreBurst;position:absolute;inset:20%;box-shadow:0 0 30px #84c8ff,0 0 72px #84c8ff}.effect-4 .burst-core{box-shadow:0 0 36px var(--yellow), 0 0 90px var(--yellow);background:radial-gradient(circle,#fffffff5,#f5c54270 38%,#0000 70%);border-color:#f5c542e6}.effect-5 .burst-core,.effect-limited .burst-core{box-shadow:0 0 42px var(--yellow), 0 0 110px var(--purple);background:radial-gradient(circle,#fff,#7457d799 34%,#0000 70%);border-width:6px;border-color:#f5c542f2;inset:12%}.effect-limited .burst-core{box-shadow:0 0 46px #ff6c7a, 0 0 130px var(--teal);background:radial-gradient(circle,#fff,#19a78f94 30%,#7457d766 52%,#0000 72%);border-color:#ff6c7a}.celebration-star,.celebration-confetti,.celebration-beam{top:var(--y);left:var(--x);opacity:0;animation:celebrationFall 2.1s var(--delay) ease-out forwards;position:absolute}.celebration-star{width:var(--size);height:var(--size);color:var(--yellow);clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%);filter:drop-shadow(0 0 9px);background:currentColor}.celebration-confetti{width:var(--size);height:calc(var(--size) * 1.8);background:var(--yellow);transform:rotate(var(--turn))}.celebration-beam{top:35%;left:var(--x);background:linear-gradient(transparent, var(--yellow), transparent);filter:blur(1px);width:4px;height:38vh;animation-name:beamFlash}.effect-5 .celebration-star,.effect-5 .celebration-confetti{color:#d9c8ff;background:#d9c8ff}.effect-limited .celebration-star,.effect-limited .celebration-confetti{color:#ff6c7a;background:#ff6c7a}.effect-limited .celebration-star:nth-child(3n){color:var(--teal);background:var(--teal)}.effect-3 .effect-layer:before,.effect-4 .effect-layer:before{content:"";opacity:.32;background:radial-gradient(circle,#84c8ff73,#0000 62%);border-radius:50%;position:absolute;inset:8% 14%}.effect-4 .effect-layer:before{opacity:.52;background:radial-gradient(circle,#f5c54294,#0000 64%)}.effect-5 .effect-layer:before,.effect-limited .effect-layer:before{content:"";opacity:0;border:3px solid #f5c542b3;border-radius:50%;animation:1.8s ease-out .25s forwards magicRing;position:absolute;inset:14% 20%}.effect-limited .effect-layer:after{content:"";opacity:0;background:conic-gradient(#0000,#ff6c7a47,#0000 18%,#f5c5424d,#0000 38%,#19a78f4d,#0000 58%,#7457d74d,#0000 78%);animation:2.2s linear .2s forwards rainbowSpin;position:absolute;inset:-20%}.effect-4{box-shadow:8px 8px 0 var(--ink), 0 0 42px #f5c542b3}.effect-5{box-shadow:8px 8px 0 var(--ink), 0 0 64px #7457d7d1}.effect-limited{box-shadow:8px 8px 0 var(--ink), 0 0 72px #19a78fe6}.result-dialog.effect-3{background:#f0f8ff}.result-dialog.effect-4{background:#fff4b3;animation:1.2s ease-out dialogFlash}.result-dialog.effect-5{background:#e8ddff;animation:1.55s ease-out dialogFlash}.result-dialog.effect-limited{background:linear-gradient(135deg,#ffe4ee,#fff4b3,#d9fff5,#e8ddff);animation:1.9s ease-out dialogFlash}.effect-4 .reveal-label{color:#8a6500;font-size:1.2rem}.effect-5 .reveal-label,.effect-limited .reveal-label{color:var(--purple);text-shadow:2px 2px #f5c54280;font-size:1.35rem;animation:.8s cubic-bezier(.2,.9,.2,1) rareLabelPop}.effect-limited .reveal-label{color:var(--red-dark)}.effect-4 .result-card.revealing{animation:.8s cubic-bezier(.2,.8,.2,1) cardReveal,.9s ease-out .7s rarePulse}.effect-5 .result-card.revealing,.effect-limited .result-card.revealing{animation:.95s cubic-bezier(.15,.9,.15,1) cardReveal,1.1s ease-out .85s ultraPulse}.result-dialog.charging .result-card{animation:.68s ease-in-out infinite chargePulse}.result-dialog.charging .reveal-label{opacity:.6;transform:scale(.92)}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0d1728b8}.dialog-close{width:38px;height:38px;color:var(--ink);background:#edf1f5;border:0;border-radius:50%;font-size:1.5rem;line-height:1;position:absolute;top:10px;right:10px}.reveal-stage{text-align:center;max-height:calc(100dvh - 84px);padding-right:2px;overflow:auto}.reveal-label{color:var(--red-dark);margin:0 0 10px;font-weight:850}.result-layout{grid-template-columns:minmax(230px,.85fr) minmax(280px,1.15fr);align-items:center;gap:16px;display:grid}.result-main,.result-details{min-width:0}.result-card{border:3px solid var(--ink);transform-style:preserve-3d;background:#f0f7ff;border-radius:8px;margin-bottom:0;padding:14px;position:relative}.result-card.revealing{animation:.8s cubic-bezier(.2,.8,.2,1) cardReveal}.result-card[data-rarity="4"]{background:#fff8d8;box-shadow:0 0 0 7px #f5c54240}.result-card[data-rarity="5"]{color:#fff;background:var(--purple);box-shadow:0 0 0 7px #7457d73d}.result-card img{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 12px 8px #1726422e);width:min(100%,280px);height:auto;max-height:min(38dvh,260px)}.result-card h2{font-size:1.7rem}.result-card p{margin:3px 0}.rarity-stars{color:#a87900;font-weight:900;display:block}.result-card[data-rarity="5"] .rarity-stars{color:var(--yellow)}.bonus-result{border:2px dashed var(--purple);color:var(--purple);background:#f2efff;border-radius:6px;margin:0 0 12px;padding:12px;font-weight:800}.new-entry-panel{border:3px solid var(--ink);color:var(--ink);box-shadow:4px 4px 0 var(--teal);text-align:left;background:#eaf8f5;border-radius:8px;margin:0;padding:15px}.new-entry-heading{border-bottom:2px solid #1726422e;align-items:center;gap:10px;padding-bottom:10px;display:flex}.new-entry-heading>span{border:2px solid var(--ink);color:#fff;background:var(--red);border-radius:50%;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.new-entry-heading small{color:var(--red-dark);font-size:.68rem;font-weight:900;display:block}.new-entry-heading h3{margin:0;font-size:1.05rem}.entry-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.entry-facts div{border-left:3px solid var(--yellow);background:#ffffffb3;min-width:0;padding:4px 8px}.entry-facts dt{color:var(--muted);text-transform:uppercase;font-size:.67rem;font-weight:800}.entry-facts dd{overflow-wrap:anywhere;margin:0;font-size:.84rem;font-weight:800}.new-entry-panel>p{color:#3f5369;margin:0;font-size:.86rem;line-height:1.45}.result-actions{background:#fff;padding-top:12px;position:sticky;bottom:0}.result-actions .primary-button{width:min(100%,320px)}.odds-dialog h2{margin-bottom:20px}.odds-list{gap:8px;margin-bottom:16px;display:grid}.odds-list div{border:1px solid var(--line);border-radius:5px;justify-content:space-between;padding:10px 12px;display:flex}.odds-list span{align-items:center;gap:8px;display:flex}.dot{border-radius:50%;width:11px;height:11px;display:inline-block}.rarity-3{background:var(--blue)}.rarity-4{background:var(--yellow)}.rarity-5{background:var(--purple)}.odds-dialog>p:last-of-type{color:var(--muted);font-size:.88rem}.odds-dialog .secondary-button{width:100%;margin-top:10px}.pokedex-dialog{width:min(92vw,760px);max-width:760px}.detail-layout{grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);align-items:center;gap:22px;display:grid}.detail-art{border:3px solid var(--ink);text-align:center;background:#eef7ff;border-radius:8px;padding:14px}.detail-art img{object-fit:contain;width:100%;max-height:320px;display:block}.detail-copy{text-align:left;min-width:0}.detail-copy h2{margin:4px 0;font-size:2rem}.detail-copy>p{color:var(--muted)}.detail-owned{background:var(--yellow);border-radius:4px;margin:8px 0 10px;padding:6px 9px;font-weight:850;display:inline-block;color:var(--ink)!important}.toast{z-index:40;border:2px solid var(--ink);min-width:min(360px,100% - 32px);color:var(--ink);background:var(--yellow);box-shadow:4px 4px 0 var(--ink);text-align:center;opacity:0;pointer-events:none;border-radius:6px;padding:11px 16px;font-weight:750;transition:all .18s;position:fixed;top:88px;left:50%;transform:translate(-50%,-16px)}.toast.show{opacity:1;transform:translate(-50%)}footer{color:#7a8699;text-align:center;padding:34px 0 8px;font-size:.72rem}@keyframes cardReveal{0%{opacity:0;transform:rotateY(90deg)scale(.75)}65%{opacity:1;transform:rotateY(-8deg)scale(1.04)}to{transform:rotateY(0)scale(1)}}@keyframes sparkBurst{0%{opacity:0;transform:rotate(var(--turn)) scale(0) translateY(16px)}28%{opacity:1;transform:rotate(var(--turn)) scale(1.25) translateY(-4px)}to{opacity:0;transform:rotate(calc(var(--turn) + 90deg)) scale(.35) translateY(-58px)}}@keyframes rareLabelPop{0%{opacity:0;transform:scale(.35)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes authProgress{0%{transform:translate(-120%)}to{transform:translate(260%)}}@keyframes rarePulse{0%,to{box-shadow:0 0 0 7px #f5c54240}50%{box-shadow:0 0 0 16px #f5c54214}}@keyframes chargePulse{0%,to{filter:brightness(.92);transform:scale(.96)rotate(-1deg)}50%{filter:brightness(1.22);transform:scale(1.02)rotate(1deg)}}@keyframes magicRing{0%{opacity:0;transform:scale(.25)rotate(0)}35%{opacity:.9}to{opacity:0;transform:scale(1.45)rotate(180deg)}}@keyframes rainbowSpin{0%{opacity:0;transform:rotate(0)scale(.7)}30%{opacity:1}to{opacity:0;transform:rotate(360deg)scale(1.1)}}@keyframes coreBurst{0%{opacity:.05;transform:scale(.35)}22%{opacity:.95;transform:scale(.82)}to{opacity:.08;transform:scale(1.18)}}@keyframes celebrationFall{0%{opacity:0;transform:translateY(-24vh)rotate(0)scale(.3)}18%{opacity:1}to{opacity:0;transform:translateY(24vh) rotate(var(--turn)) scale(1)}}@keyframes beamFlash{0%,to{opacity:0;transform:scaleY(.2)rotate(-12deg)}30%{opacity:.85;transform:scaleY(1)rotate(0)}65%{opacity:.2}}@keyframes ultraPulse{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@keyframes dialogFlash{0%{filter:brightness(.72)saturate(.75);transform:scale(.94)}24%{filter:brightness(1.55)saturate(1.35);transform:scale(1.025)}to{filter:brightness()saturate();transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.result-dialog .spark{opacity:.9;animation:none;transform:none}.result-dialog .burst-core{opacity:.65;animation:none;transform:none}.result-dialog .celebration-star,.result-dialog .celebration-confetti,.result-dialog .celebration-beam{opacity:.8;animation:none;transform:none}.result-dialog .effect-layer:before,.result-dialog .effect-layer:after{opacity:.75;animation:none;transform:none}}@media (max-width:900px){.auth-gate{grid-template-columns:1fr;align-content:center}.play-grid{grid-template-columns:1fr}.progress-panel{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);column-gap:28px;display:grid}.progress-panel .panel-heading,.progress-panel .progress-track,.progress-panel>p{grid-column:1}.mini-stats{grid-area:1/2/4;margin-top:0}.recent-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.evolution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){body{background-attachment:scroll}.auth-gate{width:min(100% - 20px,980px);padding:14px 0}.auth-hero{grid-template-columns:minmax(0,1fr) 120px;min-height:190px;padding:20px}.auth-hero h1{font-size:2rem}.auth-hero img{width:120px}.auth-panel{padding:18px}.auth-welcome{padding-bottom:14px}.auth-welcome-title{-webkit-text-stroke-width:2px;text-shadow:3px 3px #e8414f,5px 5px #172642}.app-shell{width:min(100% - 20px,1180px);padding-bottom:100px}.topbar{min-height:68px;margin-top:8px}.brand span:last-child{display:none}.status-pill{padding:5px 9px}.trainer-chip{max-width:82px;padding-inline:8px}.sync-status{min-width:54px;font-size:.7rem}.logout-button,.sound-toggle{flex-basis:34px;width:34px;height:34px}.draw-station{min-height:auto;box-shadow:4px 4px 0 var(--yellow), 7px 7px 0 var(--ink);grid-template-columns:1fr}.station-copy{order:2;padding:28px 22px 30px 30px}.limited-card{border-left:0;border-bottom:2px solid var(--ink);min-height:230px}.limited-card img{width:190px}.limited-card:after{inset:12px 70px}.route-tag{top:10px;left:18px}h1{font-size:2rem}.progress-panel{padding:22px;display:block}.mini-stats{margin-top:22px}.recent-cards{grid-template-columns:1fr}.mini-card{min-height:100px}.page-heading{display:block}.heading-note{text-align:left;margin-top:9px}.segmented-control{margin-top:16px;overflow-x:auto}.segmented-control button{flex:1;min-width:66px}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pokedex-tools{grid-template-columns:1fr}.pokedex-tools span{justify-self:start}.dex-card{min-height:230px;padding:10px}.evolution-grid{grid-template-columns:1fr}.evolution-card{grid-template-columns:108px minmax(0,1fr)}.evolution-card img{width:104px;height:104px}.parent-grid{grid-template-columns:1fr}.task-input-row{display:grid}.task-panel,.settings-panel,.task-history{padding:18px}.bottom-nav{bottom:10px}.bottom-nav button{flex-direction:column;gap:0;font-size:.78rem}dialog{padding:12px}.result-dialog{width:min(100% - 16px,760px);max-height:calc(100dvh - 16px)}.reveal-stage{max-height:calc(100dvh - 46px)}.reveal-label{margin-bottom:6px}.result-layout{grid-template-columns:1fr;gap:10px}.result-card{padding:10px}.result-card img{width:min(100%,180px);max-height:min(22dvh,150px)}.result-card h2{font-size:1.25rem}.result-card p{font-size:.84rem}.entry-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:8px 0}.entry-facts div{padding:3px 5px}.detail-layout{grid-template-columns:1fr;gap:10px}.detail-art img{max-height:190px}.detail-copy h2{font-size:1.45rem}.entry-facts dt{font-size:.57rem}.entry-facts dd{font-size:.7rem}.new-entry-panel{box-shadow:3px 3px 0 var(--teal);padding:10px}.new-entry-heading{padding-bottom:6px}.new-entry-heading>span{flex-basis:30px;width:30px;height:30px}.new-entry-heading h3{font-size:.9rem}.new-entry-panel>p{font-size:.76rem;line-height:1.32}.bonus-result{margin-bottom:8px;padding:8px;font-size:.78rem}.result-actions{padding-top:8px}.result-actions .primary-button{min-height:44px}.world-decor img{display:none}.recent-section,.view[data-view=collection],.view[data-view=evolution],.view[data-view=parent]{padding:14px}}@media (max-width:390px){.quick-stats{gap:4px}.audio-controls{gap:3px}.status-pill{font-size:.76rem}.collection-grid{grid-template-columns:1fr 1fr}.dex-card{min-height:210px}.draw-actions{align-items:stretch}.primary-button{padding-inline:12px}}@media (max-height:700px){.result-card img{width:min(100%,150px);max-height:110px}.result-card h2{font-size:1.12rem}.result-card{padding:8px}.effect-layer{opacity:.9;display:block}}
