@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800&family=Sora:wght@300;400;500;600;700&display=swap";.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:2rem}.hero-bg{position:absolute;inset:0;z-index:0}.gradient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4}.orb-1{width:600px;height:600px;background:radial-gradient(circle,var(--accent-primary) 0%,transparent 70%);top:-200px;right:-100px;animation:float-orb 15s ease-in-out infinite}.orb-2{width:400px;height:400px;background:radial-gradient(circle,var(--accent-secondary) 0%,transparent 70%);bottom:-100px;left:-100px;animation:float-orb 12s ease-in-out infinite reverse}.orb-3{width:300px;height:300px;background:radial-gradient(circle,var(--color-gold) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);opacity:.2;animation:pulse-orb 8s ease-in-out infinite}@keyframes float-orb{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}@keyframes pulse-orb{0%,to{opacity:.2;transform:translate(-50%,-50%) scale(1)}50%{opacity:.35;transform:translate(-50%,-50%) scale(1.2)}}.grid-pattern{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:50px 50px}.hero-content{position:relative;z-index:1;max-width:800px;text-align:center;display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 4rem);justify-content:center;padding-bottom:80px}.hero-intro{display:flex;flex-direction:column;align-items:center}.profile-image-container{position:relative;margin-bottom:2rem}.profile-image{width:150px;height:150px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));padding:4px;display:flex;align-items:center;justify-content:center}.profile-placeholder{width:100%;height:100%;border-radius:50%;background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:3rem;font-weight:700;color:var(--accent-primary)}.profile-photo{width:100%;height:100%;border-radius:50%;background-image:url(/profile-ryan.JPG);background-size:200%;background-position:center 30%;background-repeat:no-repeat}.profile-ring{position:absolute;inset:-10px;border-radius:50%;border:2px solid var(--accent-primary);opacity:.3;animation:spin-slow 20s linear infinite}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero-name{font-family:var(--font-display);font-size:4rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.5rem;background:linear-gradient(135deg,var(--text-primary),var(--accent-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-title{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.title-text{font-size:1.5rem;font-weight:600;color:var(--text-secondary)}.title-divider{color:var(--accent-primary)}.title-years{font-size:1.25rem;color:var(--accent-primary);font-weight:500}.hero-summary{max-width:600px;font-size:1.1rem;line-height:1.7;color:var(--text-secondary);margin-bottom:2rem}.hero-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-bottom:2rem}.contact-item{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);text-decoration:none;font-size:.95rem;transition:color .2s}.contact-item:hover{color:var(--accent-primary)}.resume-download{background:linear-gradient(135deg,#00d9ff1a,#6c63ff1a);border:1px solid rgba(0,217,255,.3);padding:.5rem 1rem;border-radius:25px;color:var(--accent-primary);font-weight:500;transition:all .3s ease}.resume-download:hover{background:linear-gradient(135deg,#00d9ff33,#6c63ff33);border-color:var(--accent-primary);box-shadow:0 0 15px #00d9ff4d;transform:translateY(-2px)}.contact-item svg{color:var(--accent-primary)}.hero-education{margin-bottom:2rem;width:100%;max-width:540px}.education-card{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 2rem;background:linear-gradient(135deg,#002e5d66,#002e5d33);border:2px solid #002E5D;border-radius:16px;position:relative;overflow:hidden}.education-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#002e5d,#0062b8)}.education-mascot{position:absolute;right:-20px;top:50%;transform:translateY(-50%);width:180px;height:180px;opacity:.08;pointer-events:none;z-index:0}.education-mascot img{width:100%;height:100%;object-fit:contain;filter:brightness(2)}.education-medallion{display:flex;align-items:center;justify-content:center;width:80px;height:80px;flex-shrink:0;z-index:1;border-radius:50%;background:#fff;box-shadow:0 4px 20px #002e5d66;padding:4px}.education-medallion img{width:100%;height:100%;object-fit:contain;border-radius:50%}.education-details{display:flex;flex-direction:column;text-align:left;z-index:1}.education-degree{font-family:var(--font-display);font-weight:700;color:var(--text-primary);font-size:1.25rem;line-height:1.2}.education-field{font-weight:600;color:#5b9bd5;font-size:1.1rem;margin-top:.25rem}.education-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;align-items:center}.education-school{color:var(--text-secondary);font-size:.95rem;font-weight:500}.education-years{color:var(--text-muted);font-size:.9rem;padding:.25rem .75rem;background:#002e5d4d;border-radius:20px;border:1px solid rgba(0,46,93,.5)}.hero-languages{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem;margin-bottom:2rem}.hero-languages svg{color:var(--accent-secondary)}.scroll-indicator{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.85rem;padding-bottom:1.5rem;margin-top:3rem}.scroll-arrow{font-size:1.25rem;color:var(--accent-primary)}@media(max-width:768px){.hero-section{padding:4rem 1.5rem;min-height:auto}.hero-name{font-size:2.5rem}.hero-title{flex-direction:column;gap:.25rem}.title-divider{display:none}.hero-summary{font-size:1rem}.hero-contact{flex-direction:column;align-items:center;gap:.75rem}.scroll-indicator{position:static;margin-top:3rem;transform:none}.profile-image{width:120px;height:120px}.profile-placeholder{font-size:2.5rem}.profile-photo{background-size:220%;background-position:center 32%}.education-card{flex-direction:column;text-align:center;padding:1.25rem;gap:1rem}.education-details{text-align:center}.education-meta{justify-content:center}.education-degree{font-size:1.1rem}.education-field{font-size:1rem}.education-medallion{width:70px;height:70px}.education-mascot{width:140px;height:140px;right:-30px;opacity:.06}}.skills-section{padding:4rem 0}.skill-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem;margin-bottom:3rem}.filter-btn{padding:.5rem 1.25rem;border:1px solid var(--border-color);border-radius:24px;background:var(--bg-card);color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s ease}.filter-btn:hover{border-color:var(--filter-color);color:var(--filter-color)}.filter-btn.active{background:var(--filter-color);border-color:var(--filter-color);color:#fff}.bubbles-container{max-width:900px;margin:0 auto;padding:2rem}.bubbles-grid{position:relative;z-index:10;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}.skill-bubble{position:relative;z-index:10;border-radius:50%;background:linear-gradient(145deg,color-mix(in srgb,var(--bubble-color) 20%,var(--bg-card)),color-mix(in srgb,var(--bubble-color) 5%,var(--bg-card)));border:2px solid var(--bubble-color);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,box-shadow .2s;padding:.5rem}.skill-bubble:hover{box-shadow:0 0 20px color-mix(in srgb,var(--bubble-color) 40%,transparent)}.skill-bubble.highlighted,.skill-bubble.active{border-width:3px;box-shadow:0 0 30px color-mix(in srgb,var(--bubble-color) 50%,transparent)}.bubble-glow{position:absolute;inset:-4px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--bubble-color) 30%,transparent) 0%,transparent 70%);z-index:-1;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.1);opacity:1}}.skill-name{font-size:.8rem;font-weight:600;color:var(--text-primary);text-align:center;line-height:1.3;word-break:break-word}.clear-all-bubble{position:relative;z-index:10;width:60px;height:60px;border-radius:50%;background:linear-gradient(145deg,#8080804d,#64646426);border:2px solid rgba(150,150,150,.6);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--text-muted)}.clear-all-bubble:hover{border-color:#c8c8c8cc;background:linear-gradient(145deg,#96969666,#78787833);color:var(--text-primary);box-shadow:0 0 15px #9696964d}.skill-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-label{font-size:.8rem;color:var(--text-muted);text-transform:capitalize}.skill-connectors{display:flex;flex-direction:column;align-items:center;margin-top:2rem;overflow:hidden}.connector-lines{display:flex;justify-content:center;gap:2rem;height:80px;position:relative}.connector-line{width:3px;height:100%;position:relative;transform-origin:top center;background:linear-gradient(to bottom,var(--line-color),color-mix(in srgb,var(--line-color) 60%,transparent));border-radius:3px;box-shadow:0 0 8px var(--line-color),0 0 20px color-mix(in srgb,var(--line-color) 50%,transparent),0 0 40px color-mix(in srgb,var(--line-color) 30%,transparent);animation:line-pulse 2s ease-in-out infinite;animation-delay:var(--line-delay)}.connector-line:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:10px;height:10px;border-radius:50%;background:var(--line-color);box-shadow:0 0 10px var(--line-color),0 0 20px var(--line-color)}.connector-line:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background:var(--line-color);box-shadow:0 0 8px var(--line-color),0 0 15px var(--line-color);animation:dot-pulse 1.5s ease-in-out infinite;animation-delay:var(--line-delay)}@keyframes line-pulse{0%,to{opacity:.7;box-shadow:0 0 8px var(--line-color),0 0 20px color-mix(in srgb,var(--line-color) 50%,transparent),0 0 40px color-mix(in srgb,var(--line-color) 30%,transparent)}50%{opacity:1;box-shadow:0 0 12px var(--line-color),0 0 30px color-mix(in srgb,var(--line-color) 60%,transparent),0 0 60px color-mix(in srgb,var(--line-color) 40%,transparent)}}@keyframes dot-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.5)}}.connector-arrow{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:.5rem}.arrow-text{font-size:.85rem;color:var(--text-muted);font-weight:500;letter-spacing:.5px}.arrow-icon{font-size:1.5rem;color:var(--accent-primary);animation:bounce-arrow 1.5s ease-in-out infinite}@keyframes bounce-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media(max-width:768px){.skills-section{padding:2rem 0}.bubbles-container{padding:1rem}.bubbles-grid{gap:.75rem}.skill-filters{gap:.5rem}.filter-btn{padding:.4rem 1rem;font-size:.85rem}.connector-lines{gap:1rem;height:60px}.connector-line{width:2px}}.experience-section{padding:4rem 0}.section-header{text-align:center;margin-bottom:3rem}.section-header h2{font-family:var(--font-display);font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--text-primary),var(--accent-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-subtitle{color:var(--text-muted);font-size:1rem}.timeline-container{position:relative;max-width:800px;margin:0 auto;padding-left:2rem}.experience-card{display:flex;gap:1.5rem;margin-bottom:2rem;cursor:pointer;position:relative}.timeline-marker{display:flex;flex-direction:column;align-items:center;position:relative}.marker-dot{width:16px;height:16px;border-radius:50%;background:var(--accent-primary);border:3px solid var(--bg-primary);box-shadow:0 0 0 2px var(--accent-primary);z-index:2;flex-shrink:0}.marker-line{width:2px;flex:1;background:linear-gradient(180deg,var(--accent-primary),var(--border-color));margin-top:.5rem}.experience-card:last-child .marker-line{display:none}.experience-content{flex:1;background:var(--bg-card);border-radius:12px;padding:1.5rem;border:1px solid var(--border-color);transition:all .3s ease}.experience-card:hover .experience-content,.experience-card.active .experience-content{border-color:var(--accent-primary);box-shadow:0 4px 20px #0003;transform:translate(4px)}.experience-card.highlighted .experience-content{border-color:var(--color-gold);box-shadow:0 0 20px #ffd70033}.experience-card.highlighted .marker-dot{background:var(--color-gold);box-shadow:0 0 0 2px var(--color-gold),0 0 15px #ffd70080}.experience-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.experience-date{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--accent-primary);font-weight:500}.expand-icon{color:var(--text-muted)}.experience-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.experience-company{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.company-name{font-weight:500;color:var(--text-secondary)}.company-location{display:flex;align-items:center;gap:.25rem;font-size:.85rem;color:var(--text-muted)}.experience-description{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.experience-details{overflow:hidden;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.experience-highlights h4,.experience-skills h4{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.experience-highlights ul{list-style:none;padding:0;margin:0 0 1.5rem}.experience-highlights li{position:relative;padding-left:1.25rem;margin-bottom:.75rem;color:var(--text-secondary);font-size:.9rem;line-height:1.5}.experience-highlights li:before{content:"→";position:absolute;left:0;color:var(--accent-primary)}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{padding:.375rem .75rem;background:#6c63ff1a;color:var(--accent-primary);border-radius:20px;font-size:.8rem;font-weight:500;border:1px solid rgba(108,99,255,.2);transition:all .2s ease;cursor:pointer}.skill-tag:hover{background:#6c63ff33;border-color:#6c63ff66}.skill-tag-active{background:color-mix(in srgb,var(--skill-color) 25%,transparent);color:var(--skill-color);border-color:var(--skill-color);box-shadow:0 0 12px color-mix(in srgb,var(--skill-color) 40%,transparent);animation:skill-tag-pulse 1.5s ease-in-out infinite}@keyframes skill-tag-pulse{0%,to{box-shadow:0 0 8px color-mix(in srgb,var(--skill-color) 30%,transparent)}50%{box-shadow:0 0 16px color-mix(in srgb,var(--skill-color) 60%,transparent)}}@media(max-width:768px){.experience-section{padding:2rem 0}.section-header h2{font-size:2rem}.timeline-container{padding-left:1rem}.experience-card{gap:1rem}.experience-content{padding:1.25rem}.experience-title{font-size:1.1rem}}.references-section{padding:4rem 0;overflow:hidden}.references-section .section-header{text-align:center;margin-bottom:3rem}.references-section .section-header h2{font-family:var(--font-display);font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--text-primary),var(--accent-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.references-section .section-subtitle{color:var(--text-muted);font-size:1rem}.carousel-container{position:relative;max-width:1400px;margin:0 auto;padding:0 3rem}.scroll-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:48px;height:48px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 4px 12px #0000004d}.scroll-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);transform:translateY(-50%) scale(1.1)}.scroll-btn.hidden{opacity:0;pointer-events:none}.scroll-left{left:0}.scroll-right{right:0}.references-carousel{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding:1rem .5rem}.references-carousel::-webkit-scrollbar{display:none}.reference-card{flex:0 0 100%;width:100%;scroll-snap-align:start;background:linear-gradient(145deg,#1e1e28e6,#14141ef2);border:1px solid var(--border-color);border-radius:16px;padding:2rem;display:flex;flex-direction:column;gap:1.25rem;transition:all .3s ease;position:relative}.reference-card:hover{border-color:var(--accent-primary);box-shadow:0 8px 32px #0000004d,0 0 20px #6c63ff1a;transform:translateY(-4px)}.reference-header{display:flex;align-items:center;gap:1rem}.reference-photo{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--accent-primary)}.reference-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff}.reference-author{display:flex;flex-direction:column;gap:.25rem}.author-name{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.author-role{font-size:.9rem;color:var(--accent-primary);margin:0;font-weight:500}.author-affiliation{font-size:.85rem;color:var(--text-muted);margin:0;font-style:italic}.reference-content{position:relative;flex:1}.quote-mark{position:absolute;top:-10px;left:-5px;font-size:4rem;font-family:Georgia,serif;color:var(--accent-primary);opacity:.3;line-height:1;pointer-events:none}.reference-text{font-size:.95rem;line-height:1.7;color:var(--text-secondary);margin:0;padding-left:1.5rem;white-space:pre-line}.read-more-btn{background:none;border:none;color:var(--accent-primary);font-size:.85rem;cursor:pointer;padding:.5rem 0;margin-left:1.5rem;transition:color .2s ease}.read-more-btn:hover{color:var(--accent-secondary);text-decoration:underline}.reference-contact{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.contact-link{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.8rem;text-decoration:none;transition:color .2s ease}.contact-link:hover{color:var(--accent-primary)}.carousel-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1.5rem}.carousel-dot{width:8px;height:8px;border-radius:50%;background:var(--border-color);transition:all .2s ease}.carousel-dot.active{background:var(--accent-primary);transform:scale(1.2)}@media(max-width:768px){.references-section{padding:2rem 0}.carousel-container{padding:0 1rem}.scroll-btn{display:none}.reference-card{padding:1.5rem}.references-section .section-header h2{font-size:2rem}.reference-photo{width:56px;height:56px}}.skill-connector-svg{overflow:visible;will-change:contents}.connector-path{stroke-dasharray:10000;stroke-dashoffset:10000;animation:draw-path 1s ease-out forwards;will-change:stroke-dashoffset}.connector-path-exit{stroke-dasharray:10000;stroke-dashoffset:0;animation:undraw-path .8s ease-in forwards;will-change:stroke-dashoffset,opacity}@keyframes draw-path{to{stroke-dashoffset:0}}@keyframes undraw-path{0%{stroke-dashoffset:0;opacity:1}80%{opacity:.5}to{stroke-dashoffset:10000;opacity:0}}.connector-dot{opacity:0;will-change:transform}.chat-toggle{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 20px #0000004d;z-index:1000;transition:box-shadow .3s ease}.chat-toggle:hover{box-shadow:0 6px 30px #0006}.chat-toggle-content{position:relative;display:flex;align-items:center;justify-content:center}.chat-toggle .sparkle{position:absolute;top:-4px;right:-4px;color:var(--color-gold);animation:pulse-sparkle 2s ease-in-out infinite}@keyframes pulse-sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.chat-window{position:fixed;bottom:7rem;right:2rem;width:380px;height:500px;background:var(--bg-card);border-radius:16px;box-shadow:0 10px 40px #0006;display:flex;flex-direction:column;overflow:hidden;z-index:999;border:1px solid var(--border-color)}.chat-header{padding:1rem 1.25rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;display:flex;align-items:center;justify-content:space-between}.chat-header-info{display:flex;align-items:center;gap:.5rem;font-weight:600}.chat-close{background:none;border:none;color:#fff;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s}.chat-close:hover{opacity:1}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.message{display:flex;gap:.75rem;max-width:90%}.message.user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message.assistant .message-avatar{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}.message.user .message-avatar{background:var(--bg-secondary);color:var(--text-secondary)}.message-content{padding:.75rem 1rem;border-radius:12px;font-size:.9rem;line-height:1.5}.message.assistant .message-content{background:var(--bg-secondary);color:var(--text-primary);border-bottom-left-radius:4px}.message.user .message-content{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border-bottom-right-radius:4px}.message-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.75rem}.message-tags .tag{font-size:.7rem;padding:.2rem .5rem;background:#ffffff1a;border-radius:20px;color:var(--text-secondary)}.typing-indicator{display:flex;gap:4px;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:12px 12px 12px 4px}.typing-indicator span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:typing-bounce 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-input-form{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--border-color);background:var(--bg-primary)}.chat-input{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:24px;background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .2s}.chat-input:focus{border-color:var(--accent-primary)}.chat-input::placeholder{color:var(--text-muted)}.chat-send{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,transform .2s}.chat-send:disabled{opacity:.5;cursor:not-allowed}.chat-send:not(:disabled):hover{transform:scale(1.05)}@media(max-width:480px){.chat-window{width:calc(100vw - 2rem);right:1rem;bottom:5rem;height:60vh}.chat-toggle{right:1rem;bottom:1rem;width:50px;height:50px}}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-card: #1a1a24;--text-primary: #f0f0f5;--text-secondary: #a0a0b0;--text-muted: #606070;--accent-primary: #6C63FF;--accent-secondary: #00D9FF;--color-gold: #FFD700;--border-color: #2a2a3a;--font-display: "Playfair Display", "Georgia", serif;--font-body: "Sora", "Segoe UI", sans-serif;--transition-fast: .15s ease;--transition-normal: .3s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;position:relative}.main-content{max-width:1200px;margin:0 auto}.content-wrapper{padding:0 2rem}.footer{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:.9rem}.footer-hint{margin-top:.5rem;color:var(--text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}::selection{background:var(--accent-primary);color:#fff}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:768px){.content-wrapper{padding:0 1rem}.footer{padding:3rem 1rem}}
