﻿body{font-family:"Roboto",sans-serif;background-color:#000;color:#f0f0f0;margin:0;padding:5px 10px;max-width:900px;margin-left:auto;margin-right:auto;line-height:1.35;font-size:.85rem}p{line-height:1.2}article{padding-left:10px;margin-bottom:15px}article h4{color:#96c;margin-top:0;margin-bottom:3px;font-size:1em}.description{margin-top:6px}.location-duration,.timeline-duration{font-size:.85em;color:#bdc3c7;margin:3px 0}#main-content{transition:margin-left .5s;padding:16px}.table-container{overflow-x:auto}h1{color:#96c;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;text-align:center;margin-bottom:10px;letter-spacing:.1em;width:100%;max-width:100%}.subtitle{color:#bdc3c7;font-weight:300;font-style:italic;text-align:center;font-size:clamp(.7rem,1.2vw,.9rem);margin-top:5px;margin-bottom:15px;width:100%;max-width:100%;line-height:1.5}.portfolio-title{color:#96c;text-align:center;font-style:italic;font-size:clamp(.9rem,1.8vw,1.2rem);margin-bottom:20px}.main-title{color:#96c;font-size:1.4em;border-bottom:2px solid #96c}.main-title.collapser::before{content:">";font-weight:bold;font-size:1.2em}h3.collapser{font-size:1em;color:#f0f0f0;transition:color .2s ease-in-out}h3.collapser:hover{color:#96c}h5{color:#96c;margin-top:12px;margin-bottom:4px}.header-container{min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;box-sizing:border-box;width:100vw;margin-left:calc(-50vw + 50%);padding:0 5vw}.header-content{flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;transition:opacity .5s ease-out}.arrow-wrapper{width:100%;padding-bottom:2vh}.scroll-down-arrow{font-size:2.5rem;text-decoration:none;animation:bounce 2s infinite;display:inline-block}.scroll-down-arrow i{animation:shimmer 3s linear infinite;background:linear-gradient(to right, #9966cc 0%, rgb(204, 178.5, 229.5) 50%, #9966cc 100%);background-size:1000px 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0)}.header-content h1{animation:shimmer 3s linear infinite;background:linear-gradient(to right, #9966cc 0%, rgb(216.75, 197.625, 235.875) 50%, #9966cc 100%);background-size:1000px 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0)}.side-nav{height:100%;width:340px;position:fixed;z-index:1;top:0;left:-340px;background-color:#111;overflow-x:hidden;overflow-y:auto;transition:.5s;padding-top:20px}.side-nav.open{left:0}.side-nav ul{list-style:none;padding:0;margin:0}.side-nav ul li::before{content:none}.side-nav ul ul a{font-size:1em}.side-nav a{padding:2px 8px 2px 32px;text-decoration:none;font-size:1.2em;color:#818181;display:block;transition:.3s ease}.side-nav a:hover{color:#f1f1f1}.side-nav a.active{color:#fff}.side-nav a[data-main-section=true]{font-weight:bold;color:#96c;font-size:1.1em;padding-left:16px}.side-nav a[data-main-section=true]:hover{color:hsl(270,50%,75%)}.side-nav a[data-main-section=true].active{color:hsl(270,50%,80%)}.side-nav a.collapsible-nav::before{content:"▸";display:inline-block;margin-right:5px;transition:transform .3s ease}.side-nav a.collapsible-nav.open::before{transform:rotate(90deg)}.curriculum-columns{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media screen and (max-width: 768px){.curriculum-columns{grid-template-columns:1fr;gap:1rem}}.curriculum-column h3.collapser{margin-top:0}.skills-columns{display:grid;grid-template-columns:repeat(3, 1fr);gap:1.5rem;margin-bottom:1.5rem}@media screen and (max-width: 900px){.skills-columns{grid-template-columns:1fr;gap:1rem}}.skills-column{background:linear-gradient(135deg, rgba(40, 40, 40, 0.6), rgba(25, 25, 25, 0.8));border:1px solid #3c3c3c;border-radius:8px;padding:1rem}.skills-column h4{color:#96c;margin-top:0;margin-bottom:.75rem;font-size:1em}.skills-column ul{margin:0;font-size:.9em}.skills-column li{margin-bottom:.3rem}.floating-menu-container{position:fixed;right:15px;bottom:15px;z-index:1000}.floating-menu{position:absolute;bottom:60px;right:0;background-color:#1c1c1c;border-radius:5px;box-shadow:0 2px 5px rgba(0,0,0,.2);padding:10px;z-index:1;opacity:0;transform:translateY(10px);transition:opacity .3s ease ease,transform .3s ease ease;pointer-events:none}.floating-menu.show{opacity:1;transform:translateY(0);pointer-events:auto}.floating-menu a{display:flex;align-items:center;gap:.5rem;color:#f0f0f0;padding:8px 12px;text-decoration:none;transition:background-color .3s ease}.floating-menu a:hover{background-color:#3c3c3c}.nav-toggle-button{position:fixed;top:15px;left:15px;z-index:1002;background:none;border:none;padding:0;cursor:pointer;padding:10px;transition:opacity .3s ease ease,left .5s;opacity:.7}.nav-toggle-button span{display:block;width:25px;height:3px;background-color:#fff;margin:5px 0;transition:all .4s ease-in-out}.nav-toggle-button.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav-toggle-button.open span:nth-child(2){opacity:0}.nav-toggle-button.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-toggle-button:not(.open):hover span:nth-child(1){animation:wave 1.5s infinite ease-in-out;animation-delay:.1s}.nav-toggle-button:not(.open):hover span:nth-child(2){animation:wave 1.5s infinite ease-in-out;animation-delay:.2s}.nav-toggle-button:not(.open):hover span:nth-child(3){animation:wave 1.5s infinite ease-in-out;animation-delay:.3s}.nav-toggle-button.nav-open{left:335px}.floating-btn{background-color:rgba(153,102,204,.7);color:#fff;border:none;border-radius:50%;width:50px;height:50px;font-size:24px;cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:background-color .3s ease,opacity .3s ease ease}.floating-btn.active,.floating-btn:not(.active):hover{background-color:#8957b6}.desktop-view-button-container{display:flex;justify-content:flex-end;align-items:center;padding:10px 25px 0 0;width:100%;gap:15px;margin-bottom:15px}.desktop-view-button-container .icon-button{display:inline-block;padding:0;font-size:16px;color:#fff;opacity:.7}.desktop-view-button-container .icon-button:hover{opacity:1;color:#fff;text-decoration:none}.divider{color:#3c3c3c;font-size:20px;margin:0 5px}.collapser{cursor:pointer;margin-top:15px;margin-bottom:5px;padding:3px 0;display:flex;align-items:center;user-select:none}.collapser::before{content:">>";display:inline-block;width:1em;margin-right:6px;color:#96c;transition:transform .3s ease ease;transform-origin:center}.collapser.open::before{transform:rotate(90deg)}.collapsible-content{max-height:0;overflow:hidden;transition:max-height .4s ease-in-out,opacity .3s ease;opacity:0;padding-left:12px}.collapsible-content.open{max-height:none;overflow:visible;opacity:1;padding-bottom:6px}.quote{border-left:3px solid #96c;padding-left:12px;margin:12px auto;font-style:italic;color:#bdc3c7;max-width:80%}.small-quote{margin:8px 0 12px 0;font-size:.9em}.discipline-quote{border-left:3px solid #96c;padding-left:12px;margin:10px 0;font-style:italic;color:#bdc3c7;font-size:.95em}.tldr{background-color:#2c2c2c;padding:10px;border-radius:4px;border-left:4px solid #96c;font-size:1em}.pdf-link{color:#96c;text-decoration:none;font-weight:bold;display:block;margin-top:8px}.pdf-link:hover{color:#fff}.contact-table{width:100%;border-collapse:collapse;margin-top:12px}.contact-table td{padding:6px;border-bottom:1px solid #3c3c3c}.contact-table tr td:first-child{font-weight:bold;color:#96c;width:30%}.skills-table{width:100%;border-collapse:collapse;margin-bottom:15px;text-align:left}.skills-table th,.skills-table td{border:1px solid #3c3c3c;padding:4px;vertical-align:middle}.skills-table th{font-size:clamp(.7rem,1.2vw,.9rem);color:#96c}.skills-table img{max-height:28px;margin:0 auto;display:block}.skills-table .kde-icon{max-height:24px}.skills-table.text-center{text-align:center}.skills-list-table td,.skills-list-table th{text-align:left;padding-left:10px}.mermaid-diagram{overflow-x:auto;margin:15px 0;text-align:center}.mermaid-diagram pre.mermaid{white-space:pre-wrap;word-break:break-word}ul{list-style:none;padding:0;margin:0}ul li{margin-bottom:4px;padding-left:1.3em;text-indent:-1.3em}ul li::before{content:"•";color:#96c;font-weight:bold;display:inline-block;width:1em;margin-right:.3em}.nested-list{margin-top:5px;padding-left:1.5em}.nested-list li{padding-left:1.2em;text-indent:-1.2em}.nested-list li::before{content:"◦"}.nested-list-items{padding-left:1.2em;margin-top:5px}.nested-list-items li{padding-left:1.2em;text-indent:-1.2em}.nested-list-items li::before{content:"◦"}a{color:#96c;text-decoration:none;transition:color .2s ease-in-out}a:hover{color:#f0f0f0;text-decoration:underline}hr{border:none;border-top:1px solid #3c3c3c;margin:20px 0;opacity:.5}.section-divider{border-top:2px double #96c;opacity:.7;margin:25px 0}.portfolio-group{margin-bottom:2rem}.portfolio-group .group-title{color:#96c;font-size:1.1em;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #3c3c3c}.portfolio-cards{display:grid;grid-template-columns:repeat(2, 1fr);gap:1rem}@media screen and (max-width: 768px){.portfolio-cards{grid-template-columns:1fr}}.portfolio-card{background:linear-gradient(135deg, rgba(40, 40, 40, 0.8), rgba(25, 25, 25, 0.9));border:1px solid #3c3c3c;border-radius:8px;padding:1rem;transition:border-color .3s ease,transform .2s ease}.portfolio-card:hover{border-color:#96c;transform:translateY(-2px)}.portfolio-card h3.collapser{margin-top:0;font-size:1em}.portfolio-card .collapsible-content{padding-left:0}.portfolio-card .discipline-intro{font-size:.85em;line-height:1.4;margin-bottom:.5rem}.portfolio-card .quote{font-size:.8em;margin:.5rem 0;padding-left:8px;border-left-width:2px}.portfolio-card h4.collapser{font-size:.85em;margin-top:.5rem}.portfolio-cards.three-cols{grid-template-columns:repeat(3, 1fr)}@media screen and (max-width: 900px){.portfolio-cards.three-cols{grid-template-columns:repeat(2, 1fr)}}@media screen and (max-width: 600px){.portfolio-cards.three-cols{grid-template-columns:1fr}}.linktree-container ul li::before{content:none}.linktree-container ul li{padding-left:.5em;text-indent:0}.linktree-container .nested-list,.linktree-container .nested-list-items{padding-left:1.5em}.linktree-container h5{margin-top:8px;margin-bottom:0}.linktree-container h5+ul{margin-top:0}.linktree-container .skills-table td{width:50%;text-align:left}.linktree-container li:has(ul){color:#96c;font-weight:bold}.linktree-container i{color:#bdc3c7}@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@keyframes wave{0%,100%{transform:translateX(0) translateY(0)}25%{transform:translateX(5px) translateY(-2px)}75%{transform:translateX(-5px) translateY(2px)}}@keyframes starburst{0%{transform:scale(1);opacity:1}100%{transform:scale(0);opacity:0}}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}.fade-out{opacity:0 !important;pointer-events:none !important;transition:opacity .3s ease ease !important}.animated-section{opacity:0;transform:translateY(30px);visibility:hidden;transition:opacity .6s ease-out,transform .6s ease-out}.dev-mode-toast{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);background-color:rgba(0,0,0,.8);color:lime;padding:15px 25px;border-radius:5px;border:1px solid lime;z-index:2000;font-family:"Courier New",Courier,monospace;font-size:1.2em;opacity:0;transition:opacity .5s ease}.particle{position:fixed;background-color:#fff;border-radius:50%;width:4px;height:4px;z-index:1999;animation:starburst 7s ease-out forwards}.section-header-accent{color:var(--color-accent-purple);margin-top:15px}.link-purple{color:#96c}.linktree-link-section{text-align:center;margin-top:1rem}.footer-buttons{text-align:center;padding:2rem 1rem;margin-top:2rem}.footer-buttons-container{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.btn-cta{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:transform .2s,box-shadow .2s}.btn-cta:hover{transform:translateY(-2px)}.btn-cta--linktree{background:linear-gradient(135deg, #8b5cf6, #6366f1)}.btn-cta--linktree:hover{box-shadow:0 4px 12px rgba(139,92,246,.4)}.btn-cta--github{background:linear-gradient(135deg, #333, #555)}.btn-cta--github:hover{box-shadow:0 4px 12px rgba(0,0,0,.4)}@media screen and (max-width: 768px){#main-content.nav-open{margin-left:0}.skills-table{font-size:.7em}.skills-table th,.skills-table td{padding:2px}.skills-table th{font-size:.75em}.skills-table img{max-height:20px}.skills-table .kde-icon{max-height:16px}.skills-list-table td,.skills-list-table th{padding-left:5px}}
