.dock-outer{align-items:center;max-width:100%;margin:0 .5rem;display:flex}.dock-panel{-webkit-backdrop-filter:blur(12px);z-index:1000;background-color:#0a0a14d9;border:1px solid #ffffff14;border-radius:1rem;align-items:flex-end;gap:1rem;width:fit-content;padding:0 .5rem .5rem;display:flex;position:fixed;bottom:.5rem;left:50%;transform:translate(-50%)}.dock-item{cursor:pointer;background-color:#141428b3;border:1px solid #ffffff1a;border-radius:10px;outline:none;justify-content:center;align-items:center;transition:background-color .2s;display:inline-flex;position:relative;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.dock-item:hover{background-color:#282850cc}.dock-icon{justify-content:center;align-items:center;display:flex}.dock-label{white-space:pre;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background-color:#0a0a14e6;border:1px solid #ffffff1a;border-radius:.375rem;width:fit-content;padding:.125rem .5rem;font-size:.75rem;position:absolute;top:-1.5rem;left:50%;transform:translate(-50%)}.bubble-menu{pointer-events:none;z-index:99;justify-content:space-between;align-items:center;gap:16px;padding:0 2em;display:flex;top:2em;left:0;right:0}.bubble-menu.fixed{position:fixed}.bubble-menu.absolute{position:absolute}.bubble-menu .bubble{--bubble-size:48px;width:var(--bubble-size);height:var(--bubble-size);-webkit-backdrop-filter:blur(12px);pointer-events:auto;background:#0f0f23d9;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 4px 16px #0000004d}.bubble-menu .logo-bubble,.bubble-menu .toggle-bubble{will-change:transform}.bubble-menu .logo-bubble{width:auto;min-height:var(--bubble-size);height:var(--bubble-size);border-radius:calc(var(--bubble-size) / 2);gap:8px;padding:0 16px}.bubble-menu .toggle-bubble{cursor:pointer;width:var(--bubble-size);height:var(--bubble-size)}.bubble-menu .bubble-logo{object-fit:contain;max-width:100%;max-height:80%;display:block}.bubble-menu .logo-content{--logo-max-height:80%;--logo-max-width:100%;justify-content:center;align-items:center;width:auto;height:100%;display:inline-flex}.bubble-menu .logo-content>.bubble-logo,.bubble-menu .logo-content>img,.bubble-menu .logo-content>svg{max-height:var(--logo-max-height);max-width:var(--logo-max-width)}.bubble-menu .menu-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0;display:flex}.bubble-menu .menu-line{transform-origin:50%;background:#f0f0f5;border-radius:2px;width:26px;height:2px;margin:0 auto;transition:transform .3s,opacity .3s;display:block}.bubble-menu .menu-line+.menu-line{margin-top:6px}.bubble-menu .menu-btn.open .menu-line:first-child{transform:translateY(4px)rotate(45deg)}.bubble-menu .menu-btn.open .menu-line:last-child{transform:translateY(-4px)rotate(-45deg)}@media (width>=768px){.bubble-menu .bubble{--bubble-size:56px}.bubble-menu .logo-bubble{padding:0 16px}}.bubble-menu-items{pointer-events:none;z-index:98;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.bubble-menu-items.fixed{position:fixed}.bubble-menu-items.absolute{position:absolute}.bubble-menu-items .pill-list{pointer-events:inherit;flex-wrap:wrap;justify-content:stretch;gap:4px 0;width:100%;max-width:1600px;margin:0 auto;padding:0 24px;list-style:none;display:flex}.bubble-menu-items .pill-list .pill-spacer{pointer-events:none;width:100%;height:0}.bubble-menu-items .pill-list .pill-col{box-sizing:border-box;flex:0 0 33.3333%;justify-content:center;align-items:stretch;display:flex}.bubble-menu-items .pill-list .pill-col:nth-child(4):nth-last-child(2){margin-left:16.6667%}.bubble-menu-items .pill-list .pill-col:nth-child(4):last-child{margin-left:33.3333%}.bubble-menu-items .pill-link{--pill-bg:#fff;--pill-color:#111;--pill-border:#0000001f;--item-rot:0deg;--pill-min-h:160px;--hover-bg:#f3f4f6;--hover-color:#111;width:100%;min-height:var(--pill-min-h);background:var(--pill-bg);color:var(--pill-color);will-change:transform;box-sizing:border-box;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;height:10px;padding:clamp(1.5rem,3vw,8rem) 0;font-size:clamp(1.5rem,4vw,4rem);font-weight:400;line-height:0;text-decoration:none;transition:background .3s,color .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 14px #0000001a}@media (width>=900px){.bubble-menu-items .pill-link{transform:rotate(var(--item-rot))}.bubble-menu-items .pill-link:hover{transform:rotate(var(--item-rot)) scale(1.06);background:var(--hover-bg);color:var(--hover-color)}.bubble-menu-items .pill-link:active{transform:rotate(var(--item-rot)) scale(.94)}}.bubble-menu-items .pill-link .pill-label{will-change:transform, opacity;height:1.2em;line-height:1.2;display:inline-block}@media (width<=899px){.bubble-menu-items{align-items:flex-start;padding-top:120px}.bubble-menu-items .pill-list{row-gap:16px}.bubble-menu-items .pill-list .pill-col{flex:0 0 100%;overflow:visible;margin-left:0!important}.bubble-menu-items .pill-link{min-height:80px;padding:clamp(1rem,2vw,2rem) 0;font-size:clamp(1.2rem,3vw,4rem)}.bubble-menu-items .pill-link:hover{background:var(--hover-bg);color:var(--hover-color);transform:scale(1.06)}.bubble-menu-items .pill-link:active{transform:scale(.94)}}.aurora-container{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.aurora-container canvas{width:100%!important;height:100%!important}.bounceCardsContainer{justify-content:center;align-items:center;width:400px;height:400px;display:flex;position:relative}.bounce-card{aspect-ratio:1;border:5px solid #ffffff26;border-radius:25px;width:200px;position:absolute;overflow:hidden;box-shadow:0 4px 10px #0003}.bounce-card .bounce-image{object-fit:cover;width:100%;height:100%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a14;--bg-secondary:#111127;--bg-card:#14143299;--bg-card-hover:#1e1e46cc;--text-primary:#f0f0f5;--text-secondary:#a0a0c0;--text-muted:#6b6b8f;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#7c3aed26;--border:#ffffff14;--border-hover:#ffffff26;--gradient-1:linear-gradient(135deg, #7c3aed 0%, #3b82f6 100%);--gradient-2:linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%);--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.7;overflow-x:hidden}#root{min-height:100vh}.app-wrapper{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1 0 auto}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto;display:block}ul{list-style:none}.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}h1,h2,h3,h4{color:var(--text-primary);font-family:Poppins,Inter,sans-serif;font-weight:700;line-height:1.2}h1{background:var(--gradient-1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.5rem,6vw,4rem)}h2{color:var(--text-secondary);font-size:clamp(1.25rem,3vw,1.6rem);font-weight:500}.badge{letter-spacing:.04em;text-transform:uppercase;background:var(--accent-light);color:var(--accent);border:1px solid #7c3aed40;border-radius:999px;margin-bottom:.75rem;padding:.3rem .9rem;font-size:.8rem;font-weight:600;display:inline-block}.button{border-radius:var(--radius-md);background:var(--gradient-1);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;padding:.7rem 1.8rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,opacity .2s;display:inline-flex}.button:hover{color:#fff;opacity:.95;transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed66}.button:active{transform:translateY(0)}.hero{align-items:center;min-height:100vh;padding:6rem 0 4rem;display:flex;position:relative;overflow:hidden}.aurora-wrapper{z-index:0;opacity:.7;position:absolute;inset:0}.hero-content{z-index:1;flex-wrap:wrap;align-items:center;gap:3rem;display:flex;position:relative}.intro{flex:480px}.intro p{color:var(--text-secondary);max-width:560px;margin-top:1.25rem;font-size:1.05rem}.cta-group{gap:1rem;margin-top:2rem;display:flex}.avatar{flex:0 280px;justify-content:center;display:flex}.avatar img{object-fit:cover;border:4px solid #7c3aed4d;border-radius:50%;width:260px;height:260px;box-shadow:0 0 40px #7c3aed33}.section{padding:5rem 0;position:relative}.section:nth-child(2n){background-color:var(--bg-secondary)}.section-header{text-align:center;margin-bottom:3rem}.section-title{background:var(--gradient-1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:clamp(1.8rem,4vw,2.5rem)}.section-subtitle{color:var(--text-secondary);max-width:680px;margin:0 auto;font-size:1.05rem;line-height:1.7}.skills-list{gap:.75rem;max-width:720px;margin:0 auto;display:grid}.skills-list li{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);padding:1rem 1.25rem;font-size:.95rem;transition:border-color .2s,background .2s}.skills-list li:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;transition:transform .3s,border-color .3s,box-shadow .3s}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-4px)}.card h3{color:var(--text-primary);margin-bottom:.75rem;font-size:1.15rem}.card p{color:var(--text-secondary);font-size:.95rem;line-height:1.65}.card p+p{margin-top:.75rem}.bounce-cards-wrapper{justify-content:center;margin-top:3rem;padding:2rem 0;display:flex}.social-card-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;display:grid}.social-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;padding:2rem;transition:transform .3s,border-color .3s,box-shadow .3s}.social-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-4px)}.social-icon{margin-bottom:1rem;font-size:2.5rem;display:block}.social-card h3{margin-bottom:.75rem;font-size:1.2rem}.social-card p{color:var(--text-secondary);margin-bottom:1.25rem;font-size:.9rem;line-height:1.6}.callout{background:var(--accent-light);border-radius:var(--radius-md);color:var(--accent);border:1px solid #7c3aed40;margin-bottom:1.5rem;padding:1rem 1.25rem;font-size:.9rem}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:.85rem 1rem}.table th{background:var(--bg-card);color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:600}.table td{color:var(--text-secondary)}.table tbody tr:hover{background:var(--bg-card-hover)}.table a{word-break:break-all}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);max-width:600px;margin:0 auto;padding:2.5rem}.contact-intro{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1.05rem}.contact-email{flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.email-link{color:var(--accent);border-radius:var(--radius-md);background:var(--accent-light);border:1px solid #7c3aed4d;padding:.6rem 1.2rem;font-size:1.3rem;font-weight:600;transition:background .2s}.email-link:hover{background:#7c3aed40}.copy-button{padding:.5rem 1.2rem;font-size:.85rem}.copy-feedback{color:#10b981;font-size:.85rem;animation:.3s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.contact-tip{color:var(--text-muted);font-size:.9rem;line-height:1.6}.spec-grid{grid-template-columns:repeat(auto-fit,minmax(460px,1fr));gap:2rem;display:grid}.spec-group h3{color:var(--text-primary);border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:1.15rem}.spec-list{gap:1rem;display:grid}.spec-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-start;gap:1.25rem;padding:1.25rem;transition:border-color .2s,transform .2s;display:flex}.spec-card:hover{border-color:var(--border-hover);transform:translateY(-2px)}.spec-card figure{border-radius:var(--radius-sm);background:var(--bg-secondary);flex:0 0 64px;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.spec-card figure img{object-fit:contain;width:100%;height:100%;padding:6px}.spec-card strong{color:var(--text-primary);margin-bottom:.25rem;font-size:1rem;display:block}.spec-card p{color:var(--text-secondary);margin-bottom:.35rem;font-size:.9rem;line-height:1.5}.spec-card a{font-size:.85rem;font-weight:500}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);background:var(--bg-primary);flex-shrink:0;margin-top:auto;padding:2rem 0 6rem;font-size:.85rem}.image-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:2rem;display:grid}.image-grid img{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border);width:100%;height:200px}@media (width<=768px){.hero{padding:4rem 0 3rem}.hero-content{text-align:center;flex-direction:column}.intro{flex:auto}.intro p{margin-left:auto;margin-right:auto}.cta-group{justify-content:center}.avatar{order:-1}.avatar img{width:180px;height:180px}.card-grid,.social-card-grid,.spec-grid{grid-template-columns:1fr}.section{padding:3rem 0}.bounce-cards-wrapper{overflow-x:auto}}@media (width<=480px){.container{padding:0 1rem}.contact-card{padding:1.5rem}.email-link{font-size:1rem}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}::selection{color:#fff;background:#7c3aed4d}#iubenda-cs-banner{background:#0f0f23f2!important;border-top:1px solid #ffffff1a!important}#iubenda-cs-banner .iubenda-cs-content{color:#f0f0f5!important}#iubenda-cs-banner .iubenda-cs-opt-group button{border-radius:8px!important}#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-btn-primary{color:#fff!important;background:linear-gradient(135deg,#7c3aed 0%,#3b82f6 100%)!important}.iub-btn-cp{color:#f0f0f5!important;-webkit-backdrop-filter:blur(12px)!important;background:#0f0f23d9!important;border:1px solid #ffffff1a!important}.clock-section{justify-content:center;align-items:center;min-height:80vh;padding:2rem;display:flex}.clock-box{text-align:center;border:3px solid var(--accent);border-radius:var(--radius-lg);background:var(--bg-card);color:var(--text-primary);padding:1.5rem 2.5rem;font-family:Poppins,Inter,sans-serif;font-size:clamp(2rem,8vw,5rem);font-weight:700;animation:2s ease-in-out infinite clockGlow;box-shadow:0 0 30px #7c3aed4d}.clock-time{background:var(--gradient-1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@keyframes clockGlow{0%,to{box-shadow:0 0 20px #7c3aed4d}50%{box-shadow:0 0 40px #7c3aed80}}.turni-layout{grid-template-columns:1fr 1fr;align-items:start;gap:2rem;display:grid}.turni-col{flex-direction:column;display:flex}.turni-mt{margin-top:1.5rem}.turni-spacer{height:1.25rem}.turni-file-input{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);width:100%;margin-top:.5rem;padding:.5rem;font-size:.9rem;display:block}.turni-file-input::file-selector-button{background:var(--gradient-1);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-right:.75rem;padding:.4rem .8rem;font-size:.85rem}.turni-hint{color:var(--text-muted);margin-top:.4rem;font-size:.8rem;display:block}.turni-settings{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-top:.5rem;display:flex}.turni-field{flex-direction:column;gap:.3rem;display:flex}.turni-field-label{color:var(--text-muted);font-size:.8rem;font-weight:500}.turni-input{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:.45rem .6rem;font-size:.9rem}.turni-input--small{width:70px}.turni-input--medium{width:120px}.turni-input--tiny{width:55px}.turni-checkbox-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.turni-per-turn-details{margin-top:1rem}.turni-per-turn-list{flex-wrap:wrap;gap:.5rem;margin-top:.4rem;display:flex}.turni-per-turn-item{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.turni-btn-secondary{background:var(--bg-card);border:1px solid var(--border)}.turni-btn-secondary:hover{background:var(--bg-card-hover);box-shadow:none}.turni-note{color:var(--text-muted);margin-bottom:1rem;font-size:.85rem}.turni-student-list{flex-wrap:wrap;gap:.4rem;display:flex}.turni-student-chip{background:var(--accent-light);color:var(--accent);cursor:pointer;border:1px solid #7c3aed40;border-radius:999px;align-items:center;padding:.3rem .7rem;font-family:inherit;font-size:.85rem;transition:background .2s,transform .15s;display:inline-flex}.turni-student-chip:hover{background:#7c3aed40;transform:scale(1.05)}.turni-summary{color:var(--text-muted);text-align:center;margin-top:1rem;font-size:.85rem}.turni-actions-row{flex-wrap:wrap;gap:.75rem;display:flex}.turni-remaining-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.turni-select{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:.4rem .6rem;font-size:.85rem}.turni-remaining-list{flex-direction:column;gap:.4rem;max-height:300px;display:flex;overflow-y:auto}.turni-remaining-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.9rem;transition:background .15s;display:flex}.turni-remaining-item:hover{background:var(--bg-card-hover)}@media (width<=768px){.turni-layout{grid-template-columns:1fr}.clock-box{padding:1rem 1.5rem;font-size:clamp(1.5rem,6vw,3rem)}}
