:root,[data-theme=dark]{--color-bg: #000000;--color-bg-elevated: rgba(0, 0, 0, .8);--color-surface: rgba(15, 23, 42, .4);--color-surface-solid: #0b1120;--color-surface-strong: rgba(15, 23, 42, .6);--color-modal-bg: #090f1c;--color-loader-bg: #050505;--color-border: rgba(255, 255, 255, .05);--color-border-strong: #1e293b;--color-border-soft: #334155;--color-text: #ffffff;--color-text-soft: #cbd5e1;--color-text-muted: #94a3b8;--color-text-faint: #64748b;--color-navbar-border: rgba(88, 28, 135, .5);--color-tag-bg: #1e293b;--color-tag-border: #334155;--color-tag-text: #f8fafc;--color-accent: #22d3ee;--color-accent-2: #a855f7;color-scheme:dark}[data-theme=light]{--color-bg: #DFEBEB;--color-bg-elevated: rgba(255, 255, 255, .75);--color-surface: rgba(255, 255, 255, .65);--color-surface-solid: #ffffff;--color-surface-strong: rgba(255, 255, 255, x0.8);--color-modal-bg: #ffffff;--color-loader-bg: #f4f6fb;--color-border: rgba(15, 23, 42, .08);--color-border-strong: #e2e8f0;--color-border-soft: #cbd5e1;--color-text: #0f172a;--color-text-soft: #334155;--color-text-muted: #64748b;--color-text-faint: #94a3b8;--color-navbar-border: rgba(168, 85, 247, .2);--color-tag-bg: #eef2f7;--color-tag-border: #dbe2ec;--color-tag-text: #1e293b;--color-accent: #0891b2;--color-accent-2: #9333ea;color-scheme:light}[data-theme=basketball]{--color-bg: #0c0803;--color-bg-elevated: rgba(20, 10, 2, .85);--color-surface: rgba(35, 18, 4, .55);--color-surface-solid: #150a02;--color-surface-strong: rgba(35, 18, 4, .75);--color-modal-bg: #0f0602;--color-loader-bg: #0c0803;--color-border: rgba(249, 115, 22, .1);--color-border-strong: rgba(249, 115, 22, .22);--color-border-soft: rgba(249, 115, 22, .15);--color-text: #fff7ed;--color-text-soft: #fcd9a8;--color-text-muted: #c2620c;--color-text-faint: #7c3b08;--color-navbar-border: rgba(249, 115, 22, .35);--color-tag-bg: rgba(249, 115, 22, .1);--color-tag-border: rgba(249, 115, 22, .28);--color-tag-text: #fde8c9;--color-accent: #fb923c;--color-accent-2: #f59e0b;color-scheme:dark}[data-theme=basketball] .navbar-logo,[data-theme=basketball] .profile-name{background-image:linear-gradient(to right,#f97316,#f59e0b)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important}[data-theme=basketball] .section-title:after{background-image:linear-gradient(to right,#f97316,#f59e0b)!important}[data-theme=basketball] .text-glow{background-image:linear-gradient(to right,#fb923c,#f59e0b,#fbbf24)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;filter:drop-shadow(0 0 18px rgba(249,115,22,.55))}[data-theme=basketball] .btn-primary{border-color:#f97316!important;color:#fb923c!important}[data-theme=basketball] .btn-primary:hover{background-color:#f97316!important;color:#0c0803!important;box-shadow:0 0 22px #f9731673!important}[data-theme=basketball] .btn-secondary{color:#fb923c!important;border-color:#f973164d!important}[data-theme=basketball] .btn-secondary:hover{border-color:#f97316!important;box-shadow:0 0 14px #f9731640!important}[data-theme=basketball] .text-cyan,[data-theme=basketball] [style*="22d3ee"],[data-theme=basketball] [style*="06b6d4"]{color:#fb923c!important}[data-theme=basketball] .navbar-links a:after{background:linear-gradient(90deg,#f97316,#f59e0b)!important}[data-theme=basketball] .timeline-dot{background-color:#f97316!important;border-color:#f97316!important;box-shadow:0 0 10px #f9731699!important}[data-theme=basketball] .timeline-dot-purple{background-color:#f59e0b!important;border-color:#f59e0b!important;box-shadow:0 0 10px #f59e0b99!important}[data-theme=basketball] .skill-tag:hover{border-color:#f9731680!important;color:#fb923c!important}[data-theme=basketball] .status-box-link{color:#fb923c!important}[data-theme=basketball] .cv-btn{background:#f973161a!important;border-color:#f9731666!important;color:#fb923c!important}[data-theme=basketball] .cv-btn:hover{background:#f9731633!important;box-shadow:0 4px 14px #f9731640!important}[data-theme=basketball] .nav-marker{background:linear-gradient(90deg,#f97316,#f59e0b)!important;box-shadow:0 0 10px #f97316b3!important}[data-theme=basketball] .theme-toggle:hover{border-color:#f9731680!important;box-shadow:0 0 12px #f973164d!important}[data-theme=basketball] .profile-photo-container{border-color:#f973168c!important;box-shadow:0 0 18px #f973164d!important}[data-theme=basketball] .profile-role{color:#fb923c!important}[data-theme=basketball] .status-box{border-color:#f973164d!important}[data-theme=basketball] .status-box-title{color:#fb923c!important}[data-theme=basketball] .bento-card:before{background:radial-gradient(600px circle at var(--mouse-x, 0) var(--mouse-y, 0),rgba(249,115,22,.12),transparent 40%)!important}[data-theme=basketball] .contact-card:hover{border-color:#f9731680!important}[data-theme=basketball] .text-cyan{color:#fb923c!important}[data-theme=basketball] .text-purple{color:#f59e0b!important}[data-theme=basketball] .text-blue{color:#fbbf24!important}[data-theme=basketball] .text-pink{color:#ea580c!important}[data-theme=basketball] .skill-tag.hover-cyan:hover,[data-theme=basketball] .skill-tag.hover-purple:hover,[data-theme=basketball] .skill-tag.hover-blue:hover,[data-theme=basketball] .skill-tag.hover-pink:hover{background-color:#f9731626!important;color:#fb923c!important;border-color:#f9731673!important}[data-theme=basketball] .btn-magic.active{background-image:linear-gradient(to right,#f97316,#f59e0b)!important;box-shadow:0 0 15px #f9731680!important}[data-theme=basketball] .title-magic{background-image:linear-gradient(to right,#f97316,#f59e0b)!important}[data-theme=basketball] .border-highlight{border-left-color:#f97316!important}[data-theme=basketball] .stat-card-purple,[data-theme=basketball] .stat-card-cyan,[data-theme=basketball] .stat-card{background:#f9731614!important;border-color:#f973164d!important}[data-theme=basketball] .stat-card-purple:hover,[data-theme=basketball] .stat-card-cyan:hover,[data-theme=basketball] .stat-card:hover{background:#f9731624!important}[data-theme=basketball] .stat-tooltip-purple,[data-theme=basketball] .stat-tooltip-cyan{border-color:#f9731666!important}[data-theme=basketball] *:not(input):not(textarea):not(select){cursor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><text y='28' font-size='20'>🏀</text></svg>") 12 12,auto!important}@keyframes bbFloat1{0%,to{transform:translateY(0)}30%{transform:translateY(-22px)}65%{transform:translateY(-8px)}}@keyframes bbFloat2{0%,to{transform:translateY(0)}25%{transform:translateY(-28px)}55%{transform:translateY(10px)}80%{transform:translateY(-16px)}}@keyframes bbFloat3{0%,to{transform:translateY(0)}20%{transform:translateY(-18px)}45%{transform:translateY(-34px)}65%{transform:translateY(-12px)}85%{transform:translateY(7px)}}.bball-swish{position:fixed;top:22%;transform:translate(-50%);z-index:8995;pointer-events:none;color:#fbbf24;font-size:2.2rem;font-weight:900;font-style:italic;letter-spacing:.12em;text-shadow:0 0 20px rgba(251,191,36,.95),0 0 50px rgba(249,115,22,.65),0 2px 6px rgba(0,0,0,.6);animation:swishPop 2.3s ease forwards;white-space:nowrap}@keyframes swishPop{0%{opacity:0;transform:translate(-50%) translateY(30px) scale(.55) rotate(-6deg)}18%{opacity:1;transform:translate(-50%) translateY(-4px) scale(1.22) rotate(2deg)}35%{transform:translate(-50%) translateY(0) scale(1) rotate(0)}70%{opacity:1;transform:translate(-50%) translateY(-14px) scale(1) rotate(-1deg)}to{opacity:0;transform:translate(-50%) translateY(-40px) scale(.88) rotate(-4deg)}}.bball-widget-stack{position:fixed;bottom:1.5rem;right:1.5rem;z-index:8900;display:flex;flex-direction:column;gap:.5rem;align-items:stretch;width:276px}.bball-sb{width:100%;background:#050201f0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(249,115,22,.38);border-radius:1rem;overflow:hidden;box-shadow:0 0 0 1px #f9731612,0 22px 44px -8px #000000bf,0 0 60px -10px #f9731638;animation:sbSlideIn .55s cubic-bezier(.34,1.56,.64,1) both}@keyframes sbSlideIn{0%{opacity:0;transform:translateY(24px) scale(.93)}to{opacity:1;transform:translateY(0) scale(1)}}.bball-sb-header{display:flex;align-items:center;gap:.5rem;padding:.45rem .8rem;background:#f9731617;border-bottom:1px solid rgba(249,115,22,.16);font-family:Courier New,monospace;font-size:.72rem;letter-spacing:.1em}.bball-sb-live{color:#ef4444;font-weight:700;animation:livePulse 1.5s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.35}}.bball-sb-quarter{color:#f59e0b;font-weight:700;flex:1;text-align:center}.bball-sb-gametime{color:#fcd9a8;font-weight:700;font-variant-numeric:tabular-nums}.bball-sb-close{background:none;border:none;color:#7c3b08;cursor:pointer;font-size:1.1rem;padding:0 .2rem;line-height:1;transition:color .2s ease}.bball-sb-close:hover{color:#fb923c}.bball-sb-body{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem .9rem}.bball-sb-team{display:flex;flex-direction:column;align-items:center;gap:.2rem;flex:1}.bball-sb-name{font-family:Courier New,monospace;font-size:.68rem;letter-spacing:.14em;font-weight:700;text-transform:uppercase;color:#c2620c}.bball-sb-score{font-family:Courier New,monospace;font-size:2.5rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.bball-sb-score--home{color:#f97316;text-shadow:0 0 20px rgba(249,115,22,.6)}.bball-sb-score--away{color:#4a3020}.bball-sb-score--scoring{color:#fb923c!important;text-shadow:0 0 20px rgba(249,115,22,.6)!important}.bball-sb-flash{animation:scoreFlash .35s ease}@keyframes scoreFlash{0%{transform:scale(1)}45%{transform:scale(1.3);filter:brightness(1.5)}to{transform:scale(1);filter:brightness(1)}}.bball-sb-center{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:0 .4rem}.bball-sb-ball-icon{font-size:1.5rem}.bball-sb-shot{font-family:Courier New,monospace;font-size:1.05rem;font-weight:700;color:#f59e0b;font-variant-numeric:tabular-nums;transition:color .3s ease;min-width:2ch;text-align:center}.bball-sb-shot--urgent{color:#ef4444!important;animation:shotUrgent .45s ease-in-out infinite}@keyframes shotUrgent{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.15)}}.bball-sb-mini{background:#050201eb;border:1px solid rgba(249,115,22,.38);border-radius:999px;color:#fb923c;font-family:Courier New,monospace;font-size:.88rem;font-weight:700;padding:.5rem 1.1rem;cursor:pointer;letter-spacing:.06em;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .2s,box-shadow .2s;box-shadow:0 4px 20px #00000073}.bball-sb-mini:hover{border-color:#f97316a6;box-shadow:0 4px 20px #f9731640}@media(max-width:640px){.bball-widget-stack{bottom:.5rem;right:.5rem;transform:scale(.68);transform-origin:bottom right}}.bball-word-trigger{background:none;border:none;padding:0;margin:0;font:inherit;color:#f8b883;font-weight:700;cursor:pointer;display:inline-block;transition:color .15s ease,text-shadow .15s ease}.bball-word-trigger:hover{color:#f97316;text-shadow:0 0 14px rgba(249,115,22,.55);animation:bballWordBounce 1.55s cubic-bezier(.36,.07,.19,.97) both}@keyframes bballWordBounce{0%{transform:translateY(0)}22%{transform:translateY(-8px)}44%{transform:translateY(0)}63%{transform:translateY(-4px)}80%{transform:translateY(0)}92%{transform:translateY(-2px)}to{transform:translateY(0)}}[data-theme=basketball] .bball-word-trigger{font-weight:800;text-shadow:0 0 16px rgba(249,115,22,.6)}[data-theme=basketball] .bball-word-trigger:hover{text-shadow:0 0 24px rgba(249,115,22,.9)}.bball-minigame-btn{background:#050201f0;border:1px solid rgba(249,115,22,.38);border-radius:.75rem;color:#fb923c;font-family:Courier New,monospace;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-align:center;padding:.6rem 1rem;cursor:pointer;width:100%;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .2s,box-shadow .2s;box-shadow:0 4px 20px #00000073;animation:sbSlideIn .55s cubic-bezier(.34,1.56,.64,1) both}.bball-minigame-btn:not(.bball-minigame-btn--playing):hover{border-color:#f97316a6;box-shadow:0 4px 20px #f9731640}.bball-minigame-btn--playing{cursor:default;color:#fcd9a8;font-size:.9rem;letter-spacing:.1em}.bball-leaderboard{position:relative}.bball-leaderboard-btn{background:#050201f0;border:1px solid rgba(249,115,22,.38);border-radius:.75rem;color:#fb923c;font-family:Courier New,monospace;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-align:center;padding:.6rem 1rem;cursor:pointer;width:100%;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .2s,box-shadow .2s;box-shadow:0 4px 20px #00000073;animation:sbSlideIn .55s cubic-bezier(.34,1.56,.64,1) both}.bball-leaderboard-btn:hover{border-color:#f97316a6;box-shadow:0 4px 20px #f9731640}.bball-leaderboard-dropdown{position:absolute;bottom:calc(100% + .5rem);right:0;width:100%;background:#050201f7;border:1px solid rgba(249,115,22,.38);border-radius:.75rem;padding:.85rem 1rem;box-shadow:0 8px 30px #0000008c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:overlayIn .18s ease both;z-index:1}.bball-leaderboard-title{margin:0 0 .6rem;color:#fb923c;font-family:Courier New,monospace;font-size:.85rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-align:center}.bball-leaderboard-status{margin:0;color:#fcd9a8;font-size:.78rem;text-align:center;opacity:.8;padding:.4rem 0}.bball-leaderboard-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;max-height:5rem;overflow-y:auto}.bball-leaderboard-item{display:flex;align-items:center;gap:.6rem;font-family:Courier New,monospace;font-size:.8rem;color:#fcd9a8;padding:.2rem .3rem}.bball-leaderboard-rank{width:1.4rem;flex-shrink:0;color:#fb923c;font-weight:800;text-align:right}.bball-leaderboard-pseudo{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bball-leaderboard-score{flex-shrink:0;font-weight:800;color:#fff}.bball-hoop-target{background:none;border:none;padding:0;cursor:crosshair;filter:drop-shadow(0 4px 14px rgba(249,115,22,.65));animation:hoopAppear .25s cubic-bezier(.34,1.56,.64,1) both;transition:filter .1s ease,transform .1s ease}.bball-hoop-target:hover{filter:drop-shadow(0 4px 24px rgba(249,115,22,.95));transform:translate(-50%,-50%) scale(1.08)!important}.bball-hoop-target:active{transform:translate(-50%,-50%) scale(.9)!important}@keyframes hoopAppear{0%{opacity:0;transform:translate(-50%,-60%) scale(.5) rotate(-8deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}.bball-modal-overlay{position:fixed;inset:0;background:#000000c7;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:9500;display:flex;align-items:center;justify-content:center;animation:overlayIn .2s ease both}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.bball-modal{background:#080300f7;border:1px solid rgba(249,115,22,.45);border-radius:1.5rem;padding:2.5rem 2.25rem;max-width:460px;width:90%;text-align:center;box-shadow:0 0 80px -10px #f973164d,0 30px 60px #000000b3;animation:modalPop .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes modalPop{0%{opacity:0;transform:scale(.82) translateY(24px)}to{opacity:1;transform:scale(1) translateY(0)}}.bball-modal-emoji{font-size:3.5rem;line-height:1;margin-bottom:1rem}.bball-modal-title{color:#fb923c;font-family:Courier New,monospace;font-size:1.3rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:0 0 1.25rem}.bball-modal-rules{color:#fcd9a8;font-size:.93rem;line-height:1.75;margin-bottom:2rem;opacity:.9}.bball-modal-start{background:linear-gradient(135deg,#16a34a,#15803d);border:none;border-radius:.75rem;color:#fff;font-family:Courier New,monospace;font-size:1.05rem;font-weight:800;letter-spacing:.14em;padding:.85rem 3rem;cursor:pointer;text-transform:uppercase;box-shadow:0 4px 20px #22c55e66;transition:transform .15s ease,box-shadow .15s ease}.bball-modal-start:hover{transform:translateY(-2px);box-shadow:0 8px 28px #22c55e8c}.bball-modal-start:active{transform:translateY(0)}.bball-modal-score{font-family:Courier New,monospace;font-size:4rem;color:#fb923c;font-weight:800;line-height:1;text-shadow:0 0 32px rgba(249,115,22,.65);margin:.75rem 0 .25rem}.bball-modal-score-label{color:#fcd9a8;font-size:.9rem;opacity:.8;margin-bottom:2rem}.bball-modal-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.bball-modal-close-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.18);border-radius:.75rem;color:#ffffffa6;font-family:Courier New,monospace;font-size:.95rem;font-weight:600;padding:.8rem 2rem;cursor:pointer;transition:background .2s,color .2s}.bball-modal-close-btn:hover{background:#ffffff21;color:#fff}.bball-modal-save-form{display:flex;flex-direction:column;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:1rem;border:1px dashed rgba(249,115,22,.4);border-radius:.85rem;background:#f973160f}.bball-modal-highscore-label{margin:0;color:#fb923c;font-weight:800;font-size:.95rem;letter-spacing:.04em}.bball-modal-save-input{width:100%;max-width:220px;background:#0006;border:1px solid rgba(249,115,22,.4);border-radius:.6rem;color:#fff;font-family:Courier New,monospace;font-size:.95rem;text-align:center;padding:.55rem .75rem}.bball-modal-save-input:focus{outline:none;border-color:#f97316cc}.bball-modal-save-btn{background:linear-gradient(135deg,#fb923c,#f97316);border:none;border-radius:.6rem;color:#1a0a00;font-family:Courier New,monospace;font-size:.9rem;font-weight:800;letter-spacing:.08em;padding:.6rem 1.5rem;cursor:pointer;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.bball-modal-save-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 22px #f9731666}.bball-modal-save-btn:disabled{opacity:.5;cursor:default}.bball-modal-saved{color:#4ade80;font-weight:700;font-size:.9rem;margin:0 0 1.5rem}.bball-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:9000;background:#0f0602eb;border:1px solid rgba(249,115,22,.5);color:#fff7ed;padding:.75rem 1.75rem;border-radius:999px;font-weight:600;font-size:.95rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 30px -4px #f9731659;animation:toastIn .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(12px) scale(.93)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@media(max-width:640px){.bball-toast{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 4.25rem);max-width:88vw;width:max-content;padding:.45rem .9rem;font-size:.68rem;line-height:1.4;font-weight:500;border-radius:.85rem;text-align:center;white-space:normal}body.mobile-menu-open .bball-toast,body.mobile-menu-open .bball-widget-stack{display:none}}*,*:before,*:after{box-sizing:border-box}html,body{max-width:100vw;overflow-x:hidden;width:100%}body{position:relative;background-color:var(--color-bg);color:var(--color-text);transition:background-color .5s ease,color .5s ease;font-family:system-ui,-apple-system,sans-serif;margin:0;padding:0}.app-container{min-height:100vh}.main-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:100vh;width:100%}.title-classic{font-size:3rem;font-weight:700}.title-magic{font-size:3.75rem;font-weight:900;color:transparent;background-image:linear-gradient(to right,#a855f7,#06b6d4);background-clip:text;-webkit-background-clip:text;animation:pulseEffect 2s cubic-bezier(.4,0,.6,1) infinite}.navbar{position:fixed;top:0;width:100%;background-color:var(--color-bg-elevated);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--color-navbar-border);z-index:50;transition:background-color .5s ease,border-color .5s ease}.navbar-container{max-width:72rem;margin:0 auto;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;position:relative}.navbar-right{display:flex;align-items:center;gap:1.5rem;margin-left:auto}.language-switcher{display:flex;align-items:center;gap:.4rem;z-index:100}.language-switcher button{background:transparent;border:none;color:inherit;font-size:.95rem;cursor:pointer;transition:color .2s ease,font-weight .2s ease;padding:.25rem .35rem}.language-switcher button.active{font-weight:800;color:var(--color-text)}.language-switcher button:hover{color:var(--color-text)}.language-divider{color:var(--color-text-muted)}.theme-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--color-border-strong);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;flex-shrink:0}.theme-toggle:hover{border-color:#22d3ee80;box-shadow:0 0 12px #22d3ee40;transform:translateY(-2px)}.theme-toggle:active{transform:translateY(0) scale(.94)}.theme-toggle svg{width:1.15rem;height:1.15rem;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .3s ease}.theme-toggle .icon-sun{position:absolute;opacity:0;transform:rotate(-90deg) scale(.4)}.theme-toggle .icon-moon{position:absolute;opacity:1;transform:rotate(0) scale(1)}[data-theme=light] .theme-toggle .icon-sun{opacity:1;transform:rotate(0) scale(1)}[data-theme=light] .theme-toggle .icon-moon{opacity:0;transform:rotate(90deg) scale(.4)}.bball-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--color-border-strong);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:1.15rem;line-height:1;margin-left:.6rem;transition:background-color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;flex-shrink:0}.bball-toggle:hover{border-color:#f9731680;box-shadow:0 0 12px #f973164d;transform:translateY(-2px)}.bball-toggle:active{transform:translateY(0) scale(.94)}[data-theme=basketball] .bball-toggle{border-color:#f9731699;box-shadow:0 0 12px #f9731659}.mobile-theme-toggle{display:flex;align-items:center;gap:.6rem;margin-top:1.5rem;color:var(--color-text-muted);font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}button.mobile-theme-toggle{background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.mobile-bball-toggle .mobile-bball-icon{font-size:1.15rem;line-height:1}[data-theme=basketball] .mobile-bball-toggle{color:#fb923c}@media(max-width:768px){.navbar-container{padding:.85rem 1rem;gap:.75rem}.navbar-right{width:100%;justify-content:flex-end}.language-switcher{position:relative;right:auto;top:auto}}.burger-menu{display:none;flex-direction:column;justify-content:space-around;align-items:center;width:2rem;height:2rem;background:transparent;border:none;cursor:pointer;z-index:100}.burger-menu span{width:2rem;height:.25rem;background:var(--color-text);border-radius:10px;transition:all .3s linear;position:relative;transform-origin:1px}.burger-close-icon{width:1.8rem;height:1.8rem;color:var(--color-text)}@media(max-width:768px){.burger-menu{display:flex}.navbar-links{position:fixed;top:0;right:0;height:100vh;width:100%;background:var(--color-bg-elevated);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;padding:6rem 1.5rem 2rem;transform:translate(100%);transition:transform .3s ease-in-out;z-index:90;overflow-y:auto}.navbar-links.active{transform:translate(0)}.navbar-links li{width:100%;display:flex;justify-content:center}.navbar-links a{width:100%;text-align:center;padding:.85rem 0;font-size:1.1rem}.cv-item{width:100%;justify-content:center}.cv-btn{width:min(100%,280px)}.nav-marker{display:none}.navbar-right{position:relative;width:100%;justify-content:center}.language-switcher{position:static;right:auto;top:auto;width:auto}}.navbar-logo{font-size:clamp(1.2rem,4vw,1.5rem);font-weight:800;color:var(--color-text);text-decoration:none;z-index:100}.navbar-links{display:flex;align-items:center;gap:2rem;color:var(--color-text-soft);font-weight:500;list-style:none;margin:0;padding:0;position:relative}.navbar-links a{text-decoration:none;color:inherit;transition:color .3s ease}.navbar-links a:hover{color:var(--color-text)}.nav-marker{position:absolute;bottom:-6px;left:0;width:20px;height:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-2));border-radius:2px;box-shadow:0 0 10px #06b6d499;opacity:0;transition:opacity .3s ease,transform .1s ease-out;pointer-events:none}.btn-magic{padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);background-color:var(--color-tag-bg);color:var(--color-text-soft);border:none;cursor:pointer}.btn-magic:hover{background-color:var(--color-border-soft)}.btn-magic.active{background-image:linear-gradient(to right,#a855f7,#06b6d4);color:#fff;box-shadow:0 0 15px #a855f780;background-color:transparent}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:0 1.5rem;width:100%}.hero-content{max-width:65rem;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center}.hero-title{font-size:clamp(2.5rem,6vw,5.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-bottom:1.5rem;color:var(--color-text)}.text-glow{display:block;margin-top:.5rem;color:transparent;background-image:linear-gradient(to right,#22d3ee,#a855f7,#ec4899);background-clip:text;-webkit-background-clip:text;animation:pulseEffect 3s cubic-bezier(.4,0,.6,1) infinite;filter:drop-shadow(0 0 15px rgba(168,85,247,.4)) drop-shadow(0 0 30px rgba(34,211,238,.2))}.hero-description{font-size:1.125rem;color:var(--color-text-soft);line-height:1.7;margin-bottom:3rem;max-width:38rem;margin-left:auto;margin-right:auto;font-weight:300}.btn-primary{display:inline-block;padding:1rem 2rem;border:1px solid #06b6d4;color:#22d3ee;border-radius:.5rem;text-decoration:none;font-weight:500;transition:all .3s ease}.btn-primary:hover{background-color:#06b6d4;color:#000;box-shadow:0 0 20px #22d3ee99}.btn-secondary{display:inline-block;padding:.5rem 1.25rem;font-size:.875rem;color:#22d3ee;background-color:transparent;border:1px solid rgba(34,211,238,.3);border-radius:.5rem;text-decoration:none;font-weight:600;transition:all .3s ease}.btn-secondary:hover{background-color:#22d3ee1a;border-color:#22d3ee;box-shadow:0 0 10px #22d3ee33;transform:translateY(-2px)}.loader-overlay{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-loader-bg);transition:all 1s ease-in-out}.loader-overlay.fade-out{opacity:0;pointer-events:none;transform:scale(1.1)}.loader-content{display:flex;flex-direction:column;align-items:center;position:relative}.loader-percentage{position:absolute;top:-2.5rem;color:#64748b;font-family:monospace;font-size:.75rem;letter-spacing:.1em;opacity:0;animation:fadeInOut 2.5s ease-in-out forwards}.loader-text-mask{overflow:hidden;padding-bottom:.5rem}.loader-name{color:var(--color-text);font-weight:300;font-size:clamp(1.5rem,4vw,2.25rem);text-transform:uppercase;letter-spacing:.3em;margin-left:.3em;margin-bottom:0;transform:translateY(100%);animation:slideUpReveal 1.2s cubic-bezier(.16,1,.3,1) .2s forwards}.loader-line-container{height:1px;background-color:var(--color-border-strong);margin-top:1rem;overflow:hidden;position:relative;width:0;animation:expandWidth 1.5s cubic-bezier(.8,0,.2,1) .8s forwards}.loader-line-fill{position:absolute;top:0;left:0;height:100%;width:100%;background-color:var(--color-text-soft);transform:translate(-100%);animation:fillLine 1.5s cubic-bezier(.8,0,.2,1) 1s forwards}.loader-subtitle{margin-top:1.5rem;font-size:.625rem;color:var(--color-text-faint);letter-spacing:.5em;text-transform:uppercase;opacity:0;animation:fadeIn 1s ease-out 1.5s forwards}@keyframes pulseEffect{0%,to{opacity:1}50%{opacity:.6}}@keyframes slideUpReveal{to{transform:translateY(0)}}@keyframes expandWidth{to{width:280px}}@keyframes fillLine{to{transform:translate(0)}}@keyframes fadeIn{to{opacity:1}}@keyframes fadeInOut{0%{opacity:0;transform:translateY(5px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1}to{opacity:0}}.about-section{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:1rem 1.5rem 4rem}.about-container{max-width:65rem;width:100%}.section-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;color:var(--color-text);margin-bottom:3rem;text-transform:uppercase;letter-spacing:.1em;text-align:left;width:100%}.bento-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:768px){.bento-grid{grid-template-columns:1.3fr 1fr}.bento-card.large-card{grid-column:1;grid-row:span 2}}.bento-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;position:relative;overflow:hidden;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color .5s ease,border-color .5s ease}.bento-card:before{content:"";position:absolute;inset:0;background:radial-gradient(600px circle at var(--mouse-x, 0) var(--mouse-y, 0),rgba(168,85,247,.15),transparent 40%);opacity:0;transition:opacity .5s;pointer-events:none;z-index:0}.bento-card:hover:before{opacity:1}.bento-card-content{position:relative;z-index:1;padding:clamp(1.25rem,5vw,2rem);height:100%}.large-card-content{display:flex;flex-direction:column;align-items:center;gap:2rem}@media(min-width:768px){.large-card-content{flex-direction:row;align-items:center}}.profile-photo-wrapper{display:flex;flex-direction:column;align-items:center;text-align:center;flex-shrink:0}.profile-photo-spin-hint{position:relative;display:inline-flex;margin-bottom:.6rem}.profile-photo-container{width:clamp(7rem,25vw,10rem);height:clamp(7rem,25vw,10rem);border-radius:50%;overflow:hidden;border:2px solid rgba(6,182,212,.5);box-shadow:0 0 15px #06b6d44d;transition:border-color .5s ease,box-shadow .5s ease}.profile-photo-container img{width:100%;height:100%;object-fit:cover}.profile-photo-ring{position:absolute;inset:-.6rem;border:2px dashed rgba(6,182,212,.4);border-radius:50%;pointer-events:none;animation:profilePhotoRingSpin 12s linear infinite;transition:border-color .5s ease}[data-theme=basketball] .profile-photo-ring{border-color:#f9731673}@keyframes profilePhotoRingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.profile-photo-hint{margin:0 0 .75rem;font-size:.78rem;font-style:italic;color:var(--color-text-muted);opacity:.8}[data-theme=basketball] .profile-photo-hint{color:#fb923c}.animate-photo-spin{animation:photoSpinMagic 1s cubic-bezier(.68,-.55,.265,1.55) forwards}.profile-name{font-size:1.25rem;font-weight:700;color:var(--color-text);letter-spacing:.1em;text-transform:uppercase;margin:0}.profile-role{color:var(--color-accent);font-size:.875rem;margin-top:.25rem;margin-bottom:0}.profile-text-wrapper{flex:1}.card-title{color:var(--color-text);font-size:1.25rem;font-weight:700;margin-top:0;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.card-text{color:var(--color-text-muted);line-height:1.6;font-size:1rem;margin:0}.card-text strong{color:var(--color-text)}.text-cyan{color:#22d3ee;font-weight:600}.petite-marge{margin-top:.5rem;font-size:.875rem}.status-box{margin-top:1.5rem;padding:1rem;background-color:var(--color-surface);border-radius:.5rem;border:1px solid rgba(6,182,212,.3)}.status-box-title{font-size:.75rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin:0 0 .25rem}.status-box-text{font-size:.875rem;color:var(--color-text);margin:0}.status-box-link{color:var(--color-accent)}.status-box-link:hover{color:var(--color-accent);opacity:.8}.timeline{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.timeline-item{display:flex;gap:1rem;align-items:flex-start}.timeline-dot{width:12px;height:12px;border-radius:50%;background-color:#06b6d4;margin-top:6px;box-shadow:0 0 10px #06b6d480;flex-shrink:0}.timeline-dot-purple{background-color:#a855f7;box-shadow:0 0 10px #a855f780}.timeline-content h4{color:var(--color-text);margin:0 0 .25rem;font-size:1rem}.timeline-content p{color:var(--color-text-muted);margin:0;font-size:.875rem}.timeline-subtext{font-size:.75rem!important;opacity:.7;margin-top:.25rem!important}.skills-section{width:100%;padding:4rem 1.5rem;display:flex;justify-content:center}.skills-container{max-width:65rem;width:100%}.text-center{text-align:center}.skills-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:768px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.skill-card{background-color:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:1rem;position:relative;overflow:hidden;transition:background-color .5s ease,border-color .3s ease,transform .6s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,opacity .6s cubic-bezier(.16,1,.3,1);opacity:0;transform:translateY(30px)}.skill-card.reveal-visible{opacity:1;transform:translateY(0)}.skill-card-content{position:relative;z-index:2;padding:clamp(1.25rem,5vw,2.5rem) clamp(1rem,4vw,2rem)}.skill-card:hover{transform:translateY(-5px);border-color:var(--color-border-soft);box-shadow:0 10px 40px #00000040}.skill-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem}.skill-icon{font-size:2rem}.skill-category-title{font-size:1.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.15em;margin:0}.text-cyan{color:#06b6d4}.text-purple{color:#9333ea}.text-blue{color:#2563eb}.text-pink{color:#db2777}.skill-tags-wrapper{display:flex;flex-wrap:wrap;gap:1rem}.skill-tag{font-size:.95rem;color:var(--color-tag-text);background-color:var(--color-tag-bg);padding:.6rem 1.25rem;border-radius:.5rem;border:1px solid var(--color-tag-border);transition:all .3s ease;cursor:default;font-weight:600;box-shadow:0 4px 6px -1px #00000026}.skill-tag.hover-cyan:hover{background-color:#164e63;color:#22d3ee;border-color:#0891b2}.skill-tag.hover-purple:hover{background-color:#4c1d95;color:#c084fc;border-color:#7e22ce}.skill-tag.hover-blue:hover{background-color:#1e3a8a;color:#60a5fa;border-color:#1d4ed8}.skill-tag.hover-pink:hover{background-color:#831843;color:#f472b6;border-color:#be185d}.corner-accent{display:none}.formations-section{width:100%;padding:6rem 1.5rem;display:flex;justify-content:center}.formations-container{max-width:65rem;width:100%}.interactive-timeline-layout{display:flex;flex-direction:column;gap:3rem;margin-top:4rem}@media(min-width:768px){.interactive-timeline-layout{flex-direction:row;align-items:flex-start}}.timeline-nav{flex:1;display:flex;flex-direction:column;gap:2rem;padding-left:1rem}.timeline-node{position:relative;display:flex;align-items:center;gap:1.5rem;cursor:pointer;padding:1rem 0;transition:transform .3s ease;opacity:.6}.timeline-node:hover{opacity:.8;transform:translate(5px)}.timeline-node.active{opacity:1;transform:translate(10px)}.timeline-connector{position:absolute;left:7px;top:3rem;bottom:-.5rem;width:2px;background:linear-gradient(to bottom,var(--color-border-soft),transparent);z-index:0}.timeline-point{width:16px;height:16px;border-radius:50%;border:2px solid;position:relative;z-index:1;transition:all .4s cubic-bezier(.4,0,.2,1)}.timeline-label{display:flex;flex-direction:column}.timeline-year{font-family:monospace;font-size:.875rem;color:var(--color-text-muted);letter-spacing:.05em}.timeline-short-title{font-size:1.1rem;font-weight:700;color:var(--color-text-soft)}.timeline-node.active .timeline-short-title{color:var(--color-text)}.timeline-details{flex:1.5;width:100%}.glass-panel{background:var(--color-surface-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-top:4px solid;border-radius:1rem;padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 20px 40px -10px #00000059;animation:fadeIn .5s ease-out forwards;transition:background-color .5s ease,border-color .5s ease}.detail-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem}.detail-icon{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:1rem;font-size:1.5rem}.detail-title{font-size:1.5rem;font-weight:800;color:var(--color-text);margin:0 0 .25rem}.detail-school{color:var(--color-text-muted);font-size:1rem;margin:0}.detail-body p{color:var(--color-text-soft);line-height:1.7;font-size:1.05rem;margin:0}@keyframes springZoomIn{0%{opacity:0;transform:scale(.92) translateY(15px)}70%{transform:scale(1.02) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-zoom{animation:springZoomIn .5s cubic-bezier(.175,.885,.32,1.1) forwards;opacity:0}.portfolio-section{width:100%;padding:4rem 1.5rem;display:flex;justify-content:center}.portfolio-container{max-width:65rem;width:100%}.portfolio-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-top:2rem}@media(min-width:768px){.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}.project-card{display:flex;flex-direction:column;padding:0}.project-image-wrapper{width:100%;height:200px;overflow:hidden;border-bottom:1px solid var(--color-border)}.project-image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}.project-card:hover .project-image-wrapper img{transform:scale(1.05)}.project-content{display:flex;flex-direction:column;flex:1}.project-tags{margin-bottom:1.5rem;margin-top:auto;padding-top:1.5rem}.mini-tag{padding:.3rem .8rem;font-size:.8rem}.project-actions{display:flex;gap:1rem;flex-wrap:wrap}.mini-btn{padding:.5rem 1rem;font-size:.875rem}.contacts-section{width:100%;padding:6rem 1.5rem 2rem;display:flex;justify-content:center}@media(max-width:768px){.about-section,.skills-section,.formations-section,.portfolio-section,.contacts-section{padding-left:1rem;padding-right:1rem}.navbar-container{align-items:center;justify-content:space-between}.navbar-links{gap:1.25rem}.skills-grid,.portfolio-grid,.contacts-grid,.interactive-timeline-layout{gap:1rem}.timeline-nav{padding-left:0}.timeline-node{gap:1rem}.glass-panel{padding:1.5rem 1rem}.project-image-wrapper{height:auto;aspect-ratio:16 / 9}.project-card{width:100%}.skill-card{min-width:0}}.contacts-container{max-width:65rem;width:100%}.contacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:3rem}.contact-card{display:flex;align-items:center;gap:1.5rem;padding:1.5rem!important;text-decoration:none;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),border-color .3s}.contact-card:hover{transform:translateY(-5px) scale(1.02);border-color:#06b6d480}.contact-icon{font-size:2rem;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border-radius:.75rem}.contact-info h3{color:var(--color-text);font-size:1.1rem;margin:0}.contact-info p{color:var(--color-text-muted);font-size:.9rem;margin:.25rem 0 0}.footer-simple{margin-top:6rem;text-align:center;border-top:1px solid var(--color-border);padding-top:2rem}.footer-simple p{color:var(--color-text-faint);font-size:.875rem;letter-spacing:.05em}.modal-backdrop{position:fixed;inset:0;background-color:#0009;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.modal-wrapper{background:var(--color-modal-bg);border:1px solid var(--color-border);border-radius:1.5rem;max-width:60rem;width:100%;max-height:85vh;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.modal-close-btn{position:absolute;top:1.25rem;right:1.25rem;background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text);width:2.5rem;height:2.5rem;border-radius:50%;cursor:pointer;z-index:10;transition:all .2s;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:var(--color-text);color:var(--color-bg)}.modal-content-scrollable{max-height:85vh;overflow-y:auto;padding-bottom:3rem}.modal-hero{position:relative;height:250px;width:100%}.modal-hero-img{width:100%;height:100%;object-fit:cover}.modal-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:2rem;background:linear-gradient(to top,var(--color-modal-bg),transparent)}.modal-main-title{font-size:2.25rem;font-weight:800;color:var(--color-text);margin:0}.modal-body-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;padding:2rem}@media(min-width:768px){.modal-body-grid{grid-template-columns:1.8fr 1fr}}.modal-section-block h3,.modal-side-column h3{color:var(--color-text);font-size:1.1rem;text-transform:uppercase;letter-spacing:.05em;margin-top:0;margin-bottom:1rem}.modal-text-accent{color:var(--color-text-muted);line-height:1.7;font-size:1rem}.modal-features-list{color:var(--color-text-muted);padding-left:1.25rem;line-height:1.7}.modal-features-list li{margin-bottom:.5rem}.border-highlight{border-left:3px solid #a855f7;padding-left:1rem}.modal-screens-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-top:1rem}.modal-screen-thumb{width:100%;border-radius:.5rem;border:1px solid var(--color-border);transition:transform .3s}.modal-screen-thumb:hover{transform:scale(1.03)}.stat-card{position:relative;background:#a855f71a;border:1px solid rgba(168,85,247,.3);padding:2rem;border-radius:1rem;text-align:center;transition:transform .3s,background .3s;cursor:help}.stat-card:hover{transform:translateY(-5px);background:#a855f726}.stat-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(10px);background:var(--color-surface-solid);color:var(--color-text);padding:1.25rem;border-radius:.75rem;font-size:.85rem;width:260px;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 15px 30px -5px #0006;border:1px solid rgba(168,85,247,.4);z-index:10;pointer-events:none;text-align:left;line-height:1.6}.stat-card:hover .stat-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(-15px)}.stat-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-8px;border-width:8px;border-style:solid;border-color:var(--color-surface-solid) transparent transparent transparent}
