*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:#fafafa;color:#111;font-family:Inter,sans-serif;font-weight:300;min-height:100vh;overflow-x:hidden}button{cursor:pointer;border:none;background:none;font:inherit}input{font:inherit;border:none;outline:none}img{display:block;max-width:100%}.mono{font-family:Space Mono,monospace}.serif{font-family:Playfair Display,serif}.label{font-family:Space Mono,monospace;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:#999}.title{font-family:Playfair Display,serif;font-size:28px;font-weight:400}.cta-btn{font-family:Space Mono,monospace;font-size:11px;letter-spacing:3px;text-transform:uppercase;background:#111;color:#fafafa;padding:16px 48px;transition:opacity .2s}.cta-btn:hover{opacity:.7}.cta-btn--secondary{background:#fff;color:#111;border:1.5px solid #ddd}.cta-btn--secondary:hover{border-color:#111;opacity:1}.cta-btn--ghost{background:transparent;color:#999;padding:12px 48px;font-size:10px}.cta-btn--ghost:hover{color:#111;opacity:1}.screen{min-height:100vh;display:flex;flex-direction:column}.screen--centered{align-items:center;justify-content:center;text-align:center}.content-width{width:100%;max-width:420px;margin:0 auto;padding:0 24px}.fade-in{animation:fadeIn .6s ease-out both}.fade-in-up{animation:fadeInUp .6s ease-out both}.fade-in-delayed{animation:fadeIn .6s ease-out .3s both}.fade-in-up-delayed{animation:fadeInUp .6s ease-out .6s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%,to{opacity:.5}50%{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.screen-transition{animation:fadeIn .4s ease-out both}.landing{padding:60px 24px;gap:0;position:relative;overflow:hidden}.landing>*:not(.landing__constellation):not(.landing__starfield){position:relative;z-index:1}.landing__brand{margin-bottom:16px}.landing__name{font-style:italic;font-size:26px;color:#333;margin-bottom:100px}.landing__message{font-size:32px;line-height:1.4;max-width:320px;margin-bottom:100px}.landing__starfield{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.landing__bg-star{position:absolute;transform:translate(-50%,-50%);color:#b8b8c8;line-height:1}.landing__constellation{position:absolute;top:50%;left:50%;width:min(96vw,720px);transform:translate(-50%,-50%);z-index:0;pointer-events:none;animation:constellationGlow 6s ease-in-out infinite}.landing__constellation svg{width:100%;height:auto}.landing__lines polyline,.landing__lines line{stroke:#ededf2;stroke-width:.5;fill:none}.landing__stars text{fill:#8a8aa3;font-size:15px;text-anchor:middle;dominant-baseline:central}.landing__stars .star--bright{fill:#5a5a78;font-size:26px}@keyframes constellationGlow{0%,to{opacity:.1}50%{opacity:.45}}.game{padding:60px 0 80px}.game__header{margin-bottom:40px}.game__header .label{margin-bottom:12px}.game__header .title{margin-bottom:8px}.game__desc{font-size:14px;color:#777;line-height:1.6}.game__counter{font-family:Space Mono,monospace;font-size:10px;letter-spacing:2px;color:#999;text-align:right;margin-bottom:12px}.game__input-wrapper{position:relative;margin-bottom:24px}.game__input{width:100%;padding:14px 16px;border:1.5px solid #ddd;border-radius:8px;font-size:15px;font-weight:300;background:#fff}.game__input::placeholder{color:#ccc}.game__input:focus{border-color:#111}.game__dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1.5px solid #ddd;border-top:none;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;z-index:10;display:none}.game__dropdown.active{display:block}.game__dropdown-item{padding:12px 16px;font-size:14px;cursor:pointer;transition:background .1s}.game__dropdown-item:hover{background:#f0f0f0}.game__history{display:flex;flex-direction:column;gap:12px}.guess-entry{background:#fff;border:1px solid #eee;border-radius:10px;padding:16px;animation:fadeInUp .4s ease-out both}.guess-entry__number{font-family:Space Mono,monospace;font-size:8px;letter-spacing:2px;color:#ccc;text-transform:uppercase;margin-bottom:6px}.guess-entry__name{font-family:Playfair Display,serif;font-size:18px;font-weight:700;margin-bottom:12px}.guess-entry__attrs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.attr{border-radius:8px;padding:10px 6px;text-align:center}.attr__label{font-family:Space Mono,monospace;font-size:8px;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;opacity:.8}.attr__value{font-family:Space Mono,monospace;font-size:12px;font-weight:700}.attr__arrow{font-size:10px;margin-top:2px;opacity:.7}.attr--match{background:#22c55e;color:#fff}.attr--close{background:#eab308;color:#fff}.attr--no-match{background:#333;color:#fff}.game__legend{display:flex;gap:16px;justify-content:center;margin-top:24px}.legend-item{display:flex;align-items:center;gap:6px;font-family:Space Mono,monospace;font-size:9px;letter-spacing:1px;color:#999}.legend-dot{width:10px;height:10px;border-radius:3px}.legend-dot--match{background:#22c55e}.legend-dot--close{background:#eab308}.legend-dot--no-match{background:#333}.game__result{text-align:center;margin-top:32px;animation:fadeInUp .5s ease-out both}.game__result-label{font-family:Space Mono,monospace;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#999;margin-bottom:8px}.game__result-name{font-family:Playfair Display,serif;font-size:24px;font-weight:700;margin-bottom:24px}.game__result--win .game__result-label{color:#f43f7a}.game__result--win .game__result-name{animation:winPop .6s cubic-bezier(.34,1.56,.64,1) both}.game__result-sub{font-family:Playfair Display,serif;font-style:italic;font-size:18px;color:#444;margin-bottom:24px;animation:fadeIn .6s ease-out .4s both}.game__result-emoji{font-style:normal;display:inline-block}@keyframes winPop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.balloon-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9999}.balloon{position:absolute;bottom:-140px;border-radius:50% 50% 48% 48%;opacity:0;box-shadow:inset -6px -8px 12px #00000026;animation-name:balloonFloat;animation-timing-function:ease-in;animation-fill-mode:forwards}.balloon:before{content:"";position:absolute;bottom:-6px;left:50%;width:8px;height:8px;background:inherit;transform:translate(-50%);clip-path:polygon(50% 100%,0 0,100% 0)}.balloon:after{content:"";position:absolute;top:100%;left:50%;width:1px;height:60px;background:#00000026;transform:translate(-50%)}@keyframes balloonFloat{0%{transform:translateY(0) translate(0);opacity:0}12%{opacity:.92}to{transform:translateY(-120vh) translate(var(--drift));opacity:.92}}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9998}.confetti{position:absolute;top:-24px;opacity:0;animation-name:confettiFall;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes confettiFall{0%{transform:translateY(0) translate(0) rotate(0);opacity:0}10%{opacity:1}to{transform:translateY(112vh) translate(var(--drift)) rotate(720deg);opacity:1}}.pack-screen{background:#0a0a0a;align-items:center;justify-content:center;padding:60px 24px;position:relative;overflow:hidden}.pack__message{font-family:Playfair Display,serif;font-size:24px;font-style:italic;color:#fff;margin-bottom:48px;opacity:0}.pack__wrapper{width:220px;height:310px;background:linear-gradient(145deg,#1a1a1a,#252525);border:1px solid #333;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;box-shadow:0 20px 60px #00000080;opacity:0}.pack__year{position:absolute;top:16px;right:16px;font-family:Space Mono,monospace;font-size:9px;letter-spacing:2px;color:#444}.pack__initial{font-family:Playfair Display,serif;font-size:64px;font-weight:700;color:#fff;opacity:.9}.pack__subtitle{font-family:Space Mono,monospace;font-size:9px;letter-spacing:4px;text-transform:uppercase;color:#555;margin-top:12px}.pack__rip-line{position:absolute;left:-20px;right:-20px;top:30%;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),rgba(200,230,255,.9),rgba(255,255,255,.8),transparent);box-shadow:0 0 20px #c8e6ff66;opacity:0;animation:glow 2s ease-in-out infinite}.pack__hint{font-family:Space Mono,monospace;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#444;margin-top:48px;opacity:0}.pack__light-burst{position:absolute;width:600px;height:600px;background:radial-gradient(ellipse at center,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none;opacity:0}.cards-screen{background:linear-gradient(180deg,#d4dae0,#bcc5cf);align-items:center;justify-content:center;padding:60px 24px}.cards__new-badge{font-family:Space Mono,monospace;font-size:11px;font-weight:700;letter-spacing:2px;background:#f43f7a;color:#fff;padding:4px 14px;border-radius:12px;margin-bottom:16px}.card-detail__back{margin-top:32px}.pokemon-card{width:300px;border-radius:14px;overflow:hidden;box-shadow:0 12px 40px #0000002e;background:linear-gradient(135deg,#e8e0d0,#d4cdc0,#e8e0d0);padding:6px}.pokemon-card__inner{background:#fff;border-radius:10px;overflow:hidden}.pokemon-card__top{display:flex;justify-content:space-between;align-items:center;padding:10px 14px 6px}.pokemon-card__stage{font-family:Space Mono,monospace;font-size:8px;letter-spacing:2px;text-transform:uppercase;background:#f0f0f0;padding:3px 8px;border-radius:3px;color:#777}.pokemon-card__name-row{display:flex;align-items:baseline;gap:8px}.pokemon-card__name{font-family:Playfair Display,serif;font-size:20px;font-weight:700}.pokemon-card__icon{width:22px;height:22px;border-radius:50%;background:var(--tier, #111);display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px}.pokemon-card__image-frame{margin:4px 10px;border:3px solid #d4cdc0;border-radius:6px;overflow:hidden;position:relative}.pokemon-card__image{height:200px;background:#f0f0f0;display:flex;align-items:center;justify-content:center;object-fit:cover;width:100%}.pokemon-card__image-caption{position:absolute;bottom:0;left:0;right:0;background:#00000080;padding:4px 10px;font-family:Space Mono,monospace;font-size:7px;letter-spacing:1px;color:#ddd;text-align:center}.pokemon-card__move{margin:8px 10px;padding:12px 14px;background:#fafafa;border:1px solid #e8e8e8;border-radius:6px}.pokemon-card__move-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.pokemon-card__move-cost{display:flex;gap:4px}.pokemon-card__cost-dot{width:14px;height:14px;border-radius:50%;background:var(--tier, #111)}.pokemon-card__move-name{font-family:Playfair Display,serif;font-size:16px;font-weight:700}.pokemon-card__move-desc{font-size:13px;line-height:1.6;color:#555}.pokemon-card__flavor{padding:0 14px 8px;font-family:Playfair Display,serif;font-style:italic;font-size:10px;color:#999;text-align:center;line-height:1.4}.pokemon-card__footer{padding:6px 14px 10px;display:flex;justify-content:space-between;align-items:center}.pokemon-card__footer-section{text-align:center}.pokemon-card__footer-label{font-family:Space Mono,monospace;font-size:7px;letter-spacing:1px;text-transform:uppercase;color:#bbb;margin-bottom:2px}.pokemon-card__footer-value{font-family:Space Mono,monospace;font-size:10px;font-weight:700;color:#555}.pokemon-card__diamonds{display:flex;gap:4px;justify-content:center}.pokemon-card__diamond{width:10px;height:10px;background:var(--tier, #111);transform:rotate(45deg);border-radius:2px}.pokemon-card__diamond--empty{background:transparent;border:1px solid #ccc}.pokemon-card__rarity{display:flex;flex-direction:column;align-items:center;gap:4px}.pokemon-card__rarity-name{font-family:Space Mono,monospace;font-size:7px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--tier, #999)}.cards__tap-hint{display:flex;align-items:center;gap:8px;margin-top:32px;font-family:Space Mono,monospace;font-size:10px;letter-spacing:2px;color:#888}.pokemon-card--r1{--tier: #6b7280;background:linear-gradient(135deg,#dcdcdc,#cdcdcd,#dcdcdc);box-shadow:0 8px 24px #00000024}.pokemon-card--r2{--tier: #a85f33;background:linear-gradient(135deg,#e6bb92,#b06a3c,#f0d2b0,#b06a3c);box-shadow:0 10px 30px #96502847}.pokemon-card--r3{--tier: #5f6f82;background:linear-gradient(135deg,#eef2f7,#9fb0c2,#fff,#9fb0c2);background-size:220% 220%;animation:tierShine 7s linear infinite;box-shadow:0 10px 32px #788ca566}.pokemon-card--r4{--tier: #b8932b;background:linear-gradient(135deg,#f8e7a6,#c9a227,#fff6cf,#c9a227);background-size:220% 220%;animation:tierShine 6s linear infinite;box-shadow:0 12px 36px #c9a22773}.pokemon-card--r5{--tier: #9b59ff;background:linear-gradient(125deg,#ff5f9e,#ffd36e,#6effd0,#6ea8ff,#c86dff,#ff5f9e);background-size:300% 300%;animation:holoShift 7s ease infinite;box-shadow:0 0 26px #9b59ff80,0 14px 44px #00000047}.pokemon-card--r1 .pokemon-card__image-frame{border-color:#c8c8c8}.pokemon-card--r2 .pokemon-card__image-frame{border-color:#b06a3c}.pokemon-card--r3 .pokemon-card__image-frame{border-color:#aab8c6}.pokemon-card--r4 .pokemon-card__image-frame{border-color:#d9b94a}.pokemon-card--r5 .pokemon-card__image-frame{border-color:transparent;background-image:linear-gradient(125deg,#ff5f9e,#ffd36e,#6effd0,#6ea8ff,#c86dff)}.pokemon-card--r3 .pokemon-card__image-frame:after,.pokemon-card--r4 .pokemon-card__image-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:linear-gradient(125deg,transparent 38%,rgba(255,255,255,.4) 50%,transparent 64%);background-size:250% 100%;animation:holoGlint 6s ease-in-out infinite}.pokemon-card--r5 .pokemon-card__image-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:linear-gradient(125deg,transparent 35%,rgba(255,255,255,.5) 48%,transparent 62%),linear-gradient(125deg,#ff008047,#00ffc83d,#7850ff47);background-size:250% 250%,200% 200%;mix-blend-mode:color-dodge;animation:holoGlint 5s ease-in-out infinite,holoSheen 7s linear infinite}@keyframes tierShine{0%{background-position:0% 50%}to{background-position:220% 50%}}@keyframes holoShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes holoSheen{0%{background-position:0% 0%,0% 0%}to{background-position:250% 250%,200% 200%}}@keyframes holoGlint{0%{background-position:130% 0}55%,to{background-position:-50% 0}}@media(prefers-reduced-motion:reduce){.pokemon-card--r3,.pokemon-card--r4,.pokemon-card--r5,.pokemon-card--r3 .pokemon-card__image-frame:after,.pokemon-card--r4 .pokemon-card__image-frame:after,.pokemon-card--r5 .pokemon-card__image-frame:after{animation:none}}.letter-screen{background:#fafafa;align-items:center;justify-content:center;padding:80px 24px}.letter__label{font-family:Space Mono,monospace;font-size:9px;letter-spacing:5px;text-transform:uppercase;color:#bbb;margin-bottom:40px}.letter__body{font-family:Playfair Display,serif;font-size:20px;font-weight:400;line-height:1.9;color:#222;max-width:480px;margin-bottom:48px;white-space:pre-line}.letter__sign{font-family:Playfair Display,serif;font-style:italic;font-size:22px;color:#444;width:100%;max-width:480px;text-align:right}.letter__heart{display:inline-block;margin-left:4px;color:#111}.letter__continue{margin-top:64px}.hub-screen{align-items:center;justify-content:center;padding:80px 24px;text-align:center}.hub__greeting{font-family:Space Mono,monospace;font-size:10px;letter-spacing:5px;text-transform:uppercase;color:#999;margin-bottom:16px}.hub__title{font-family:Playfair Display,serif;font-size:32px;font-weight:400;margin-bottom:64px}.hub__options{display:flex;flex-direction:column;gap:16px;width:100%;max-width:320px}.hub__divider{width:40px;height:1px;background:#ddd;margin:8px auto}.collection-screen{padding:60px 0 80px}.collection-screen .content-width{max-width:540px}.collection__header{margin-bottom:32px}.collection__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}.mini-card{background:linear-gradient(135deg,#e8e0d0,#d4cdc0,#e8e0d0);padding:4px;border-radius:12px;cursor:pointer;transition:transform .2s;aspect-ratio:5 / 7;display:flex}.mini-card:hover{transform:translateY(-4px)}.mini-card__inner{background:#fff;border-radius:9px;overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.mini-card__img{flex:1 1 auto;min-height:0;background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-family:Space Mono,monospace;font-size:9px;letter-spacing:1px;color:#ccc;border-bottom:1px solid #eee;object-fit:cover;width:100%}.mini-card__body{padding:12px 14px;flex:0 0 auto}.mini-card__name{font-family:Playfair Display,serif;font-size:16px;font-weight:700;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mini-card__type{font-family:Space Mono,monospace;font-size:8px;letter-spacing:2px;text-transform:uppercase;color:#999}.mini-card__diamonds{display:flex;gap:4px;margin-top:7px}.mini-card__diamond{width:7px;height:7px;background:var(--tier, #111);transform:rotate(45deg);border-radius:1px}.collection__back{margin-top:32px;text-align:center}.mini-card--r1{--tier: #6b7280;background:linear-gradient(135deg,#dcdcdc,#cdcdcd,#dcdcdc)}.mini-card--r2{--tier: #a85f33;background:linear-gradient(135deg,#e6bb92,#b06a3c,#f0d2b0,#b06a3c)}.mini-card--r3{--tier: #5f6f82;background:linear-gradient(135deg,#eef2f7,#9fb0c2,#fff,#9fb0c2);background-size:220% 220%;animation:tierShine 7s linear infinite}.mini-card--r4{--tier: #b8932b;background:linear-gradient(135deg,#f8e7a6,#c9a227,#fff6cf,#c9a227);background-size:220% 220%;animation:tierShine 6s linear infinite}.mini-card--r5{--tier: #9b59ff;background:linear-gradient(125deg,#ff5f9e,#ffd36e,#6effd0,#6ea8ff,#c86dff,#ff5f9e);background-size:300% 300%;animation:holoShift 7s ease infinite;box-shadow:0 0 16px #9b59ff73}@media(prefers-reduced-motion:reduce){.mini-card--r3,.mini-card--r4,.mini-card--r5{animation:none}}
