.twin-creation { box-sizing:border-box; width:min(760px,calc(100% - 32px)); max-height:calc(100dvh - 40px); border:1px solid #d9cdb9; border-radius:24px; padding:28px; background:#fffaf2; color:var(--text,#333); box-shadow:0 25px 90px #251b1950; overflow-y:auto; overscroll-behavior:contain; }
.twin-creation::backdrop { background:#201b20a8; backdrop-filter:blur(5px); }
.twin-creation [hidden] { display:none !important; }
.twin-creation-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.twin-creation-top h2 { font-family:var(--serif,serif); font-size:27px; margin:5px 0 0; }
.twin-creation-top h2:focus { outline:none; }
.twin-creation-close { flex:0 0 40px; width:40px; height:40px; border:1px solid #dfd3c2; border-radius:50%; background:transparent; color:#675a50; font-size:26px; cursor:pointer; }
.twin-creation-close:disabled { opacity:.3; cursor:default; }
.twin-creation-steps { display:flex; gap:8px; padding:0; list-style:none; margin:22px 0 0; font-size:12px; color:#84786c; }
.twin-creation-steps li { flex:1; border-top:2px solid #e4dbcc; padding-top:9px; }
.twin-creation-steps [aria-current] { border-color:#a74e3d; color:#8d3f30; font-weight:700; }
.twin-creation-lead { margin:20px 0 0; color:#78695d; font-size:13px; line-height:1.8; }
.twin-creation .profile-editor { margin:16px 0 0; padding:20px; background:#fffdf8; }
.twin-creation .profile-editor-heading h3 { font-size:20px; }
.twin-creation .profile-editor-main { gap:24px; }
.twin-creation-result { text-align:center; padding:22px 16px 20px; }
.twin-reveal-stage { width:260px; height:250px; margin:0 auto; position:relative; display:grid; place-items:center; isolation:isolate; }
.twin-reveal-halo { position:absolute; width:210px; height:210px; border-radius:50%; border:1px solid #d4bd94; background:radial-gradient(circle,#f4dfb9 0, #f5e9d400 70%); box-shadow:0 0 0 14px #d8bd8d13,0 0 0 29px #d8bd8d0b; }
.twin-reveal-avatar { width:160px; height:160px; opacity:0; position:relative; z-index:1; }
.twin-reveal-avatar svg { width:100%; height:100%; border-radius:32px; box-shadow:0 10px 30px #6c4b341a; }
.twin-smoke { position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; border-radius:50%; }
.twin-smoke i { position:absolute; top:70px; left:50px; width:150px; height:130px; border-radius:50%; background:radial-gradient(ellipse,#f0e7db 20%,#e8ddcbbd 50%,#eee5d400 72%); filter:blur(5px); }
.twin-smoke i:nth-child(2) { left:5px; top:80px; --x:-100px; --y:-40px; }
.twin-smoke i:nth-child(3) { left:100px; top:80px; --x:100px; --y:-60px; }
.twin-smoke i:nth-child(4) { left:45px; top:20px; --x:-70px; --y:-100px; }
.twin-smoke i:nth-child(5) { left:70px; top:120px; --x:80px; --y:90px; }
.twin-creation-dots { display:flex; justify-content:center; gap:7px; position:relative; z-index:3; }
.twin-creation-dots i,.twin-search-dots i { width:7px; height:7px; display:block; background:#a86247; border-radius:50%; }
.is-building .twin-creation-dots i,.twin-search-scene[data-phase="running"] .twin-search-dots i { animation:twin-pulse 1.4s ease-in-out infinite; }
.is-building .twin-creation-dots i:nth-child(2),.twin-search-scene[data-phase="running"] .twin-search-dots i:nth-child(2) { animation-delay:.2s; }
.is-building .twin-creation-dots i:nth-child(3),.twin-search-scene[data-phase="running"] .twin-search-dots i:nth-child(3) { animation-delay:.4s; }
.is-complete .twin-creation-dots { display:none; }
.is-complete .twin-reveal-avatar { animation:twin-arrive 1s ease-out both; }
.is-complete .twin-smoke i { animation:twin-clear 1.35s ease-out both; }
.twin-result-kicker { font-size:11px; letter-spacing:.14em; color:#9c6b43; margin:8px 0 12px; }
.twin-result-title { font-family:var(--serif,serif); font-size:25px; margin:0 0 12px; }
.twin-result-copy { max-width:360px; margin:0 auto 24px; color:#776b5c; line-height:1.9; font-size:14px; }
.twin-creation-error { border:1px solid #d6a393; background:#fff0e8; color:#963f2e; padding:12px; border-radius:10px; line-height:1.7; font-size:13px; }
.twin-search-scene { background:linear-gradient(145deg,#f5eee0,#fffaf1); border:1px solid #dfd3bd; border-radius:18px; padding:24px 20px; margin:0 0 18px; text-align:center; }
.twin-search-portrait { display:flex; justify-content:center; align-items:center; gap:14px; margin:2px 0 17px; }
.twin-search-portrait .avatar { box-shadow:0 6px 15px #795a331a; }
.twin-search-conversation { display:flex; align-items:center; justify-content:center; gap:15px; padding-top:25px; margin:14px 0 25px; }
.twin-search-self,.twin-search-other { position:relative; width:96px; height:96px; }
.twin-search-other svg { display:block; width:100%; height:100%; }
.twin-search-bubble { position:absolute; z-index:1; top:-29px; right:-10px; border:1px solid #decdb2; background:#fffdf7; border-radius:13px 13px 13px 2px; color:#a68456; padding:2px 12px 5px; letter-spacing:3px; font-size:16px; animation:twin-speak 3s ease-in-out infinite; }
.twin-search-other .twin-search-bubble { animation-delay:1.5s; right:auto; left:-10px; border-radius:13px 13px 2px 13px; }
.twin-search-link { width:28px; border-top:2px dotted #c5b18e; }
.twin-search-dots { display:flex; gap:6px; align-items:center; }
.twin-search-dots i { background:#ad9272; width:6px; height:6px; }
.twin-search-destination { width:44px; height:44px; display:grid; place-items:center; border:1px dashed #c3ad8c; border-radius:50%; font-size:22px; color:#a68c69; }
.twin-search-kicker { font-size:10px; letter-spacing:.15em; color:#97724c; margin:0 0 9px; }
.twin-search-scene h3 { margin:0 0 10px; font-size:19px; line-height:1.6; font-family:var(--serif,serif); }
.twin-search-scene p.twin-search-copy { font-size:13px; line-height:1.9; color:#766655; margin:0; }
.twin-search-scene[data-phase="error"],.twin-search-scene[data-phase="unavailable"] { border-color:#d7b7a7; background:#fff2e9; }
.twin-search-scene:focus { outline:3px solid #b8513d66; outline-offset:3px; }
@keyframes twin-pulse { 0%,70%,100% { opacity:.3; transform:translateY(0); } 35% { opacity:1; transform:translateY(-5px); } }
@keyframes twin-speak { 0%,50%,100% { opacity:.25; transform:translateY(2px); } 20%,35% { opacity:1; transform:translateY(-2px); } }
@keyframes twin-arrive { from { opacity:0; transform:translateY(13px) scale(.9); } to { opacity:1; transform:none; } }
@keyframes twin-clear { from { opacity:1; transform:translate(0,0) scale(1); } to { opacity:0; transform:translate(var(--x,0),var(--y,-80px)) scale(1.5); } }
@media(max-width:600px) { .twin-creation { width:calc(100% - 20px); max-height:calc(100dvh - 24px); border-radius:18px; padding:18px 14px; }.twin-creation-top h2 { font-size:23px; }.twin-creation .profile-editor { padding:16px 12px; }.twin-creation .profile-editor-main { gap:18px; }.twin-creation-steps { font-size:11px; gap:6px; }.twin-creation-result { padding:14px 0 8px; }.twin-result-title { font-size:22px; }.twin-creation-next { width:100%; }.twin-search-scene { padding:22px 15px; } }
@media(prefers-reduced-motion:reduce) { .twin-creation *, .twin-search-scene * { animation:none !important; transition:none !important; }.is-complete .twin-reveal-avatar { opacity:1; }.is-complete .twin-smoke { display:none; } }
