:root{--neo-bg0: #030712;--neo-cyan: #22d3ee;--neo-cyan-dim: rgba(34, 211, 238, .35);--neo-magenta: #c084fc;--neo-magenta-dim: rgba(192, 132, 252, .25);--neo-text: #e2e8f0;--neo-text-muted: #94a3b8;--neo-glass: rgba(15, 23, 42, .55);--neo-border: rgba(34, 211, 238, .25);--neo-glow: 0 0 24px rgba(34, 211, 238, .15);--font-ui: "Noto Sans JP", system-ui, sans-serif;--font-hud: "Orbitron", "Noto Sans JP", sans-serif}body{margin:0;min-height:100vh;background:var(--neo-bg0);color:var(--neo-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.app{position:relative;min-height:100vh;font-family:var(--font-ui);text-align:center;font-size:15px;padding:2rem 1rem 3rem}.app-scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.app-scene__grid{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background-image:linear-gradient(rgba(34,211,238,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(34,211,238,.03) 1px,transparent 1px);background-size:48px 48px;transform:perspective(500px) rotateX(60deg);transform-origin:center top;animation:app-grid-drift 28s linear infinite}@keyframes app-grid-drift{0%{transform:perspective(500px) rotateX(60deg) translateY(0)}to{transform:perspective(500px) rotateX(60deg) translateY(48px)}}.app-scene__orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;animation:app-orb-pulse 8s ease-in-out infinite alternate}.app-scene__orb--a{width:min(55vw,420px);height:min(55vw,420px);background:radial-gradient(circle,var(--neo-cyan) 0%,transparent 70%);top:-10%;right:-15%}.app-scene__orb--b{width:min(50vw,380px);height:min(50vw,380px);background:radial-gradient(circle,var(--neo-magenta) 0%,transparent 70%);bottom:10%;left:-20%;animation-delay:-4s}@keyframes app-orb-pulse{0%{opacity:.35;transform:scale(1)}to{opacity:.55;transform:scale(1.08)}}.app-scene__scanline{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.12) 2px,rgba(0,0,0,.12) 4px);opacity:.4;pointer-events:none}.app-inner{position:relative;z-index:1;max-width:720px;margin:0 auto}.app-logo-row{margin:1.5rem 0 0}.app-logo{width:min(240px,70vw);filter:drop-shadow(0 0 20px var(--neo-cyan-dim)) drop-shadow(0 0 40px var(--neo-magenta-dim))}.app-tagline{font-weight:300;font-size:.875rem;letter-spacing:.2em;color:var(--neo-cyan);text-shadow:0 0 12px var(--neo-cyan-dim);margin:.75rem 0 1.75rem;font-family:var(--font-ui)}.app-prompt{font-weight:400;margin-bottom:1rem;font-size:.95rem;color:var(--neo-text-muted);letter-spacing:.04em}.app-glass{background:var(--neo-glass);border:1px solid var(--neo-border);border-radius:12px;padding:1.5rem 1.25rem 1.25rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--neo-glow),inset 0 1px #ffffff0f}.app-form-section{text-align:center;margin-bottom:.5rem}.app-form{display:flex;align-items:flex-end;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:.75rem 1rem}.app-form-inner{display:flex;align-items:flex-end;flex-wrap:wrap;justify-content:center;gap:.75rem 1rem}.app-input-label{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin-bottom:0}.app-input-label__text{font-family:var(--font-hud);font-size:.65rem;letter-spacing:.35em;color:var(--neo-cyan);text-transform:uppercase}.app-input{width:min(200px,55vw);padding:.65rem 1rem;border:1px solid var(--neo-border);border-radius:6px;background:#030712cc;color:var(--neo-text);font-family:var(--font-hud);font-size:1rem;letter-spacing:.08em;-webkit-text-size-adjust:none;text-size-adjust:none;transition:border-color .2s,box-shadow .2s}.app-input::placeholder{color:var(--neo-text-muted);opacity:.5;font-size:.8rem;letter-spacing:.05em}.app-input:focus{outline:none;border-color:var(--neo-cyan);box-shadow:0 0 0 1px var(--neo-cyan),0 0 20px var(--neo-cyan-dim)}.app-submit{font-family:var(--font-hud);font-weight:600;font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;padding:.7rem 1.25rem;border:none;border-radius:6px;cursor:pointer;color:var(--neo-bg0);background:linear-gradient(135deg,var(--neo-cyan) 0%,#67e8f9 45%,var(--neo-magenta) 100%);background-size:200% 200%;box-shadow:0 0 20px var(--neo-cyan-dim),0 4px 16px #00000059;transition:transform .15s,box-shadow .2s}.app-submit:hover{transform:translateY(-2px);box-shadow:0 0 28px #22d3ee73,0 6px 20px #0006}.app-submit:active{transform:translateY(0)}.app-validation-wrap{text-align:center;margin-top:.75rem;min-height:1.25rem;font-size:.8rem}.app-validation-msg{color:#fb923c;text-shadow:0 0 12px rgba(251,146,60,.35)}.app-share{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--neo-border);display:flex;flex-direction:column;align-items:center;gap:.65rem}.app-share__btn{font-family:var(--font-ui);font-size:.9rem;font-weight:600;padding:.65rem 1.5rem;border-radius:8px;cursor:pointer;color:var(--neo-text);background:var(--neo-glass);border:1px solid var(--neo-border);box-shadow:var(--neo-glow);transition:border-color .2s,box-shadow .2s,transform .15s}.app-share__btn:hover{border-color:var(--neo-cyan);box-shadow:0 0 20px var(--neo-cyan-dim),0 0 0 1px #22d3ee33;transform:translateY(-1px)}.app-share__btn:active{transform:translateY(0)}.app-share__hint{font-size:.75rem;color:var(--neo-text-muted);max-width:280px;line-height:1.45}.app-loading{margin-top:2rem;display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.app-loading__dot{width:8px;height:8px;border-radius:50%;background:var(--neo-cyan);box-shadow:0 0 10px var(--neo-cyan);animation:app-dot 1.2s ease-in-out infinite}.app-loading__dot:nth-child(2){animation-delay:.15s;background:#67e8f9}.app-loading__dot:nth-child(3){animation-delay:.3s;background:var(--neo-magenta);box-shadow:0 0 10px var(--neo-magenta-dim)}@keyframes app-dot{0%,80%,to{opacity:.35;transform:scale(.85)}40%{opacity:1;transform:scale(1.1)}}.app-loading__label{font-family:var(--font-hud);font-size:.7rem;letter-spacing:.4em;color:var(--neo-text-muted);margin-left:.5rem}.app-results{margin-top:.5rem}.app-alert{margin:1.5rem auto 0;max-width:420px;padding:1rem 1.25rem;line-height:1.65;font-size:.9rem;color:#fcd34d;border:1px solid rgba(252,211,77,.35);border-radius:10px;background:#78350f26;box-shadow:0 0 24px #fcd34d14}.app-result-empty{margin-top:1.75rem;padding:1.25rem 1rem;font-size:1rem;font-weight:500;line-height:1.6;color:var(--neo-text-muted);border:1px dashed var(--neo-border);border-radius:10px;background:#0f172a66}.app-result-spacer{height:8px}.app-result-card{margin-top:1rem;padding:1.5rem 1rem 1.75rem;border-radius:14px;border:1px solid var(--neo-border);background:linear-gradient(165deg,#0f172abf,#030712d9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--neo-glow),inset 0 1px #ffffff0d}.app-char-label{font-family:var(--font-hud);font-size:.95rem;letter-spacing:.12em;color:var(--neo-cyan);text-shadow:0 0 16px var(--neo-cyan-dim);margin-bottom:.75rem}.app-img-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem}.app-img-char{width:min(240px,42vw);height:min(240px,42vw);object-fit:contain;border-radius:8px;border:1px solid var(--neo-border);box-shadow:0 0 0 1px #0000004d,0 8px 32px #00000073,0 0 24px var(--neo-cyan-dim);transition:transform .25s,box-shadow .25s}.app-img-char:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 40px #00000080,0 0 32px #22d3ee40}.app-result-footer{margin-top:.5rem;display:flex;flex-direction:column;align-items:center}.app-divider{width:2px;height:1.5rem;margin:.75rem 0;padding:0;border:none;border-radius:1px;background:var(--neo-cyan);box-shadow:0 0 12px var(--neo-cyan-dim);flex-shrink:0;align-self:center}.app-ntp-label{font-size:.8rem;margin-bottom:.5rem;color:var(--neo-text-muted);letter-spacing:.08em}.app-img-ntp{width:92px;height:92px;border-radius:8px;border:1px solid var(--neo-magenta-dim);box-shadow:0 0 20px var(--neo-magenta-dim)}.app-char-unknown{margin-top:1.5rem;padding:1rem;font-size:.85rem;color:var(--neo-text-muted);border-radius:8px;background:#0f172a80;border:1px solid rgba(148,163,184,.2)}.app-bottom-spacer{height:2rem}@media(prefers-reduced-motion:reduce){.app-scene__grid,.app-scene__orb,.app-loading__dot{animation:none}.app-scene__grid{transform:perspective(500px) rotateX(60deg)}}.app-char-gallery{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;width:100%;max-width:min(400px,100%);margin:0 auto .5rem}.app-char-gallery__hero-btn{display:block;width:100%;padding:0;border:none;background:transparent;cursor:pointer;border-radius:12px;overflow:hidden;border:1px solid var(--neo-border);box-shadow:0 0 0 1px #0000004d,0 8px 32px #00000073,0 0 24px var(--neo-cyan-dim);transition:transform .2s,box-shadow .2s}.app-char-gallery__hero-btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000080,0 0 32px #22d3ee40}.app-char-gallery__hero-btn:focus-visible{outline:2px solid var(--neo-cyan);outline-offset:3px}.app-char-gallery__hero{display:block;width:100%;height:auto;vertical-align:middle;object-fit:contain}.app-char-gallery__row{display:flex;flex-direction:row;gap:.5rem;width:100%;align-items:stretch;justify-content:center}.app-char-gallery__half-btn{flex:1 1 0;min-width:0;max-width:50%;padding:0;border:none;background:transparent;cursor:pointer;border-radius:10px;overflow:hidden;border:1px solid var(--neo-border);box-shadow:0 0 0 1px #0000004d,0 4px 20px #00000059,0 0 16px var(--neo-cyan-dim);transition:transform .2s,box-shadow .2s}.app-char-gallery__half-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #0006,0 0 24px #22d3ee33}.app-char-gallery__half-btn:focus-visible{outline:2px solid var(--neo-cyan);outline-offset:2px}.app-char-gallery__half{display:block;width:100%;height:auto;object-fit:contain;vertical-align:middle}.app-img-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.app-img-lightbox__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;cursor:pointer;background:#030712e0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.app-img-lightbox__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:min(96vw,920px);max-height:90vh;pointer-events:none}.app-img-lightbox__close{pointer-events:auto;border:1px solid var(--neo-border);background:var(--neo-glass);color:var(--neo-text);width:40px;height:40px;border-radius:8px;cursor:pointer;font-size:1.35rem;line-height:1;display:flex;align-items:center;justify-content:center;font-family:inherit;flex-shrink:0;transition:border-color .2s,box-shadow .2s}.app-img-lightbox__close:hover{border-color:var(--neo-cyan);box-shadow:0 0 16px var(--neo-cyan-dim)}.app-img-lightbox__close:focus-visible{outline:2px solid var(--neo-cyan);outline-offset:2px}.app-img-lightbox__img{align-self:center;pointer-events:auto;max-width:100%;max-height:calc(90vh - 3.5rem);width:auto;height:auto;object-fit:contain;border-radius:12px;border:1px solid var(--neo-border);box-shadow:0 12px 48px #0000008c}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:coder;src:local("coder"),url(font.woff) format("woff")}body{margin:0;min-height:100vh;background:var(--neo-bg0, #030712);color:var(--neo-text, #e2e8f0);font-family:var(--font-ui, "Noto Sans JP", system-ui, sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}*{margin:0;padding:0;box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body::-webkit-scrollbar{display:none}body{-ms-overflow-style:none;scrollbar-width:none}html{background-color:var(--neo-bg0, #030712)}div{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-o-user-select:none}
