:root{--bg-primary:#0a0e17;--bg-secondary:#141822;--bg-tertiary:#1a1f2e;--accent-cyan:#00d9ff;--accent-blue:#06f;--text-primary:#e4e4e7;--text-secondary:#a1a1aa;--text-muted:#71717a;--border:#27272a;--glow:#00d9ff4d}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e5e5e5;--accent-cyan:#09c;--accent-blue:#06f;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#6a6a6a;--border:#d4d4d4;--glow:#0099cc4d}[data-theme=light] nav a{color:var(--text-secondary)}[data-theme=light] nav a:hover,[data-theme=light] nav a.active,[data-theme=light] .logo{color:var(--accent-cyan)}[data-theme=light] .skill-card{background:linear-gradient(135deg,#f8f8f8 0%,#efefef 100%);border-color:#0077aa4d}[data-theme=light] .skill-card:hover{border-color:var(--accent-cyan);box-shadow:0 8px 20px #09c3}[data-theme=light] .project-card{background:linear-gradient(135deg,#f8f8f8 0%,#efefef 100%);border:1px solid #07a3;box-shadow:0 0 .9375rem #00000014}[data-theme=light] .project-card:hover{border-color:var(--accent-cyan);box-shadow:0 .5rem 1.875rem #09c3}[data-theme=light] .project-card h2{color:#1a1a1a;text-shadow:none}[data-theme=light] .project-card .project-description{color:#4a4a4a}[data-theme=light] .project-card .hover-text{color:#07a9}[data-theme=light] .project-card:after{background:radial-gradient(circle at calc(100% - 3.5rem) calc(100% - 4rem),#f8f8f8f2 0%,#f8f8f8bf 30%,#f8f8f84d 55%,#0000 75%)}[data-theme=light] .project-card:before{background:linear-gradient(270deg,#f8f8f88c 0%,#f8f8f833 60%,#0000 100%)}[data-theme=light] .project-card .project-link{background-color:var(--accent-cyan);opacity:.15}[data-theme=light] .project-card:hover .project-link{opacity:.12;box-shadow:none}[data-theme=light] .project-card .action-details{color:#fff;background:#0099cce6}[data-theme=light] .project-card .action-details:hover{background:var(--accent-cyan)}[data-theme=light] .project-card .action-github,[data-theme=light] .project-card .action-demo{color:#4a4a4a;background:#0000000f;border-color:#00000026}[data-theme=light] .project-card .action-github:hover,[data-theme=light] .project-card .action-demo:hover{background:#0000001a}[data-theme=light] .section-tag{color:var(--accent-cyan)}[data-theme=light] .hero h2,[data-theme=light] .hero-description,[data-theme=light] .section-description,[data-theme=light] .about-text p,[data-theme=light] .contact-text{color:var(--text-secondary)}[data-theme=light] body:before{background:linear-gradient(90deg,#0099cc08 1px,#0000 1px),linear-gradient(#0099cc08 1px,#0000 1px)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:DM Sans,sans-serif;line-height:1.6;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;top:0;left:0}html{scroll-behavior:smooth}header{z-index:1000;backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#0a0e17cc;position:fixed;top:0;left:0;right:0}[data-theme=light] header{background:#ffffffd9}nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1.5rem 2rem;display:flex;position:relative}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;padding:.5rem;display:none}.nav-toggle span{background:var(--text-primary);width:22px;height:2px;transition:transform .25s,opacity .25s;display:block}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(7px)rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.logo{color:var(--accent-cyan);align-items:center;gap:.5rem;font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700;text-decoration:none;display:flex}.logo:before{content:">";animation:1.5s infinite blink}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}nav ul{gap:2rem;list-style:none;display:flex}nav a{color:var(--text-secondary);font-size:.95rem;text-decoration:none;transition:color .3s;position:relative}nav a:after{content:"";background:var(--accent-cyan);width:0;height:2px;transition:width .3s,left .3s;position:absolute;bottom:-4px;left:50%}nav a:hover{color:var(--accent-cyan)}nav a:hover:after{width:60%;left:20%}nav a.active{color:var(--accent-cyan)}nav a.active:after{width:60%;left:20%}.nav-explore{position:relative}.nav-explore-trigger{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;align-items:center;gap:.4rem;padding:0;font-family:inherit;font-size:.95rem;transition:color .3s;display:inline-flex;position:relative}.nav-explore-trigger:after{content:"";background:var(--accent-cyan);width:0;height:2px;transition:width .3s,left .3s;position:absolute;bottom:-4px;left:50%}.nav-explore-trigger:hover,.nav-explore-trigger[aria-expanded=true]{color:var(--accent-cyan)}.nav-explore-trigger:hover:after,.nav-explore-trigger[aria-expanded=true]:after{width:60%;left:20%}.nav-explore-trigger .chevron{width:9px;height:9px;transition:transform .25s}.nav-explore-trigger[aria-expanded=true] .chevron{transform:rotate(180deg)}.explore-menu{background:var(--bg-secondary);border:1px solid var(--border);z-index:200;border-radius:10px;min-width:220px;padding:.4rem;position:absolute;top:calc(100% + 1rem);right:0;box-shadow:0 12px 30px #00000059}.explore-menu[hidden]{display:none}.explore-item{color:var(--text-primary);border-radius:6px;flex-direction:column;gap:.15rem;padding:.6rem .75rem;font-size:.9rem;text-decoration:none;display:flex}a.explore-item:hover{background:var(--bg-tertiary);color:var(--accent-cyan)}.explore-item .explore-desc{color:var(--text-muted);font-size:.75rem}.explore-item.disabled{color:var(--text-muted);cursor:default;opacity:.6}.explore-item .soon{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-family:Space Mono,monospace;font-size:.65rem}.theme-toggle{cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.toggle-track{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:999px;width:3rem;height:1.5rem;transition:background .3s,border-color .3s;position:relative}.theme-toggle:hover .toggle-track{border-color:var(--accent-cyan)}.toggle-thumb{background:var(--accent-cyan);width:1rem;height:1rem;box-shadow:0 0 6px var(--glow);border-radius:50%;transition:left .3s,background .3s;position:absolute;top:50%;left:.2rem;transform:translateY(-50%)}[data-theme=light] .toggle-thumb{left:calc(100% - 1.2rem)}body{transition:background-color .3s,color .3s}.container{width:100%;max-width:75rem;margin:0 auto;padding:0 2rem}.hero{align-items:center;min-height:100vh;padding-top:80px;display:flex;overflow:hidden}.hero-content{z-index:2;position:relative}.hero-line{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) forwards heroLineIn;transform:translateY(24px)}.hero-line-1{animation-delay:50ms}.hero-line-3{animation-delay:.25s}.hero-line-4{animation-delay:.4s}.hero-line-5{animation-delay:.55s}.hero-line-6{animation-delay:.7s}@keyframes heroLineIn{to{opacity:1;transform:translateY(0)}}.hero-name{display:inline-block}.hero h1{background:linear-gradient(135deg, var(--text-primary) 0%, var(--accent-cyan) 50%, var(--accent-blue) 100%);-webkit-text-fill-color:transparent;opacity:0;background-size:200%;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:clamp(2.5rem,8vw,4.5rem);font-weight:700;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards heroLineIn,6s 1.5s infinite gradientShift;transform:translateY(24px)}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}[data-theme=light] .hero h1{background:linear-gradient(135deg,#1a1a1a 0%,#07a 50%,#04c 100%) 0 0/200%;-webkit-background-clip:text;background-clip:text}.typewriter-cursor{background:var(--accent-cyan);vertical-align:middle;width:2px;height:1em;margin-left:2px;animation:.8s step-end infinite cursorBlink;display:inline-block}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.cta-buttons{flex-wrap:wrap;gap:1.5rem;display:flex}.hero-greeting{color:var(--accent-cyan);margin-bottom:1rem;font-family:Space Mono,monospace;font-size:1rem}.hero-location{color:var(--text-muted);letter-spacing:.05rem;margin-bottom:1rem;font-family:Space Mono,monospace;font-size:.9rem}.hero h2{color:var(--text-secondary);margin-bottom:2rem;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:500}.hero-description{max-width:600px;color:var(--text-secondary);margin-bottom:3rem;font-size:1.1rem;line-height:1.8}.btn{cursor:pointer;border:none;border-radius:30px;justify-content:center;align-items:center;gap:.5rem;padding:1rem 2rem;font-family:DM Sans,sans-serif;font-size:1rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:#ffffff1a;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn:hover:before{width:300px;height:300px}.btn span{z-index:1;position:relative}.btn-primary{background:linear-gradient(135deg, var(--accent-cyan) 0%, var(--accent-blue) 100%);color:var(--bg-primary);box-shadow:0 4px 15px #00d9ff4d}.btn-primary:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 6px 25px #00d9ff80}.btn-secondary{color:var(--accent-cyan);border:2px solid var(--accent-cyan);background:0 0;box-shadow:0 4px 15px #00d9ff1a}.btn-secondary:hover{border-color:var(--accent-blue);background:#00d9ff1a;transform:translateY(-3px)scale(1.02);box-shadow:0 6px 25px #00d9ff4d}a,button,input,textarea,select,.project-card,.skill-card,.oshawott-container,.theme-toggle,.credentials-dashboard,.cred-modal-overlay,.timeline-dashboard{pointer-events:auto}section{opacity:0;z-index:10;pointer-events:none;align-items:center;min-height:100vh;padding:6rem 0;animation:1s forwards fadeIn;display:flex;position:relative}@keyframes fadeIn{to{opacity:1}}.section-header{text-align:center;margin-bottom:4rem}.section-tag{color:var(--accent-cyan);margin-bottom:.5rem;font-family:Space Mono,monospace;font-size:.9rem}.section-title{margin-bottom:1rem;font-size:clamp(2rem,5vw,3rem);font-weight:700}.section-description{color:var(--text-secondary);max-width:700px;margin:0 auto;font-size:1.1rem}.about-content{grid-template-columns:1fr 1fr;align-items:start;gap:4rem;display:grid}.about-text p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1.05rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;display:grid}.skill-card{text-align:center;background:linear-gradient(135deg,#00d9ff0d 0%,#0066ff0d 100%);border:1px solid #00d9ff33;border-radius:12px;padding:1.5rem 1rem;transition:all .3s;position:relative;overflow:hidden}.skill-card:before{content:"";opacity:0;background:linear-gradient(135deg,#00d9ff1a 0%,#0066ff1a 100%);width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.skill-card:hover:before{opacity:1}.skill-card:hover{border-color:var(--accent-cyan);transform:translateY(-8px)scale(1.05);box-shadow:0 8px 20px #00d9ff4d}.skill-card h4{color:var(--accent-cyan);z-index:1;margin-bottom:.5rem;font-size:.95rem;font-weight:600;position:relative}.skill-card p{color:var(--text-secondary);z-index:1;margin:0;font-size:.85rem;transition:color .3s;position:relative}.skill-card:hover p{color:var(--text-primary)}.projects-grid{gap:3rem;display:grid}.project-card{background:linear-gradient(135deg,#151516 0%,#1d2229 100%);border-radius:1.25rem;width:100%;max-width:62.5rem;height:31.25rem;margin:0 auto;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 0 .9375rem #0000004d}.project-card:hover{box-shadow:0 .5rem 1.875rem #00d9ff4d}.project-card:after{content:"";z-index:20;pointer-events:none;opacity:0;background:radial-gradient(circle at calc(100% - 3.5rem) calc(100% - 4rem),#0a0c12f2 0%,#0a0c12bf 30%,#0a0c124d 55%,#0000 75%);width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.project-card:hover:after{opacity:1}.project-card:before{content:"";z-index:15;pointer-events:none;background:linear-gradient(270deg,#0a0c128c 0%,#0a0c1233 60%,#0000 100%);width:40%;height:100%;position:absolute;top:0;right:0}.project-card .project-title-badge{z-index:99;pointer-events:none;backdrop-filter:blur(3px);text-align:center;border-radius:.75rem;width:fit-content;min-width:10rem;padding:.75rem 0 .75rem 2rem;transition:all .4s;position:absolute;bottom:3.125rem;right:14rem}.project-card:hover .project-title-badge{bottom:16.5rem;right:4rem}.project-card h2{color:#fff;text-shadow:0 2px 12px #000c,0 1px 3px #000000e6;text-align:right;white-space:nowrap;margin:0;font-size:clamp(2.5rem,5vw,4.3rem);font-weight:700;line-height:1.1}.project-card .project-description{z-index:99;color:#fff;opacity:0;text-align:right;letter-spacing:.03125rem;-webkit-line-clamp:4;-webkit-box-orient:vertical;max-width:28rem;font-size:clamp(1.1rem,2vw,1.55rem);font-weight:500;line-height:1.6;transition:all .3s;display:-webkit-box;position:absolute;bottom:5.25rem;right:4rem;overflow:hidden}.project-card:hover .project-description{opacity:1}.project-card .hover-text{z-index:99;color:#fff9;letter-spacing:.1rem;writing-mode:vertical-lr;opacity:1;font-family:Space Mono,monospace;font-size:.8rem;transition:all .3s;position:absolute;top:6.25rem;right:2.8125rem}.project-card:hover .hover-text{opacity:0}.project-card .project-actions{z-index:99;opacity:0;gap:.6rem;transition:all .3s;display:flex;position:absolute;bottom:1.375rem;right:4rem;transform:translateY(8px)}.project-card:hover .project-actions{opacity:1;transform:translateY(0)}.project-action-btn{letter-spacing:.02rem;border-radius:999px;padding:.45rem 1rem;font-family:DM Sans,sans-serif;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .2s}.action-details{color:#0a0e17;background:#00d9ffe6}.action-details:hover{background:#00d9ff;box-shadow:0 2px 10px #00d9ff66}.action-github{color:#ffffffe6;background:#ffffff26;border:1px solid #ffffff40}.action-github:hover{background:#ffffff40}.action-demo{color:#ffffffe6;background:#ffffff26;border:1px solid #ffffff40}.action-demo:hover{background:#ffffff40}.project-card .project-image-container{z-index:10;filter:grayscale();background-position:0 0;background-repeat:no-repeat;background-size:48.875rem 27.5rem;border-radius:.75rem;width:48.875rem;height:27.5rem;transition:width .3s,height .3s,background-size .3s,filter .3s;position:absolute;top:1.875rem;left:1.875rem;overflow:hidden}.project-card:hover .project-image-container{filter:grayscale(0);background-size:58.75rem 33.0625rem;width:58.75rem;height:27.5rem}.project-card .project-link{background-color:var(--accent-cyan);cursor:pointer;z-index:50;color:#0000;opacity:.35;border:none;border-radius:50%;outline:none;width:2.5rem;height:2.5rem;font-size:0;text-decoration:none;transition:all .3s;display:block;position:absolute;bottom:3.4375rem;right:2.8125rem}.project-card:hover .project-link{opacity:.3;width:65rem;height:65rem;bottom:-28rem;right:-28rem;box-shadow:0 0 5rem #00d9ff66}.contact-content{text-align:center;max-width:600px;margin:0 auto}.contact-text{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem}.contact-links{flex-wrap:wrap;justify-content:center;gap:2rem;margin-bottom:3rem;display:flex}.contact-link{color:var(--text-primary);align-items:center;gap:.5rem;font-size:1.1rem;text-decoration:none;transition:color .3s;display:flex}.contact-link:hover{color:var(--accent-cyan)}footer{backdrop-filter:blur(10px);border-top:1px solid var(--border);text-align:center;width:100%;color:var(--text-muted);z-index:100;pointer-events:none;background:#0a0e17cc;padding:1.5rem 0;font-size:.9rem;display:block;position:relative}[data-theme=light] footer{background:#f5f5f5e6}.oshawott-chat{background:var(--bg-secondary);z-index:2000;opacity:0;pointer-events:none;border:1px solid #00d9ff4d;border-radius:1.25rem;flex-direction:column;width:20rem;height:36rem;transition:opacity .25s,transform .25s;display:flex;position:fixed;bottom:7rem;right:2rem;overflow:hidden;transform:translateY(12px)scale(.96);box-shadow:0 8px 32px #0006,0 0 0 1px #00d9ff14}.oshawott-chat.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.oshawott-chat-header{background:linear-gradient(135deg,#00d9ff1f 0%,#0066ff14 100%);border-bottom:1px solid #00d9ff26;flex-shrink:0;align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.oshawott-chat-header-text{flex:1}.oshawott-chat-header-text strong{color:var(--accent-cyan);font-family:Space Mono,monospace;font-size:.9rem;display:block}.oshawott-chat-header-text span{color:var(--text-muted);font-size:.72rem}.oshawott-chat-close{cursor:pointer;color:var(--text-muted);pointer-events:auto;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1;transition:color .2s}.oshawott-chat-close:hover{color:var(--accent-cyan)}.oshawott-chat-body{flex:1;display:flex;position:relative;overflow:hidden}.oshawott-display-panel{z-index:2;pointer-events:none;position:absolute;bottom:.5rem;left:.5rem}.oshawott-display-panel img{object-fit:contain;filter:drop-shadow(0 4px 14px #00d9ff59);width:96px;height:96px;display:block}.oshawott-chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:.65rem;padding:.85rem .85rem 6.5rem;display:flex;overflow-y:auto}.oshawott-chat-messages::-webkit-scrollbar{width:4px}.oshawott-chat-messages::-webkit-scrollbar-track{background:0 0}.oshawott-chat-messages::-webkit-scrollbar-thumb{background:#00d9ff33;border-radius:2px}.chat-msg{align-items:flex-start;gap:.45rem;animation:.2s msgIn;display:flex}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-msg.user{flex-direction:row-reverse}.chat-bubble{border-radius:1rem;max-width:85%;padding:.5rem .8rem;font-size:.85rem;line-height:1.5}.chat-msg.user .chat-bubble{background:linear-gradient(135deg, var(--accent-cyan) 0%, var(--accent-blue) 100%);color:#0a0e17;border-bottom-right-radius:.25rem}.chat-msg.bot .chat-bubble{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid #00d9ff1f;border-bottom-left-radius:.25rem}.chat-avatar{object-fit:contain;flex-shrink:0;width:22px;height:22px;margin-top:3px}.typing-indicator{align-items:center;gap:4px;display:flex}.typing-dot{background:var(--accent-cyan);opacity:.5;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typingBounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.oshawott-chat-input-row{background:var(--bg-secondary);border-top:1px solid #00d9ff1f;flex-shrink:0;gap:.5rem;padding:.65rem .85rem;display:flex}.oshawott-chat-input{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid #00d9ff33;border-radius:999px;outline:none;flex:1;padding:.5rem 1rem;font-family:DM Sans,sans-serif;font-size:.85rem;transition:border-color .2s}.oshawott-chat-input:focus{border-color:var(--accent-cyan)}.oshawott-chat-input::placeholder{color:var(--text-muted)}.oshawott-chat-send{background:linear-gradient(135deg, var(--accent-cyan) 0%, var(--accent-blue) 100%);cursor:pointer;pointer-events:auto;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;transition:transform .2s,box-shadow .2s;display:flex}.oshawott-chat-send:hover{transform:scale(1.1);box-shadow:0 2px 10px #00d9ff66}.oshawott-chat-send svg{fill:#0a0e17;width:16px;height:16px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.oshawott-container{z-index:2001;cursor:pointer;width:64px;height:64px;transition:transform .3s;animation:3s ease-in-out infinite float;position:fixed;bottom:2rem;right:2rem}.oshawott-container:hover{animation:none;transform:scale(1.1)}.oshawott-container img{object-fit:contain;filter:drop-shadow(0 4px 14px #00d9ff80);z-index:1;width:64px;height:64px;position:relative}@media (width<=768px){.oshawott-chat{width:calc(100vw - 1.5rem);height:70vh;bottom:5.5rem;right:.75rem}.oshawott-container{width:52px;height:52px;bottom:1rem;right:1rem}.oshawott-container img{width:52px;height:52px}.oshawott-display-panel img{width:72px;height:72px}}#dice-canvas{z-index:1;pointer-events:auto;width:100%;position:absolute;top:0;left:0}.fade-in{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(30px)}.fade-in.visible{opacity:1;transform:translateY(0)}@media (width<=768px){.nav-toggle{display:flex}nav ul{background:var(--bg-primary);border-bottom:1px solid var(--border);flex-direction:column;gap:0;margin:0;padding:.5rem 2rem 1rem;list-style:none;display:none;position:absolute;top:100%;left:0;right:0}nav ul.nav-open{display:flex}nav ul li{width:100%}nav ul a{border-bottom:1px solid var(--border);padding:.85rem 0;display:block}nav ul li:last-child a{border-bottom:none}.nav-explore-trigger{border-bottom:1px solid var(--border);justify-content:space-between;width:100%;padding:.85rem 0}.nav-explore-trigger:after{display:none}.explore-menu{min-width:0;box-shadow:none;background:0 0;border:none;margin:0;padding:.25rem 0 .5rem 1rem;position:static}.explore-item{padding:.5rem 0}.theme-toggle{padding:.4rem .6rem;font-size:1rem}.about-content{grid-template-columns:1fr;gap:2rem}.cta-buttons{flex-direction:column}.btn{width:100%}.contact-links{flex-direction:column;align-items:center}.project-card{height:350px}.project-card h2{font-size:clamp(1.8rem,6vw,2.5rem)}.project-card .project-description{-webkit-line-clamp:3;max-width:180px;font-size:clamp(.7rem,2vw,.85rem);bottom:35px;right:55px}.project-card:hover .project-description{bottom:45px}.project-card .project-image-container{background-size:480px 270px;width:480px;height:270px;top:20px;left:20px}.project-card:hover .project-image-container{background-size:560px 315px;width:calc(100% - 40px);height:270px}.project-card .hover-text{font-size:.7rem;top:70px;right:35px}.project-card .project-link{width:35px;height:35px;bottom:45px;right:35px}.project-card:hover .project-link{opacity:.3;width:660px;height:660px;bottom:-280px;right:-280px}}#timeline{min-height:auto;padding:6rem 0;display:block}.timeline-dashboard{width:100%}.heatmap-scroll{z-index:99;padding-bottom:.5rem;position:relative;overflow-x:auto}.heatmap-header-row{align-items:flex-end;gap:2px;width:max-content;margin:0 auto;padding:0 .5rem .4rem;display:flex}.heatmap-year-label{color:var(--text-muted);text-align:left;white-space:nowrap;width:15px;font-family:Space Mono,monospace;font-size:.62rem;overflow:visible}.heatmap-single-row{align-items:center;gap:2px;width:max-content;margin:0 auto;padding:.5rem;display:flex}.heatmap-cell{background:var(--bg-tertiary);cursor:pointer;outline-offset:1px;border-radius:3px;outline:1px solid #0000;flex-shrink:0;width:15px;height:30px;transition:transform .12s,outline-color .12s}.heatmap-cell:hover,.heatmap-cell.active{outline-color:var(--accent-cyan);transform:scaleY(1.08)}.heatmap-cell[data-level="1"]{background:#00d9ff40}.heatmap-cell[data-level="2"]{background:#00d9ff80}.heatmap-cell[data-level="3"]{background:#00d9ffbf}.heatmap-cell[data-level="4"]{background:var(--accent-cyan)}.heatmap-cell.exp:hover,.heatmap-cell.exp.active{outline-color:#b06dff}.heatmap-cell.exp[data-level="1"]{background:#b06dff40}.heatmap-cell.exp[data-level="2"]{background:#b06dff80}.heatmap-cell.exp[data-level="3"]{background:#b06dffbf}.heatmap-cell.exp[data-level="4"]{background:#b06dff}.heatmap-cell.edu:hover,.heatmap-cell.edu.active{outline-color:#00c976}.heatmap-cell.edu[data-level="1"]{background:#00c97640}.heatmap-cell.edu[data-level="2"]{background:#00c97680}.heatmap-cell.edu[data-level="3"]{background:#00c976bf}.heatmap-cell.edu[data-level="4"]{background:#00c976}.heatmap-row-label{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;text-align:center;margin:1rem 0 .35rem;font-family:Space Mono,monospace;font-size:.62rem}.heatmap-row-label:first-of-type{margin-top:0}.heatmap-summary{color:var(--text-muted);text-align:center;margin-top:.75rem;padding:0 .5rem;font-family:Space Mono,monospace;font-size:.68rem}.heatmap-summary strong{color:var(--accent-cyan)}.heatmap-tooltip{z-index:50;background:var(--bg-secondary);border:1px solid var(--accent-cyan);opacity:0;pointer-events:none;border-radius:8px;min-width:190px;max-width:260px;padding:.7rem .9rem;transition:opacity .15s,transform .15s;position:fixed;transform:translateY(4px);box-shadow:0 8px 24px #0006}.heatmap-tooltip.open{opacity:1;pointer-events:auto;transform:translateY(0)}.heatmap-tooltip-month{color:var(--accent-cyan);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-family:Space Mono,monospace;font-size:.65rem}.heatmap-tooltip-row{justify-content:space-between;gap:.75rem;padding:.3rem 0;font-size:.8rem;display:flex}.heatmap-tooltip-row.stacked{flex-direction:column;gap:.15rem}.heatmap-tooltip-row+.heatmap-tooltip-row{border-top:1px solid var(--border)}.heatmap-tooltip-name{color:var(--text-primary)}.heatmap-tooltip-count{color:var(--text-muted);white-space:nowrap;font-family:Space Mono,monospace}.heatmap-tooltip-row.stacked .heatmap-tooltip-count{white-space:normal;font-size:.72rem}.heatmap-tooltip-empty{color:var(--text-muted);font-size:.78rem}#credentials{min-height:auto;padding:6rem 0;display:block}.credentials-dashboard{width:100%}.credentials-summary{grid-template-columns:repeat(5,1fr);gap:.85rem;margin-bottom:2.5rem;display:grid}.credential-stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.25rem;font-family:Space Mono,monospace;transition:border-color .25s;position:relative;overflow:hidden}.credential-stat-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-cyan), transparent);opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.credential-stat-card:hover{border-color:#00d9ff4d}.stat-card-value{color:var(--accent-cyan);margin-bottom:.35rem;font-size:1.5rem;font-weight:700;line-height:1}.stat-card-value.is-text{letter-spacing:.02em;font-size:.78rem;line-height:1.3}.stat-card-label{letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase;font-size:.58rem}.skill-tree{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;margin-bottom:2.5rem;padding:1.5rem}.skill-tree-title{letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase;margin-bottom:1.25rem;font-family:Space Mono,monospace;font-size:.62rem}.skill-row{align-items:center;gap:1rem;margin-bottom:.7rem;display:flex}.skill-row:last-child{margin-bottom:0}.skill-label{color:var(--text-secondary);text-align:right;flex-shrink:0;width:160px;font-family:Space Mono,monospace;font-size:.68rem}.skill-bar-track{background:var(--bg-tertiary);border-radius:3px;flex:1;height:5px;overflow:hidden}.skill-bar-fill{background:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));border-radius:3px;width:0;height:100%;transition:width 1.1s cubic-bezier(.22,1,.36,1)}.skill-value{color:var(--text-muted);text-align:right;flex-shrink:0;width:2rem;font-family:Space Mono,monospace;font-size:.62rem}.credential-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.filter-pill{letter-spacing:.04em;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:.45rem .95rem;font-family:Space Mono,monospace;font-size:.68rem;transition:all .2s}.filter-pill:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.filter-pill.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00d9ff14}.credential-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.credential-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.7rem;padding:1.25rem;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.credential-card:before{content:"";width:100%;height:2px;position:absolute;top:0;left:0}.credential-card:hover{transform:translateY(-4px)}.credential-card.legendary:before{background:#f5c842}.credential-card.epic:before{background:#b06dff}.credential-card.rare:before{background:#00d9ff}.credential-card.uncommon:before{background:#00c976}.credential-card.common:before{background:#71717a}.credential-card.legendary:hover{border-color:#f5c84266;box-shadow:0 8px 28px #f5c84233}.credential-card.epic:hover{border-color:#b06dff66;box-shadow:0 8px 28px #b06dff33}.credential-card.rare:hover{border-color:#00d9ff66;box-shadow:0 8px 28px #00d9ff33}.credential-card.uncommon:hover{border-color:#00c97666;box-shadow:0 8px 28px #00c97633}.credential-card.common:hover{border-color:#71717a66;box-shadow:0 8px 28px #71717a33}@keyframes badge-shimmer{0%{left:-150%}45%{left:150%}to{left:150%}}.credential-rarity{letter-spacing:.18em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:.3rem;width:fit-content;padding:.2rem .6rem;font-family:Space Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.credential-card.epic .credential-rarity:after,.credential-card.legendary .credential-rarity:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff40,#0000);width:80%;animation:3.5s ease-in-out infinite badge-shimmer;position:absolute;top:0;bottom:0;left:-150%}.credential-rarity.legendary{color:#f5c842;background:#f5c84214;border-color:#f5c84266}.credential-rarity.epic{color:#b06dff;background:#b06dff14;border-color:#b06dff66}.credential-rarity.rare{color:#00d9ff;background:#00d9ff14;border-color:#00d9ff66}.credential-rarity.uncommon{color:#00c976;background:#00c97614;border-color:#00c97666}.credential-rarity.common{color:#71717a;background:#71717a14;border-color:#71717a66}.credential-badge-title{color:var(--text-muted);letter-spacing:.06em;font-family:Space Mono,monospace;font-size:.62rem}.credential-name{color:var(--text-primary);font-size:.95rem;font-weight:600;line-height:1.35}.credential-meta{flex-wrap:wrap;align-items:center;gap:.4rem .75rem;display:flex}.credential-issuer{color:var(--text-secondary);font-size:.8rem}.credential-date{color:var(--text-muted);font-family:Space Mono,monospace;font-size:.62rem}.credential-type-badge{color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:.1rem .4rem;font-family:Space Mono,monospace;font-size:.58rem}.credential-stats{flex-wrap:wrap;gap:.35rem;display:flex}.stat-boost{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:4px;padding:.2rem .45rem;font-family:Space Mono,monospace;font-size:.58rem}.stat-boost-val{color:var(--accent-cyan)}.modal-category-name{color:var(--text-secondary);letter-spacing:.04em;margin-bottom:.4rem;font-family:Space Mono,monospace;font-size:.75rem;font-weight:600}.credential-flavor{color:var(--text-muted);margin-top:auto;font-family:Space Mono,monospace;font-size:.6rem;font-style:italic;line-height:1.55}.credential-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.5rem;padding-top:.5rem;display:flex}.btn-cred{letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;padding:.4rem .8rem;font-family:Space Mono,monospace;font-size:.65rem;text-decoration:none;transition:all .2s;display:inline-block}.btn-cred-details{border-color:var(--border);color:var(--text-secondary)}.btn-cred-details:hover,.btn-cred-verify{border-color:var(--accent-cyan);color:var(--accent-cyan)}.btn-cred-verify:hover{background:#00d9ff14}.btn-cred-pdf{border-color:var(--text-muted);color:var(--text-muted)}.btn-cred-pdf:hover{border-color:var(--text-primary);color:var(--text-primary)}.cred-modal-overlay{z-index:9000;opacity:0;visibility:hidden;background:#000000c7;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .2s,visibility .2s;display:flex;position:fixed;inset:0}.cred-modal-overlay.open{opacity:1;visibility:visible}.cred-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:14px;width:100%;max-width:600px;max-height:88vh;padding:2rem;transition:transform .2s;position:relative;overflow-y:auto;transform:translateY(14px)}.cred-modal-overlay.open .cred-modal{transform:translateY(0)}.modal-close-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-family:Space Mono,monospace;font-size:.75rem;transition:all .2s;display:flex;position:absolute;top:1.2rem;right:1.2rem}.modal-close-btn:hover{border-color:var(--accent-cyan);color:var(--accent-cyan)}.modal-cred-name{color:var(--text-primary);margin:.65rem 0 .2rem;padding-right:2.5rem;font-size:1.2rem;font-weight:700}.modal-badge{letter-spacing:.08em;color:var(--text-muted);margin-bottom:1.1rem;font-family:Space Mono,monospace;font-size:.62rem}.modal-flavor-block{color:var(--text-muted);border-left:2px solid var(--accent-cyan);background:var(--bg-tertiary);border-radius:0 6px 6px 0;margin-bottom:1.25rem;padding:.75rem 1rem;font-family:Space Mono,monospace;font-size:.68rem;font-style:italic;line-height:1.6}.modal-section{margin-bottom:1.1rem}.modal-section-label{letter-spacing:.15em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem;font-family:Space Mono,monospace;font-size:.58rem}.modal-grid{grid-template-columns:1fr 1fr;gap:.5rem 1.5rem;display:grid}.modal-kv{flex-direction:column;gap:.1rem;display:flex}.modal-key{color:var(--text-muted);letter-spacing:.06em;font-family:Space Mono,monospace;font-size:.58rem}.modal-val{color:var(--text-secondary);font-size:.82rem}.modal-tags{flex-wrap:wrap;gap:.3rem;display:flex}.modal-tag{color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;padding:.18rem .45rem;font-size:.7rem}.modal-rarity-reason{color:var(--text-secondary);font-size:.82rem;line-height:1.5}.source-conf{color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;padding:.2rem .5rem;font-family:Space Mono,monospace;font-size:.58rem}.modal-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.6rem;margin-top:.5rem;padding-top:1rem;display:flex}.cred-empty{color:var(--text-muted);text-align:center;grid-column:1/-1;padding:3rem 1rem;font-family:Space Mono,monospace;font-size:.8rem}[data-theme=light] .credential-card{background:#fff}[data-theme=light] .credential-stat-card,[data-theme=light] .skill-tree,[data-theme=light] .filter-pill{background:#f8f8f8}[data-theme=light] .cred-modal{background:#fff}@media (width<=1024px){.credentials-summary{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.credentials-summary{grid-template-columns:repeat(2,1fr)}.credential-grid{grid-template-columns:1fr}.skill-label{width:110px;font-size:.6rem}.modal-grid{grid-template-columns:1fr}}
