@font-face{font-family:FZXS12;src:url(/FZXS12.TTF)format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{--page-bg:#120606;--panel-bg:#180505;--grid-line:#ff34152e;--frame-border:#ef3b17;--accent:#e73a19;--text-main:#f06d4c;--display-font:"STXingkai", "KaiTi", "Songti SC", serif;--pixel-font:"American Typewriter", "Courier New", monospace;--ui-font:"FZXS12", "PingFang SC", "Microsoft YaHei", sans-serif;font-family:var(--ui-font);color:var(--text-main);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#2a0909,#0b0202 60%)}*{box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:radial-gradient(circle at top,#740f0fb3,#0000 28%),linear-gradient(#190606,#080202 70%);min-width:320px;margin:0}button,input,textarea,select{font:inherit}img{max-width:100%;display:block}.app-shell{min-height:100vh}.screen-frame{position:relative;overflow:hidden;box-shadow:0 0 30px #00000073}.screen-frame__copyright{right:12px;bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:20;color:#ffdcd2b3;font-family:var(--ui-font);letter-spacing:.01em;pointer-events:none;text-align:center;text-shadow:0 0 8px #d9341d61;margin:0;font-size:clamp(8px,2.2vw,10px);line-height:1.2;position:absolute;left:12px}.screen{width:100%;min-height:100vh;position:relative}.screen--figma-stage{background:#000}.page-viewport{width:100%;min-height:100vh;overflow:hidden auto}.design-stage{width:100%;aspect-ratio:calc(var(--stage-width) / var(--stage-height));position:relative}.design-stage__surface{position:absolute;inset:0}.stage-asset{left:calc(var(--asset-x) / var(--stage-width) * 100%);top:calc(var(--asset-y) / var(--stage-height) * 100%);width:calc(var(--asset-width) / var(--stage-width) * 100%);height:var(--asset-height,auto);display:block;position:absolute}.stage-asset[data-has-explicit-height=true]{height:calc(var(--asset-height) / var(--stage-height) * 100%)}.stage-hotspot>.stage-asset,.stage-hotspot>.stage-vector{width:100%;height:100%;top:0;left:0}.stage-hotspot>.stage-asset[data-has-explicit-height=true]{height:100%}.stage-vector{left:calc(var(--vector-x) / var(--stage-width) * 100%);top:calc(var(--vector-y) / var(--stage-height) * 100%);width:calc(var(--vector-width) / var(--stage-width) * 100%);height:calc(var(--vector-height) / var(--stage-height) * 100%);position:absolute}.stage-vector>svg{width:100%;height:100%;display:block}.stage-hotspot{left:calc(var(--hotspot-x) / var(--stage-width) * 100%);top:calc(var(--hotspot-y) / var(--stage-height) * 100%);width:calc(var(--hotspot-width) / var(--stage-width) * 100%);height:calc(var(--hotspot-height) / var(--stage-height) * 100%);cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.stage-hotspot:disabled{cursor:not-allowed}.capture-actions,.archive-form__actions{z-index:1;gap:12px;margin-top:28px;display:flex;position:relative}.capture-button{color:#d9341d;min-height:48px;font-family:var(--ui-font);cursor:pointer;background:#110404db;border:2px solid #d9341d;flex:1;padding:10px 14px;font-size:16px}.capture-button--primary{background:#d9341d29}.screen--capture,.screen--archive{color:#d9341d;padding:100px 24px 72px}.capture-header,.capture-copy,.archive-card{z-index:1;position:relative}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=420px){.capture-actions,.archive-form__actions{flex-direction:column}}.archive-page{--archive-picker-window-width:330;--archive-picker-window-height:167;--archive-picker-item-width:108;--archive-picker-item-gap:0;--archive-field-gap:6px;--archive-placeholder-color:#f5a08c94;color:#d9341d;font-family:var(--ui-font)}.archive-page__screen{position:absolute;inset:0}.archive-page__field{position:absolute}.archive-page__field--editable{cursor:text}.archive-page__form-message{left:calc(30 / var(--stage-width) * 100%);top:calc(470 / var(--stage-height) * 100%);width:calc(330 / var(--stage-width) * 100%);color:#ff8b70;text-align:center;text-shadow:0 0 8px #d9341d99;margin:0;font-size:10px;line-height:1.2;position:absolute}.archive-page__field-row{align-items:baseline;gap:var(--archive-field-gap);display:flex}.archive-page__field-label,.archive-page__field-value{white-space:nowrap;margin:0;line-height:1}.archive-page__field-label{color:#f1502e;letter-spacing:0;text-shadow:0 0 12px #ff2b0f59;flex:none;font-size:14px}.archive-page__field-value,.archive-page__field-value-input{color:#f1502e;text-shadow:0 0 16px #d9341d38;font-size:14px;line-height:1}.archive-page__field-value{text-overflow:ellipsis;flex:none;min-width:0;overflow:hidden;transform:translateY(-1px)}.archive-page__field-value.is-editable{align-items:baseline;min-width:0;display:flex;overflow:visible}.archive-page__field-input-shell{flex:1;align-items:baseline;min-width:0;padding-bottom:2px;display:inline-flex;position:relative}.archive-page__field-input-shell:after{content:"";background:#f5a08cbf;height:1px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 8px #d9341d2e}.archive-page__field-input-shell{flex:none;max-width:112px}.archive-page__field-input-shell--picker{flex:1;overflow:visible}.archive-page__field-value-input{caret-color:#f5a08c;appearance:none;background:0 0;border:0;outline:none;width:100%;margin-bottom:-2px;padding:0;font-family:inherit;font-size:16px;line-height:1;display:block}.archive-page__field-value-input::placeholder{color:var(--archive-placeholder-color);opacity:1}.archive-page__field-fake-caret{pointer-events:none;background:#f5a08c;width:1px;height:1em;animation:1s step-end infinite archive-page-caret-blink;position:absolute;top:50%;left:0;transform:translateY(-55%)}.month-day-picker{width:100%;position:relative}.month-day-picker__trigger{color:#f1502e;width:100%;font:inherit;text-align:left;white-space:pre;text-shadow:0 0 10px #d9341d38;cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;line-height:1;display:block}.month-day-picker__trigger.is-placeholder{color:var(--archive-placeholder-color);text-shadow:0 0 8px #d9341d24}.month-day-picker__overlay{z-index:999;align-items:flex-end;display:flex;position:fixed;inset:0}.month-day-picker__backdrop{background:#0d040385;border:0;position:absolute;inset:0}.month-day-picker__sheet{width:100%;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#2c0d08fa;border-radius:18px 18px 0 0;position:relative;box-shadow:0 -12px 28px #00000047,0 0 18px #d9341d24}.month-day-picker__sheet-handle{background:#f5a08c66;border-radius:999px;width:44px;height:4px;margin:0 auto 10px}.month-day-picker__toolbar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.month-day-picker__title{color:#f1502e;text-shadow:0 0 10px #ff2b0f40;font-size:10px;line-height:1}.month-day-picker__confirm{color:#ffd1c1;font:inherit;cursor:pointer;background:#52180ff5;border:1px solid #f1502e80;border-radius:6px;padding:6px 10px;font-family:inherit;font-size:10px;line-height:1.2}.month-day-picker__wheel{justify-content:center;gap:12px;display:flex;position:relative}.month-day-picker__wheel:before{content:"";pointer-events:none;background:#f1502e14;border-top:1px solid #f1502e59;border-bottom:1px solid #f1502e59;height:36px;position:absolute;top:72px;left:0;right:0}.month-day-picker__item{color:#f5a08c8c;justify-content:center;align-items:center;height:36px;font-size:12px;line-height:1;transition:color .12s,transform .12s;display:flex}.month-day-picker__item.is-selected{color:#ffd1c1;transform:scale(1.05)}.archive-page__pokemon-picker-window{left:calc(30 / var(--stage-width) * 100%);top:calc(507 / var(--stage-height) * 100%);width:calc(var(--archive-picker-window-width) / var(--stage-width) * 100%);height:calc(var(--archive-picker-window-height) / var(--stage-height) * 100%);z-index:2;position:absolute;overflow:hidden}.archive-page__pokemon-picker-track{align-items:flex-start;gap:calc(var(--archive-picker-item-gap) / var(--archive-picker-window-width) * 100%);scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;height:100%;display:flex;overflow:auto hidden}.archive-page__pokemon-picker-track:before,.archive-page__pokemon-picker-track:after{content:"";flex:0 0 calc((var(--archive-picker-window-width) - var(--archive-picker-item-width)) / 2 / var(--archive-picker-window-width) * 100%)}.archive-page__pokemon-picker-track::-webkit-scrollbar{display:none}.archive-page__pokemon-card{flex:0 0 calc(var(--archive-picker-item-width) / var(--archive-picker-window-width) * 100%);scroll-snap-align:center;cursor:pointer;opacity:.58;z-index:1;background:0 0;border:0;flex-direction:column;justify-content:flex-start;align-items:center;gap:0;min-width:0;height:100%;padding:0;transition:transform .18s,opacity .18s,filter .18s;display:flex;position:relative}.archive-page__pokemon-card.is-selected{transform:translateY(calc(-10 / var(--stage-height) * 100%)) scale(1.12);opacity:1;filter:drop-shadow(0 0 14px #ff6f4c61);z-index:3}.archive-page__pokemon-picker-ball{pointer-events:none}.archive-page__pokemon-image{width:100%;height:calc(116 / var(--archive-picker-window-height) * 100%);object-fit:contain;filter:drop-shadow(0 0 10px #d9341d40)}.archive-page__pokemon-name{color:#f1502ed1;margin-top:calc(-28 / var(--archive-picker-window-height) * 100%);letter-spacing:.08em;text-shadow:0 0 10px #ff5e3b6b,0 0 4px #ffffff47;font-size:15px;line-height:1}.archive-page__pokemon-card.is-selected .archive-page__pokemon-name{color:#ffd7ca;text-shadow:0 0 12px #ff91708c,0 0 4px #ffffff73}.archive-page__download-copy{z-index:2;color:#d9341d;letter-spacing:.06em;white-space:nowrap;text-shadow:0 0 10px #ff5d3880,0 0 3px #fff3;pointer-events:none;font-size:16px;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.archive-page__download-arrow{z-index:3;pointer-events:none;position:absolute}.archive-page__download-arrow-frame{opacity:0;width:100%;height:100%;animation:1.4s step-end infinite archive-page-download-arrow;position:absolute;inset:0}.archive-page__download-arrow-frame.is-frame-2{animation-delay:.35s}.archive-page__download-arrow-frame.is-frame-3{animation-delay:.7s}.archive-page__download-arrow-frame.is-frame-4{animation-delay:1.05s}@keyframes archive-page-download-arrow{0%,24%{opacity:1}25%,to{opacity:0}}@keyframes archive-page-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.loading-page{font-family:var(--ui-font);background:#000}.loading-page__screen{min-height:auto}.loading-page__progress-shell{left:calc(var(--x) / var(--design-width) * 100%);top:calc(var(--y) / var(--design-height) * 100%);width:calc(var(--w) / var(--design-width) * 100%);height:calc(var(--h) / var(--design-height) * 100%);position:absolute}.loading-page__progress-frame{z-index:1;width:100%;height:auto;display:block;position:relative}.loading-page__progress-track{left:calc(var(--x) / var(--progress-shell-width) * 100%);top:calc(var(--y) / var(--progress-shell-height) * 100%);width:calc(var(--w) / var(--progress-shell-width) * 100%);height:calc(var(--h) / var(--progress-shell-height) * 100%);z-index:2;position:absolute;overflow:hidden}.loading-creature{transition:opacity .32s linear}.loading-creature.is-hidden{opacity:0}.loading-page__copy{left:calc(var(--x) / var(--design-width) * 100%);top:calc(var(--y) / var(--design-height) * 100%);width:calc(var(--w) / var(--design-width) * 100%);color:#d9341d;font-family:var(--ui-font);text-align:center;margin:0;font-size:18px;line-height:23px;position:absolute}@keyframes loading-progress-scroll{0%{background-position:0 0}to{background-position:25px 0}}@keyframes loading-progress-glow{0%{filter:brightness(.9)}50%{filter:brightness(1.05)}to{filter:brightness(.9)}}.loading-page__progress-strip{background-color:#0000;background-position:0 0;background-repeat:repeat-x;background-size:25px 100%;width:calc(100% + 25px);height:100%;animation:.3s linear infinite loading-progress-scroll,1s ease-in-out infinite loading-progress-glow}.pokemon-page__headline{left:0;top:calc(105 / var(--stage-height) * 100%);text-align:center;color:#ff4a1f;width:100%;font-family:var(--ui-font);text-shadow:0 0 12px #ff4a1f59;z-index:3;position:absolute}.pokemon-page__headline-copy,.pokemon-page__headline-name{margin:0}.pokemon-page__headline-copy{letter-spacing:.04em;font-size:20px;line-height:1.2}.pokemon-page__headline-name{margin-top:calc(33 / var(--stage-height) * 100%);letter-spacing:.06em;font-size:26px;line-height:1.1}.pokemon-page__preview-frame-shell{left:calc(82 / var(--stage-width) * 100%);top:calc(186 / var(--stage-height) * 100%);width:calc(225.17 / var(--stage-width) * 100%);height:calc(260 / var(--stage-height) * 100%);z-index:2;position:absolute}.pokemon-page__preview-frame{object-fit:contain;filter:drop-shadow(0 0 24px #ff6b3b47)drop-shadow(0 0 42px #ffc04a33);width:100%;height:100%}.pokemon-page__preview-frame--breathe{animation:2.4s ease-in-out infinite pokemon-main-card-breathe}.pokemon-page__preview-card-stage{left:calc(122.4 / var(--stage-width) * 100%);top:calc(235.6 / var(--stage-height) * 100%);width:calc(145.2 / var(--stage-width) * 100%);height:calc(156.8 / var(--stage-height) * 100%);z-index:4;position:absolute}.pokemon-page__preview-pokemon-panel,.pokemon-page__preview-card-panel,.pokemon-page__preview-card-static{transform-style:preserve-3d;transform-origin:50%;position:absolute;inset:0}.pokemon-page__preview-pokemon-scale{transform-origin:50%;width:100%;height:100%;transform:scale(2)}.pokemon-page__preview-pokemon,.pokemon-page__preview-card{object-fit:contain;backface-visibility:hidden;width:100%;height:100%}.pokemon-page__preview-pokemon{filter:drop-shadow(0 12px 28px #00000047)}.pokemon-page__preview-card-panel,.pokemon-page__preview-card-static{opacity:0}.pokemon-page__preview-card-stage.is-pokemon .pokemon-page__preview-pokemon-panel{opacity:1}.pokemon-page__preview-card-stage.is-pokemon .pokemon-page__preview-pokemon{animation:.42s cubic-bezier(.2,.9,.2,1) both pokemon-preview-pokemon-appear}.pokemon-page__preview-card-stage.is-flip-out .pokemon-page__preview-pokemon-panel{animation:.36s ease-in forwards pokemon-preview-pokemon-flip-out}.pokemon-page__preview-card-stage.is-flip-in .pokemon-page__preview-pokemon-panel{opacity:0}.pokemon-page__preview-card-stage.is-flip-in .pokemon-page__preview-card-panel{opacity:1;animation:.36s ease-out forwards pokemon-preview-card-flip-in}.pokemon-page__preview-card-stage.is-card .pokemon-page__preview-pokemon-panel,.pokemon-page__preview-card-stage.is-card .pokemon-page__preview-card-panel{opacity:0}.pokemon-page__preview-card-stage.is-card .pokemon-page__preview-card-static{opacity:1}.pokemon-page__flying-card{left:calc(var(--start-x) / var(--stage-width) * 100%);top:calc(var(--start-y) / var(--stage-height) * 100%);width:calc(var(--start-width) / var(--stage-width) * 100%);height:calc(var(--start-height) / var(--stage-height) * 100%);z-index:5;animation:.56s cubic-bezier(.22,1,.36,1) forwards pokemon-preview-fly;position:absolute}.pokemon-page__flying-card-face{object-fit:contain;width:100%;height:100%}.pokemon-page__slot{left:calc(var(--slot-x) / var(--stage-width) * 100%);top:calc(var(--slot-y) / var(--stage-height) * 100%);width:calc(var(--slot-width) / var(--stage-width) * 100%);height:calc(var(--slot-height) / var(--stage-height) * 100%);z-index:1;position:absolute}.pokemon-page__slot-bg,.pokemon-page__slot-card{width:100%;height:100%;position:absolute;inset:0}.pokemon-page__slot-bg{background-position:50%;background-repeat:no-repeat;background-size:contain}.pokemon-page__slot-bg.is-settled{filter:drop-shadow(0 0 4px #ff7047ad)drop-shadow(0 0 10px #d9341d75)}.pokemon-page__slot-card{object-fit:contain;padding:14% 11% 13%}.pokemon-page__mission-copy{color:#646464;width:100%;height:100%;font-family:var(--ui-font);text-align:center;white-space:pre-line;justify-content:center;align-items:center;font-size:12px;line-height:1.43;transition:color .16s;display:flex;position:absolute;top:0;transform:translateY(-8%)}.pokemon-page__mission-copy.is-ready{color:#d9341d;text-shadow:0 1px 1px #ffffff38,0 0 1px #590c07a6}.stage-hotspot--mission{transition:opacity .16s}.stage-hotspot--mission.is-enabled{animation:1.8s ease-in-out infinite pokemon-mission-hotspot-breathe}@keyframes pokemon-preview-pokemon-flip-out{0%{opacity:1;transform:rotateY(0)}to{opacity:0;transform:rotateY(90deg)}}@keyframes pokemon-preview-pokemon-appear{0%{opacity:0;filter:brightness(1.22)drop-shadow(0 0 26px #ffa44a73)drop-shadow(0 0 52px #ff502133);transform:translateY(12%)scale(.84)}58%{opacity:1;filter:brightness(1.08)drop-shadow(0 14px 32px #0000003d)drop-shadow(0 0 18px #ff804038);transform:translateY(-3%)scale(1.18)}to{opacity:1;filter:drop-shadow(0 12px 28px #00000047);transform:scale(1)}}@keyframes pokemon-preview-card-flip-in{0%{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@keyframes pokemon-preview-fly{0%{left:calc(var(--start-x) / var(--stage-width) * 100%);top:calc(var(--start-y) / var(--stage-height) * 100%);width:calc(var(--start-width) / var(--stage-width) * 100%);height:calc(var(--start-height) / var(--stage-height) * 100%);opacity:1;transform:translate(0,0)scale(1)}to{left:calc(var(--target-x) / var(--stage-width) * 100%);top:calc(var(--target-y) / var(--stage-height) * 100%);width:calc(var(--target-width) / var(--stage-width) * 100%);height:calc(var(--target-height) / var(--stage-height) * 100%);opacity:.98;transform:translate(0,0)scale(1)}}@keyframes pokemon-main-card-breathe{0%,to{filter:drop-shadow(0 0 24px #ff6b3b47)drop-shadow(0 0 42px #ffc04a33);transform:scale(1)}50%{filter:drop-shadow(0 0 42px #ff6b3b94)drop-shadow(0 0 78px #ffc04a6b);transform:scale(1.075)}}@keyframes pokemon-mission-hotspot-breathe{0%,to{box-shadow:0 0 4px 1px #d9341d47}50%{box-shadow:0 0 8px 2px #ff7047b8,0 0 18px 5px #d9341d7a}}.poster-page{color:#f3d0be;font-family:var(--ui-font);background:radial-gradient(circle at top,#5a080873,#0000 38%),#050101}.poster-page__content{padding:24px 16px 40px}.poster-page__header{gap:10px;margin-bottom:16px;display:grid}.poster-page__back,.poster-page__save{color:#ffd6c6;min-height:48px;font:inherit;background:#260808eb;border:1px solid #ff846b7a;border-radius:14px;margin-top:10px;font-family:inherit}.poster-page__hint{color:#ffd6c6d1;margin:0;font-size:14px;line-height:1.5}.poster-page__stage-shell{background:#000;border-radius:20px;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000073,0 0 0 1px #ff6f4c2e}.poster-page__image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.poster-page__image--loading{opacity:.8;filter:saturate(.85)}.poster-page__actions{margin-top:0}.poster-page__back{width:100%;padding:0 16px}.poster-page__save{width:100%}.poster-page__save:disabled{opacity:.56}
