.companion-picker{position:relative}.companion-picker__label{font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.companion-picker__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,#333);border-radius:.5rem;color:var(--text-primary);cursor:pointer;font:inherit;text-align:left}.companion-picker__trigger:hover{border-color:var(--accent-primary,#22c55e)}.companion-picker__trigger:disabled{opacity:.5;cursor:not-allowed}.companion-picker__selected{display:flex;align-items:center;gap:.5rem}.companion-picker__selected--solo{color:var(--text-secondary)}.companion-picker__selected strong{font-weight:600}.companion-picker__selected span{font-size:.78rem;color:var(--text-secondary)}.companion-picker__avatar{width:28px;height:28px;border-radius:50%;border:2px solid var(--accent-green,#22c55e);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0;object-fit:cover}.companion-picker__avatar--solo{border-color:var(--border-color,#333);color:var(--text-secondary)}.companion-picker__chevron{font-size:.75rem;color:var(--text-secondary);margin-left:.5rem}.companion-picker__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,#333);border-radius:.5rem;box-shadow:0 8px 24px rgba(0,0,0,.4);max-height:320px;overflow:hidden;display:flex;flex-direction:column}.companion-picker__search{padding:.5rem .75rem;border:none;border-bottom:1px solid var(--border-color,#222);background:rgba(0,0,0,0);color:var(--text-primary);font:inherit;font-size:.85rem;outline:none}.companion-picker__search::placeholder{color:var(--text-tertiary,#555)}.companion-picker__filters{display:flex;gap:.25rem;padding:.4rem .5rem;border-bottom:1px solid var(--border-color,#222);flex-wrap:wrap}.companion-picker__chip{padding:.15rem .5rem;border-radius:1rem;border:1px solid var(--border-color,#333);background:rgba(0,0,0,0);color:var(--text-secondary);font-size:.75rem;cursor:pointer;text-transform:capitalize}.companion-picker__chip--active{background:var(--accent-primary,#22c55e);color:var(--bg-primary,#0d0d1a);border-color:rgba(0,0,0,0)}.companion-picker__list{overflow-y:auto;max-height:240px}.companion-picker__row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer}.companion-picker__row--focused,.companion-picker__row:hover{background:var(--bg-tertiary,#252540)}.companion-picker__row--selected{background:rgba(34,197,94,.08)}.companion-picker__row-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.companion-picker__row-info strong{font-size:.85rem}.companion-picker__row-info span{font-size:.72rem;color:var(--text-secondary);display:flex;align-items:center;gap:.3rem}.companion-picker__mood-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.companion-picker__mode-badge{padding:.05rem .35rem;border-radius:.25rem;border:1px solid var(--border-color,#333);font-size:.75rem;text-transform:capitalize;margin-left:.25rem}.companion-picker__empty{padding:1rem;text-align:center;color:var(--text-secondary);font-size:.82rem}@media(max-width:768px){.companion-picker__dropdown{position:fixed;top:auto;bottom:0;left:0;right:0;border-radius:1rem 1rem 0 0;max-height:60vh}}.ceremony-section{position:relative;border-radius:16px;overflow:hidden;margin:.75rem 0}.ceremony-section:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--ceremony-bg,#0f0f0f) 0,rgba(0,0,0,.95) 50%,var(--ceremony-bg,#0f0f0f) 100%);opacity:.9;z-index:0}.ceremony-section:after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:60%;height:2px;background:var(--ceremony-accent,#a78bfa);border-radius:0 0 4px 4px;box-shadow:0 0 20px var(--ceremony-accent,#a78bfa);z-index:1}.ceremony-inner{position:relative;z-index:1;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.ceremony-header{text-align:center}.ceremony-header h3{font-size:1.25rem;margin:0 0 .25rem;color:var(--ceremony-text,#eee)}.ceremony-header p{color:var(--text-secondary,#888);font-size:.8125rem;margin:0}.ceremony-step-indicator{display:flex;justify-content:center;gap:.5rem}.ceremony-step-indicator .step-dot{width:6px;height:6px;border-radius:50%;background:var(--border-primary,#333);transition:background .2s,box-shadow .2s}.ceremony-step-indicator .step-dot.active{background:var(--ceremony-accent,#a78bfa);box-shadow:0 0 6px var(--ceremony-accent,#a78bfa)}.ceremony-step-indicator .step-dot.completed{background:var(--accent-secondary,#4ade80)}.archetype-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.archetype-card{border:1px solid var(--border-primary,#333);border-radius:10px;padding:.875rem;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;background:color-mix(in srgb,var(--text-primary) 3%,transparent)}.archetype-card:hover{border-color:var(--ceremony-accent,#a78bfa);background:color-mix(in srgb,var(--text-primary) 5%,transparent)}.archetype-card.selected{border-color:var(--ceremony-accent,#a78bfa);background:color-mix(in srgb,var(--text-primary) 6%,transparent);box-shadow:0 0 12px rgba(168,85,247,.15)}.archetype-card h4{font-size:.9375rem;margin:0 0 .375rem;color:var(--ceremony-text,#eee)}.archetype-card p{font-size:.75rem;color:var(--text-secondary,#888);margin:0 0 .5rem;line-height:1.4}.archetype-stats{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.75rem;color:var(--text-tertiary,#666)}.archetype-stats span{background:color-mix(in srgb,var(--text-primary) 4%,transparent);padding:1px 5px;border-radius:3px}.name-field{display:flex;gap:.5rem;align-items:center}.name-field input{flex:1 1;padding:.5rem .75rem;border:1px solid var(--border-primary,#333);border-radius:8px;background:color-mix(in srgb,var(--text-primary) 4%,transparent);color:var(--text-primary,#eee);font-size:.9375rem}.name-field input::placeholder{color:var(--text-tertiary,#666)}.name-field input:focus{border-color:var(--ceremony-accent,#a78bfa);outline:none}.name-field .dice-btn{padding:.5rem .625rem;border:1px solid var(--border-primary,#333);border-radius:8px;background:color-mix(in srgb,var(--text-primary) 4%,transparent);color:var(--text-primary,#eee);cursor:pointer;font-size:1rem;transition:border-color .15s}.name-field .dice-btn:hover{border-color:var(--ceremony-accent,#a78bfa)}.stat-sliders{display:flex;flex-direction:column;gap:.5rem}.stat-slider-row{display:flex;align-items:center;gap:.625rem}.stat-slider-row .stat-label{width:100px;font-size:.75rem;color:var(--text-secondary,#888)}.stat-slider-row input[type=range]{flex:1 1;accent-color:var(--ceremony-accent,#a78bfa);height:4px}.stat-slider-row .stat-value{width:32px;text-align:right;font-size:.8125rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ceremony-text,#eee)}.personality-question{text-align:center}.personality-question .question-counter{font-size:.75rem;color:var(--text-tertiary,#666);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.5px}.personality-question .question-text{font-size:1rem;font-style:italic;margin-bottom:.875rem;color:var(--ceremony-text,#eee);line-height:1.5}.personality-options{display:flex;flex-direction:column;gap:.375rem}.personality-option{border:1px solid var(--border-primary,#333);border-radius:8px;padding:.625rem .875rem;cursor:pointer;text-align:left;background:color-mix(in srgb,var(--text-primary) 3%,transparent);color:var(--text-primary,#eee);font-size:.8125rem;transition:border-color .15s,background .15s}.personality-option:hover{border-color:var(--ceremony-accent,#a78bfa);background:color-mix(in srgb,var(--text-primary) 5%,transparent)}.ceremony-reveal{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:ceremonyFadeIn .5s ease-out}.ceremony-reveal h3{font-size:1.25rem;color:var(--ceremony-text,#eee);margin:0}@keyframes ceremonyFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.reveal-card{border:1px solid var(--ceremony-accent,#a78bfa);border-radius:12px;padding:1.25rem;background:color-mix(in srgb,var(--text-primary) 3%,transparent);max-width:360px;width:100%}.reveal-card .reveal-avatar{width:80px;height:80px;border-radius:50%;margin:0 auto .75rem;background:linear-gradient(135deg,var(--ceremony-bg,#1a1a2e),var(--ceremony-accent,#a78bfa));display:flex;align-items:center;justify-content:center;font-size:2rem;border:2px solid var(--ceremony-accent,#a78bfa);box-shadow:0 0 16px rgba(168,85,247,.2);overflow:hidden}.reveal-card .reveal-avatar img{width:100%;height:100%;object-fit:cover}.reveal-card .reveal-name{font-size:1.125rem;margin:0 0 .125rem;color:var(--ceremony-text,#eee)}.reveal-card .reveal-archetype{font-size:.8125rem;color:var(--ceremony-accent,#a78bfa);margin:0 0 .75rem}.reveal-stats{display:grid;grid-template-columns:1fr 1fr;gap:.375rem;font-size:.75rem}.stat-row{display:flex;justify-content:space-between;padding:.1875rem .5rem;background:color-mix(in srgb,var(--text-primary) 4%,transparent);border-radius:4px;color:var(--text-secondary,#aaa)}.stat-row span:last-child{color:var(--ceremony-text,#eee);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ceremony-actions{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.ceremony-actions button{padding:.5rem 1.25rem;border-radius:8px;font-size:.8125rem;cursor:pointer;border:1px solid var(--border-primary,#333);background:color-mix(in srgb,var(--text-primary) 4%,transparent);color:var(--text-primary,#eee);transition:background .15s,border-color .15s}.ceremony-actions button:hover{background:hsla(0,0%,100%,.07);border-color:var(--ceremony-accent,#a78bfa)}.ceremony-actions button:disabled{opacity:.4;cursor:default}.ceremony-actions button.primary{background:var(--ceremony-accent,#a78bfa);border-color:var(--ceremony-accent,#a78bfa);color:#fff}.ceremony-actions button.primary:hover{opacity:.9}.surprise-btn{font-size:.75rem;color:var(--text-tertiary,#666);cursor:pointer;text-decoration:underline;background:none;border:none;padding:0}.surprise-btn:hover{color:var(--ceremony-accent,#a78bfa)}.ceremony-toggle{text-align:center;margin:.5rem 0}.ceremony-toggle button{padding:.375rem 1rem;border:1px dashed var(--border-primary,#333);border-radius:8px;background:rgba(0,0,0,0);color:var(--text-secondary,#888);cursor:pointer;font-size:.75rem}.ceremony-toggle button:hover{border-color:var(--ceremony-accent,#a78bfa);color:var(--ceremony-text,#eee)}