:root{--bg:#03050f;--surface:#080d1f;--border:#1a2a5e;--accent:#2a6ef5;--accent2:#00e5ff;--warn:#ff4d6d;--text:#c8d8f0;--text-dim:#4a6080;--gold:#f0c040;--glow:rgba(42,110,245,0.3)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:"Noto Serif JP",serif;min-height:100vh;overflow-x:hidden;position:relative}body:before{background-image:radial-gradient(1px 1px at 10% 15%,rgba(200,216,240,.6) 0,transparent 100%),radial-gradient(1px 1px at 30% 5%,rgba(200,216,240,.4) 0,transparent 100%),radial-gradient(1.5px 1.5px at 55% 25%,rgba(200,216,240,.5) 0,transparent 100%),radial-gradient(1px 1px at 70% 10%,rgba(200,216,240,.3) 0,transparent 100%),radial-gradient(1px 1px at 85% 40%,rgba(200,216,240,.5) 0,transparent 100%),radial-gradient(1px 1px at 20% 60%,rgba(200,216,240,.3) 0,transparent 100%),radial-gradient(2px 2px at 45% 75%,rgba(200,216,240,.4) 0,transparent 100%),radial-gradient(1px 1px at 90% 80%,rgba(200,216,240,.6) 0,transparent 100%),radial-gradient(1px 1px at 5% 90%,rgba(200,216,240,.3) 0,transparent 100%),radial-gradient(1.5px 1.5px at 60% 95%,rgba(200,216,240,.4) 0,transparent 100%);z-index:0}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none}body:after{background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.08) 0,rgba(0,0,0,.08) 4px);z-index:1}.wrapper{position:relative;z-index:2;max-width:680px;margin:0 auto;padding:40px 20px 80px}.lang-switcher{position:absolute;top:40px;right:20px;z-index:10}.btn-lang{display:inline-flex;align-items:center;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-dim);font-family:Share Tech Mono,monospace;font-size:.75rem;padding:4px 10px;cursor:pointer;letter-spacing:.1em;transition:color .2s,border-color .2s}.btn-lang:hover{color:var(--accent2);border-color:var(--accent2)}.lang-menu{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}.lang-option{padding:6px 20px;color:var(--text-dim);font-family:Share Tech Mono,monospace;font-size:.75rem;letter-spacing:.1em;text-decoration:none;transition:color .2s,background .2s}.lang-option:hover{background:rgba(42,110,245,.1)}.lang-option.active,.lang-option:hover{color:var(--accent2)}.header{text-align:center;margin-bottom:50px;animation:fadeDown 1s ease both}.header-year{font-family:Share Tech Mono,monospace;font-size:.75rem;color:var(--accent2);letter-spacing:.4em;margin-bottom:12px;opacity:.8}.header h1{font-family:Zen Antique,serif;font-size:clamp(1.6rem,5vw,2.4rem);font-weight:900;line-height:1.3;color:#fff;text-shadow:0 0 30px rgba(42,110,245,.8),0 0 60px rgba(42,110,245,.3);margin-bottom:10px}.header-sub{font-size:.85rem;color:var(--text-dim);letter-spacing:.1em}.header-line{width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);margin:18px auto}.steps{display:flex;justify-content:center;margin-bottom:40px;animation:fadeDown 1s ease .2s both}.step{gap:8px}.step,.step-num{display:flex;align-items:center}.step-num{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);justify-content:center;font-family:Share Tech Mono,monospace;font-size:.75rem;color:var(--text-dim);transition:all .4s}.step-num.active{border-color:var(--accent);color:var(--accent2);box-shadow:0 0 12px var(--glow);background:rgba(42,110,245,.1)}.step-num.done{border-color:var(--gold);color:var(--gold);background:rgba(240,192,64,.1)}.step-label{font-size:.7rem;color:var(--text-dim);letter-spacing:.05em}.step-label.active{color:var(--text)}.step-connector{width:30px;height:1px;background:var(--border);margin:0 8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:32px;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent2),transparent)}.card-corner{position:absolute;width:12px;height:12px;border-color:var(--accent2);border-style:solid;opacity:.5}.card-corner.tl{top:6px;left:6px;border-width:1px 0 0 1px}.card-corner.tr{top:6px;right:6px;border-width:1px 1px 0 0}.card-corner.bl{bottom:6px;left:6px;border-width:0 0 1px 1px}.card-corner.br{bottom:6px;right:6px;border-width:0 1px 1px 0}.intro-text{font-size:.85rem;line-height:2;color:var(--text-dim);margin-bottom:28px;border-left:2px solid var(--border);padding-left:14px}.intro-text em{color:var(--accent2);font-style:normal}.field{margin-bottom:24px}.field-label{display:block;font-size:.78rem;letter-spacing:.1em;color:var(--text-dim);margin-bottom:8px;font-family:Share Tech Mono,monospace}.field-label span{color:var(--warn);margin-left:4px}.field-hint{font-size:.72rem;color:var(--text-dim);margin-bottom:10px;opacity:.7}.name-badge{display:inline-block;margin-top:8px;padding:4px 12px;background:rgba(240,192,64,.07);border:1px solid rgba(240,192,64,.25);border-radius:2px;font-size:.7rem;color:var(--gold);font-family:Share Tech Mono,monospace;letter-spacing:.05em}.chip-group{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chip{padding:5px 14px;border:1px solid var(--border);border-radius:2px;font-size:.78rem;color:var(--text-dim);cursor:pointer;transition:all .2s;background:transparent;font-family:"Noto Serif JP",serif}.chip:hover{border-color:var(--accent);color:var(--text)}.chip.selected{border-color:var(--accent2);color:var(--accent2);background:rgba(0,229,255,.08);box-shadow:0 0 8px rgba(0,229,255,.2)}input[type=text],textarea{width:100%;background:rgba(0,0,0,.3);border:1px solid var(--border);border-radius:2px;color:var(--text);font-family:"Noto Serif JP",serif;font-size:.9rem;padding:12px 16px;resize:none;outline:none;transition:border-color .3s,box-shadow .3s;line-height:1.8}input[type=text]:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 12px var(--glow)}input::placeholder,textarea::placeholder{color:var(--text-dim);opacity:.6}.char-count{text-align:right;font-size:.7rem;color:var(--text-dim);margin-top:6px;font-family:Share Tech Mono,monospace}.btn-primary{width:100%;padding:16px;background:linear-gradient(135deg,#1a3a8f,#0a1a4f);border:1px solid var(--accent);color:var(--accent2);font-family:"Noto Serif JP",serif;font-size:1rem;font-weight:700;letter-spacing:.15em;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;border-radius:2px;margin-top:8px}.btn-primary:hover{background:linear-gradient(135deg,#2a4abf,#1a2a6f);box-shadow:0 0 24px var(--glow),0 0 48px rgba(42,110,245,.2);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05) 50%,transparent);transform:translateX(-100%);transition:transform .6s}.btn-primary:hover:after{transform:translateX(100%)}.result-header{font-family:Share Tech Mono,monospace;font-size:.7rem;color:var(--accent2);letter-spacing:.3em;margin-bottom:20px;opacity:.8}.developer-credit{display:flex;align-items:center;gap:14px;background:rgba(240,192,64,.06);border:1px solid rgba(240,192,64,.2);border-radius:2px;padding:14px 18px;margin-bottom:24px}.developer-icon{font-size:1.8rem;line-height:1}.developer-info{flex:1 1}.developer-title{font-size:.68rem;color:var(--text-dim);font-family:Share Tech Mono,monospace;letter-spacing:.15em;margin-bottom:4px}.developer-name{font-size:1.15rem;color:var(--gold);font-weight:700;letter-spacing:.05em}.result-story{font-size:.95rem;line-height:2.2;color:var(--text);margin-bottom:24px}.result-story .highlight{color:var(--gold);font-weight:700}.result-story .app-name{color:var(--accent2);font-weight:700}.result-story .doctor{color:var(--gold);font-weight:700}.result-story .weird{color:var(--warn);font-size:.85em}.result-divider{border:none;border-top:1px dashed var(--border);margin:24px 0}.share-area{background:rgba(0,0,0,.2);border:1px dashed var(--border);border-radius:2px;padding:16px;font-size:.8rem;color:var(--text-dim);margin-bottom:20px;font-family:Share Tech Mono,monospace;line-height:1.8;cursor:text;-webkit-user-select:all;-moz-user-select:all;user-select:all;white-space:pre-wrap}.btn-share{width:100%;padding:14px;background:transparent;border:1px solid #1da1f2;color:#1da1f2;font-family:"Noto Serif JP",serif;font-size:.9rem;font-weight:700;letter-spacing:.1em;cursor:pointer;border-radius:2px;transition:all .3s;margin-bottom:10px}.btn-share:hover{background:rgba(29,161,242,.1);box-shadow:0 0 16px rgba(29,161,242,.3)}.btn-retry{width:100%;padding:12px;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:"Noto Serif JP",serif;font-size:.85rem;cursor:pointer;border-radius:2px;transition:all .3s;letter-spacing:.1em}.btn-retry:hover{border-color:var(--accent);color:var(--text)}.terminal{background:#000;border:1px solid #1a3a1a;border-radius:4px;overflow:hidden}.terminal-header{background:#111;padding:8px 14px;display:flex;align-items:center;gap:6px;border-bottom:1px solid #1a3a1a}.terminal-dot{width:10px;height:10px;border-radius:50%}.terminal-dot.r{background:#ff5f57}.terminal-dot.y{background:#febc2e}.terminal-dot.g{background:#28c840}.terminal-title{font-family:Share Tech Mono,monospace;font-size:.7rem;color:#444;margin-left:6px}.terminal-body{padding:18px;min-height:200px}.terminal-line{font-family:Share Tech Mono,monospace;font-size:.78rem;line-height:2;opacity:0;transition:opacity .2s;white-space:pre-wrap;word-break:break-all}.terminal-line.visible{opacity:1}.terminal-line.cmd{color:#28c840}.terminal-line.out{color:#4a7a4a;padding-left:14px}.terminal-line.warn{color:var(--gold);padding-left:14px}.terminal-line.done{color:var(--accent2);font-weight:700}.terminal-cursor{display:inline-block;width:7px;height:.9em;background:#28c840;vertical-align:text-bottom;margin-left:2px;animation:blink .7s infinite}.footer{text-align:center;margin-top:40px;font-size:.7rem;color:var(--text-dim);opacity:.5;font-family:Share Tech Mono,monospace;letter-spacing:.1em}.shake{animation:shake .4s ease}@keyframes fadeDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}