:root{--color-bg: #030817;--color-bg-overlay: rgba(0, 1, 15, .9);--color-text: rgba(255, 255, 255, .87);--color-text-muted: #e5e7eb;--color-text-dim: #d1d5db;--color-text-link: #f4f7fd;--color-violet: #8b5cf6;--color-violet-light: #b394f9;--color-violet-lighter: #daccfc;--color-violet-mid: #684aa4;--color-violet-dark: #461674;--color-violet-on: #15033c;--color-violet-bg: rgba(139, 92, 246, .15);--color-violet-border: rgba(139, 92, 246, .4);--color-portfolio-dark: #0e215c;--color-portfolio-light: #d2dcf8;--color-portfolio-text-on-light: #010207;--color-teal: #3f9f9f;--color-teal-dark: #122e2e;--color-divider: rgba(255, 255, 255, .08);--color-border-subtle: rgba(244, 247, 253, .25);--color-border-nav: rgba(244, 247, 253, .5);--color-glow-heading: rgba(191, 205, 247, .65);--color-glow-white: rgba(255, 255, 255, .15);--color-glow-white-strong: rgba(255, 255, 255, .4);--shadow-container: 0 0 30px var(--color-glow-white);--font-body: "Oxanium", sans-serif;--font-heading: "Audiowide", sans-serif;--font-mono: "Audiowide", monospace;--text-2xs: .68rem;--text-xs: .72rem;--text-sm: .85rem;--text-base: 1rem;--text-md: 1.1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-btn-cta: 1.5rem;--text-3xl: 1.375rem;--text-4xl: 1.5rem;--text-5xl: 1.75rem;--text-6xl: 2.25rem;--text-7xl: 3rem;--text-nav-label: .688rem;--leading-tight: 1.1;--leading-normal: 1.5;--leading-relaxed: 1.6;--leading-loose: 1.7;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: 4px;--radius-md: 5px;--radius-lg: 8px;--radius-full: 9999px;--container-max: 1400px;--container-small: 1200px;--content-max: 900px;--transition-fast: .2s ease;--transition-base: .3s ease;--transition-slow: .7s ease}:root{font-family:Oxanium,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;white-space:pre-line;word-wrap:break-word;overflow-x:hidden}body{margin:-30px 0 0;padding:0;display:flex;min-width:290px;min-height:100vh;box-sizing:border-box;font-size:var(--text-xl);line-height:1.6;position:relative}h1,h2,h3,h4,h5,h6{font-family:Audiowide,sans-serif;line-height:1.1;text-shadow:2px 2px 20px rgba(191,205,247,.65)}h1{font-size:var(--text-7xl);text-align:center;margin:80px auto 40px;text-shadow:0 0 40px rgba(191,205,247,.9),0 0 80px rgba(104,74,164,.5)}h2{font-size:var(--text-6xl);letter-spacing:-.5px;margin:60px auto 30px;font-weight:300;text-shadow:0 0 30px rgba(191,205,247,.8),0 0 60px rgba(104,74,164,.4)}h3{font-size:var(--text-5xl);margin:50px auto 25px;text-shadow:0 0 20px rgba(191,205,247,.7),0 0 40px rgba(104,74,164,.3)}h4{font-size:var(--text-4xl)}h5{font-size:var(--text-3xl)}h6{font-size:var(--text-xl)}a{color:var(--color-text-link);text-decoration:underline}a:hover{color:var(--color-text-link);transition:all .25s;text-decoration:underline}button{color:#fff;border:#fff solid 1px;font-family:Audiowide,monospace;padding:.6rem 1.2rem;background-color:transparent;font-size:var(--text-xl);border-radius:5px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .7s ease;letter-spacing:-.5px}button.btn-cta{padding:1rem 1.8rem;font-size:var(--text-btn-cta)}button:hover{background:#fff3;box-shadow:0 0 20px #ffffff4d;transform:scale(1.05);text-decoration:none}button:focus,button:focus-visible{outline:none}.page{width:99vw}.page .container{width:80%;max-width:1440px;margin:40px auto;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:60px;border-radius:var(--radius-lg);box-shadow:var(--shadow-container)}.page .container-heading{width:100%;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:40px 0;box-sizing:border-box;border-radius:var(--radius-lg);box-shadow:var(--shadow-container)}.page .container-heading h1{width:80%;max-width:1440px;margin-left:auto;margin-right:auto;padding:60px;box-sizing:border-box}.page .container-small{width:100%;max-width:1200px;margin:0 auto}.pagecontent{margin:40px auto}.pagedesc{text-align:center}.flex-container{display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin:30px auto}@media all and (max-width: 768px){h1{font-size:var(--text-6xl);margin:40px auto}h2{font-size:var(--text-5xl);margin:30px auto}h3{font-size:var(--text-4xl)}h4{font-size:var(--text-3xl)}h5{font-size:var(--text-xl)}h6{font-size:var(--text-lg)}.page .container{width:90%;margin:20px auto;padding:20px}.page .container-heading{margin:20px 0}.page .container-heading h1{width:90%;padding:30px 20px}}@media all and (max-width: 576px){h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}body{font-size:var(--text-lg)}.page .container-heading h1{padding:20px 16px}}#about-me-page h2{max-width:750px;text-align:center}nav{padding-top:20px;letter-spacing:-.5px}nav ul{position:relative;display:flex;flex-direction:row;justify-content:center;gap:70px;font-size:18px;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);padding:20px;border-radius:var(--radius-md);background:var(--color-bg-overlay);z-index:3}nav ul li{list-style-type:none}nav ul li a{color:var(--color-text-link);text-decoration:none;text-transform:uppercase;border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 12px;display:inline-block}nav ul li a:hover{color:var(--color-text-link);border:1px solid var(--color-text-link);background:var(--color-glow-white);box-shadow:0 0 20px #ffffff40;transform:scale(1.05);text-decoration:none}nav ul li a.current-page{color:var(--color-text-link);border:1px solid var(--color-text-link);background:#fff3;box-shadow:0 0 25px var(--color-glow-white-strong)}nav li.home{width:52px;height:52px}nav li.home a{display:block;padding:0;width:50px;height:50px}nav li.home .homeIcon{width:50px;height:50px}.text-wrap-multiline{white-space:pre-line;text-align:center}.language-switcher-mobile,.mobile-nav{display:none}.desktop-menu{margin-bottom:100px}@media all and (max-width: 1240px){.mobile-nav{display:flex;align-items:center}.mobile-menu{display:flex;flex-direction:column}.language-switcher-mobile{display:block;margin:5px 15px;font-family:var(--font-mono)}nav{display:flex;flex-direction:row;justify-content:end;margin-top:15px;margin-bottom:30px}.menu-toggle{cursor:pointer;padding:10px;border:none;background:transparent;margin-top:5px;position:relative;z-index:200}.menu-toggle:hover{background:transparent;box-shadow:none;transform:none}.menu-toggle-bars{display:inline-block;width:32px;height:32px;margin:0 auto}.menu-toggle-bars span{display:block;width:32px;height:4px;background:var(--color-text-link);margin:5px 0}.menu-toggle-x{display:inline-block;width:20px;height:15px;margin:0 auto}.menu-toggle-x span{margin:10px 30px 0 0;display:block;width:32px;height:5px;background:var(--color-text-link);position:relative}.menu-toggle-x span:first-child{transform:rotate(45deg);position:absolute;top:40px;z-index:4}.menu-toggle-x span:last-child{transform:rotate(-45deg);position:absolute;top:40px;z-index:4}.mobile-menu{display:flex;flex-direction:column;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:absolute;top:-10px;left:0;right:0;padding:60px 30px;gap:2px;z-index:3}.mobile-menu li{list-style:none;padding:10px;font-size:18px;font-family:var(--font-mono);text-transform:uppercase;color:var(--color-text-link)}.mobile-menu li a{text-decoration:none;font-size:18px;color:#fff}.mobile-section-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#f4f7fd73;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:10px 16px!important;text-align:center;margin-top:8px}.mobile-submenu-item{padding-left:24px!important}.mobile-top-item a{display:block;border:1px solid var(--color-border-nav);border-radius:var(--radius-lg);padding:10px 16px;text-align:center}.mobile-top-item a:hover{border-color:var(--color-text-link);background:#ffffff1a;box-shadow:0 0 20px #ffffff26}.mobile-menu li a.current-page{color:var(--color-text-link);border:2px solid var(--color-text-link);background:#fff3;box-shadow:0 0 25px var(--color-glow-white-strong);border-radius:var(--radius-sm);padding:10px 12px}.desktop-menu{display:none}}.dropdown{position:relative;display:inline-block}.dropdown-trigger{font-family:var(--font-mono);font-size:inherit;text-transform:uppercase;color:var(--color-text-link);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 12px;cursor:pointer;letter-spacing:-.5px}.dropdown-trigger:hover,.dropdown-trigger[aria-expanded=true]{color:var(--color-text-link);border:1px solid var(--color-text-link);background:#fff3;box-shadow:0 0 25px var(--color-glow-white-strong)}.dropdown-menu{position:absolute;top:calc(100% + 40px);left:50%;transform:translate(-50%);min-width:max-content;background:transparent;border:none;border-radius:0;padding:0;margin:0;list-style:none;z-index:10;display:flex;flex-direction:column;gap:20px;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap}.dropdown-menu:before{content:"";position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:-1;border-radius:var(--radius-sm);pointer-events:none}.dropdown-menu li{list-style:none}.dropdown-menu a{display:block;padding:5px 10px;color:var(--color-text-link);text-decoration:none;font-family:var(--font-mono);font-size:inherit;text-transform:uppercase;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-sm);background:#00010ffa;text-align:center}.dropdown-menu a:hover,.dropdown-menu a:focus{color:var(--color-text-link);border:1px solid var(--color-text-link);background:#00010ffc;box-shadow:0 0 20px #ffffff40;outline:none}.dropdown-menu a.current-page{color:var(--color-text-link);border:1px solid var(--color-text-link);background:#fff3;box-shadow:0 0 25px var(--color-glow-white-strong)}.galaxy-container{display:flex;align-items:flex-start;justify-content:flex-start;padding:2rem;margin:80px auto 40px;max-width:1000px}.galaxy-timeline{position:relative}.galaxy-timeline-line{position:absolute;left:2rem;width:2px;background:linear-gradient(to bottom,#ffffff4d,#fff9,#ffffff4d);top:-2rem;height:calc(100% + 4rem);filter:drop-shadow(0 0 4px rgba(255,255,255,.5));box-shadow:0 0 8px #ffffff4d}.galaxy-container .tiny-star{position:absolute;left:50%;transform:translate(-50%);width:4px;height:4px;background-color:#fff;border-radius:50%;opacity:.6}.galaxy-container .tiny-star.star-1{top:33%;opacity:.4}.galaxy-container .tiny-star.star-2{top:45%;opacity:.7}.galaxy-container .tiny-star.star-3{bottom:25%;opacity:.5}.galaxy-container .tiny-star.star-4{bottom:15%;opacity:.9}.galaxy-container .galaxy-outertab{display:flex;flex-direction:column;gap:3rem}.galaxy-container .galaxy-outertab .tab-row{position:relative;display:flex;align-items:center}.galaxy-container .galaxy-outertab .tab-row .planet-container{position:relative;z-index:10;flex-shrink:0}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-planet-wrapper{position:relative}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-planet-wrapper .aboutme-programming-planet{width:4rem;height:4rem;border-radius:50%;background:linear-gradient(135deg,#ceceff,#000045);box-shadow:0 0 30px #ceceffe6,0 0 60px #23236499;border:none;transition:all var(--transition-base);position:relative;overflow:hidden;cursor:pointer}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-programming-planet-wrapper .aboutme-programming-planet:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;z-index:-1;transition:all var(--transition-base);background:radial-gradient(circle,rgba(96,165,250,.4) 0%,rgba(37,99,235,.2) 50%,transparent 100%)}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-planet-wrapper .aboutme-psychology-planet{width:3.6rem;height:3.6rem;margin-left:.2rem;border-radius:50%;background:linear-gradient(135deg,#74aff8,#063cb0);box-shadow:0 0 30px #2563eb4d,0 0 60px #60a5facc;border:none;transition:all var(--transition-base);position:relative;overflow:hidden;cursor:pointer}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-psychology-planet-wrapper .aboutme-psychology-planet:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;z-index:-1;transition:all var(--transition-base);background:radial-gradient(circle,rgba(96,165,250,.4) 0%,rgba(37,99,235,.2) 50%,transparent 100%)}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-planet-wrapper .aboutme-adventures-planet{width:4.6rem;height:4.6rem;margin-left:-.3rem;border-radius:50%;background:linear-gradient(135deg,#22d3ee,#043f4e);box-shadow:0 0 30px #0891b2cc,0 0 60px #d0f4fd33;border:none;transition:all var(--transition-base);position:relative;overflow:hidden;cursor:pointer}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-adventures-planet-wrapper .aboutme-adventures-planet:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;z-index:-1;transition:all var(--transition-base);background:radial-gradient(circle,rgba(96,165,250,.4) 0%,rgba(37,99,235,.2) 50%,transparent 100%)}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-planet-wrapper .aboutme-hobbies-planet{width:4rem;height:4rem;border-radius:50%;background:linear-gradient(135deg,#14b8a6,#043f4e);box-shadow:0 0 30px #0891b2e6,0 0 60px #d0f4fde6;border:none;transition:all var(--transition-base);position:relative;overflow:hidden;cursor:pointer}.galaxy-container .galaxy-outertab .tab-row .planet-container .aboutme-hobbies-planet-wrapper .aboutme-hobbies-planet:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;z-index:-1;transition:all var(--transition-base);background:radial-gradient(circle,rgba(96,165,250,.4) 0%,rgba(37,99,235,.2) 50%,transparent 100%)}.galaxy-container .galaxy-tab-title{font-size:32px;cursor:pointer;max-width:810px;margin-left:0;text-align:center}.galaxy-container .galaxy-tab-title:hover{box-shadow:0 0 15px #ffffff80;background-color:#ffffff0d}.galaxy-container .galaxy-content-container{margin-left:2rem;flex:1;min-width:0}.galaxy-container .galaxy-content-container .container-box{padding-bottom:1.5rem;padding-right:2rem;overflow:hidden;transition:height .4s ease-in-out,opacity .4s ease-in-out}.galaxy-container .galaxy-content-container .container-box.closed{height:0px;opacity:0}.galaxy-container .galaxy-content-container .container-box.open{opacity:1}.galaxy-container .galaxy-content-container .container-box .container-box-inner{background-color:#0003;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid rgba(255,255,255,.1)}.galaxy-container .galaxy-innertab{display:flex;flex-direction:column;gap:1rem}.galaxy-container .galaxy-innertab p{max-width:100%}@media all and (max-width: 768px){.galaxy-container .galaxy-content-container{margin-left:1.2rem}}@media all and (max-width: 576px){.galaxy-container .galaxy-tab-title{font-size:var(--text-4xl)}}.tab-section{margin-top:2rem}.tab-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;padding:0 1rem}.tab-button{padding:.7rem 2rem;border:none;border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);text-transform:uppercase;letter-spacing:.5px}.tab-button.primary{background-color:var(--color-violet);color:#fff}.tab-button.primary:hover{background-color:var(--color-violet-lighter);color:var(--color-violet-on)}.tab-button.primary.active{background:#fff;color:var(--color-violet-on)}.tab-content-container{padding:0 1rem}.tab-content{animation:fadeIn .2s ease-in-out;max-width:var(--content-max);margin:0 auto}.cv-role-title{color:var(--color-violet-light);font-size:1.6rem;margin-bottom:2rem;text-align:center}.cv-section{display:grid;grid-template-columns:150px 1fr;gap:.5rem 2.5rem;padding:1.5rem 0;border-bottom:1px solid var(--color-divider)}.cv-section:last-child{border-bottom:none}.cv-label{font-size:var(--text-xs);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-violet);padding-top:.2rem}.cv-content p{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-loose);margin:0 0 .8rem}.cv-content p:last-child{margin-bottom:0}.skill-pills{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.skill-pill{background:var(--color-violet-bg);border:1px solid var(--color-violet-border);color:var(--color-text-dim);font-size:var(--text-sm);padding:.3rem .8rem;border-radius:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 600px){.tab-content-container{padding:0}.cv-section{grid-template-columns:1fr;gap:.5rem;padding:1.2rem 0}.cv-label{font-size:var(--text-2xs)}}.conference-list{max-width:var(--content-max);margin:0 auto}.conference-item{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--color-divider)}.conference-item:last-child{border-bottom:none}.planet-bullet{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0;margin-top:6px}.planet-bullet.speaker{background:var(--color-violet);box-shadow:0 0 10px #8b5cf680}.planet-bullet.participant{background:var(--color-border-subtle)}.conference-content{flex:1;min-width:0}.conference-year{font-size:var(--text-xl);color:var(--color-text-muted);font-weight:400}.conference-title{font-size:var(--text-xl);color:var(--color-text);font-weight:600;margin-bottom:6px;line-height:1.4}.participation-info{display:flex;align-items:center;gap:8px;margin-bottom:8px}.participation-badge{font-size:var(--text-sm);padding:2px 8px;border-radius:var(--radius-full);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.participation-badge.speaker{background:var(--color-violet-bg);color:var(--color-violet-light);border:1px solid var(--color-violet-border)}.participation-badge.participant{background:transparent;color:var(--color-text-dim);border:1px solid var(--color-border-subtle)}.presentation-title{font-size:var(--text-base);color:var(--color-text-muted);font-style:italic;margin-top:4px;line-height:1.4}.presentation-title:before{content:"→ ";color:var(--color-violet-light);font-style:normal}.no-conferences{text-align:center;color:var(--color-text-dim);font-style:italic;padding:40px 20px}.conference-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin:32px auto 8px}.conference-pagination-btn{background-color:var(--color-portfolio-dark);color:var(--color-text-link);border:none;border-radius:var(--radius-md);font-size:15px;padding:8px 14px;cursor:pointer;transition:all .3s}.conference-pagination-btn:hover:not(:disabled){background-color:var(--color-portfolio-light);color:var(--color-portfolio-text-on-light);font-weight:700;transform:scale(1.08)}.conference-pagination-btn.active{background-color:var(--color-portfolio-light);color:var(--color-portfolio-text-on-light);font-weight:700}.conference-pagination-btn:disabled{opacity:.35;cursor:default}@media (max-width: 768px){.conference-item{gap:12px;padding:12px 0}.participation-info{flex-direction:column;align-items:flex-start;gap:4px}}.course-list{max-width:800px;margin:0 auto;padding:20px;background:linear-gradient(135deg,#0f1419,#1a2332);border-radius:5px;position:relative;overflow:hidden}.course-list:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 20%,rgba(34,197,94,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(168,85,247,.1) 0%,transparent 50%),radial-gradient(circle at 40% 70%,rgba(251,146,60,.05) 0%,transparent 50%);pointer-events:none}.year-group{position:relative;z-index:1;margin-bottom:32px}.year-group:last-child{margin-bottom:0}.year-heading{font-size:20px;font-weight:700;color:#22c55e;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid rgba(34,197,94,.3);text-align:left}.courses-for-year{display:flex;flex-direction:column;gap:0}.course-item{position:relative;z-index:1;display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.05);transition:all var(--transition-base)}.course-item:last-child{border-bottom:none}.course-item:hover{background:#ffffff05;border-radius:var(--radius-lg);padding-left:8px;padding-right:8px}.planet-bullet{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:6px;position:relative;transition:all var(--transition-base);background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 12px #22c55e66}.planet-bullet:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(34,197,94,.8),transparent 70%);opacity:.3;transition:opacity var(--transition-base)}.course-item:hover .planet-bullet:before{opacity:.6}.course-content{flex:1;min-width:0}.course-year-time{font-size:14px;color:#fff9;font-weight:500;margin-bottom:4px}.course-title{font-size:16px;color:#fff;font-weight:600;margin-bottom:6px;line-height:1.4}.course-description{font-size:14px;color:#ffffffb3;margin-bottom:8px;line-height:1.4}.course-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#22c55e;text-decoration:none;font-weight:500;transition:all var(--transition-base)}.course-link:hover{color:#16a34a;text-decoration:underline}.course-link:after{content:"→";font-size:12px;transition:transform var(--transition-base)}.course-link:hover:after{transform:translate(2px)}.no-courses{text-align:center;color:#fff9;font-style:italic;padding:40px 20px}@media (max-width: 768px){.course-list{padding:16px}.year-group{margin-bottom:24px}.year-heading{font-size:18px;margin-bottom:12px}.course-item{gap:12px;padding:12px 0}.course-title{font-size:15px}.course-description{font-size:13px}}div.center{display:flex;justify-content:center}.tldr-section{display:flex;justify-content:center;gap:20px;align-items:center;margin:80px auto 50px}.tldr-section button{border:1px solid white}.tldr-section a:hover{text-decoration:none}div.post-tile{white-space:normal;margin:40px auto}div.post-tile:nth-of-type(n){display:flex;flex-direction:row}div.post-tile:nth-of-type(2n){flex-direction:row-reverse}.post-tile-content{width:60%;padding:10px 30px}.posts-container .post-tile .post-tile-content h2{margin-top:0;margin-bottom:20px}.posts-container .post-tile .post-tile-image-container{width:40%;display:flex;flex-direction:row;align-items:center;position:relative}.post-tile-image-container img.post-tile-image-img{width:100%;height:auto;border-radius:8px;box-shadow:0 0 20px #ffffff4d}.pagination-btn{background-color:var(--color-portfolio-dark);color:var(--color-text-link);border:none;border-radius:5px;font-size:15px;padding:8px 14px;cursor:pointer;transition:all .3s}@media all and (max-width: 1250px){.post-tile-content{width:50%;padding:10px 40px}}@media all and (max-width: 992px){.post-tile-content{width:90%;margin:-15% auto 0;padding:0;z-index:1}.post-tile-content h2{text-align:center}div.post-tile:nth-of-type(n),div.post-tile:nth-of-type(2n){flex-direction:column-reverse}.posts-container .post-tile .post-tile-image-container{width:90%;margin:0 auto}.posts-container .post-tile .post-tile-image-container .overlay{position:absolute;bottom:0;right:0;left:0;top:50%;background:linear-gradient(180deg,transparent,rgba(3,8,23,.95) 45%)}}.page.post-page{white-space:normal;word-wrap:break-word}.post-page .container article div.post-body{padding:10px 40px}div.addditional-info{display:flex;flex-direction:row;justify-content:space-around;margin-bottom:20px}div.addditional-info .post-categories span.category-tag{margin:0 6px}div.featured-image{display:flex;justify-content:center}div.featured-image img{width:100%;height:auto;max-width:1200px}.post-page .container article div.post-body p img{display:block;margin:0 auto;width:100%}div.buy-coffee-btn{margin:60px auto;text-align:center;display:flex;gap:30px;flex-direction:column;justify-content:center;align-items:center;width:80%;font-size:16px;max-width:800px}@media (max-width: 768px){.post-page .container article div.post-body{padding:10px}}@media (max-width: 576px){.page.post-page .post-content{max-width:90%;padding:.6rem}.post-page .container article div.post-body{padding:10px 5px}}.social-media{width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:40px;margin:60px auto}.social-media a:nth-of-type(1),.social-media a:nth-of-type(2){padding:0 20px}@media all and (max-width: 576px){.social-media{gap:20px;margin:30px auto}}@media all and (max-width: 400px){.social-media{flex-direction:column}.social-media a:nth-of-type(1),.social-media a:nth-of-type(2){padding:20px 0}}h2.pagedesc{margin:20px auto;font-size:44px}.recent-blog-posts-heading{margin-top:60px;margin-bottom:40px}.recent-blog-posts{text-align:center}.recent-posts-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr);gap:.5rem;margin-bottom:.5rem}.recent-posts-grid .post-tile{height:100%;min-height:250px;margin:0}.recent-posts-grid div.post-tile.post-tile-recent-posts{flex-direction:column-reverse;justify-content:flex-end;gap:.5rem;padding:1rem}.recent-posts-grid div.post-tile.post-tile-recent-posts .post-tile-content{width:100%;padding:0}.recent-posts-grid div.post-tile.post-tile-recent-posts .post-tile-image-container img{box-shadow:0 0 20px #ffffff4d}.recent-posts-grid .post-tile-content h3{font-size:1.8rem}.recent-posts-grid .post-tile-content p{line-height:1.25}.recent-blog-posts button.btn-cta{margin-bottom:80px}@media (max-width: 768px){.recent-posts-grid{grid-template-columns:1fr;grid-template-rows:repeat(6,1fr)}.recent-posts-grid .post-tile{min-height:200px}.recent-posts-grid div.post-tile.post-tile-recent-posts{gap:2rem}}.portfolio-timeline{height:100%;min-height:400px;width:92%;max-width:1100px;margin:0 auto;padding:70px 20px 50px;border-radius:10px;position:relative}.portfolio-timeline .entries{width:calc(100% - 80px);max-width:1100px;min-height:300px;margin:auto;position:relative;left:-5px}.portfolio-timeline .entries .entry{width:calc(50% - 100px);float:left;padding:20px 0;clear:both;text-align:right}.portfolio-timeline .entries .entry:not(:first-child){margin-top:40px}.portfolio-timeline .entries .entry .title{font-size:32px;margin:10px 0;padding:10px 0;position:relative}.portfolio-timeline .entries .entry .title a:first-child{text-decoration:none}@media all and (max-width: 1000px){.portfolio-timeline{min-height:500px}.portfolio-timeline .entries .entry .title{font-size:26px}}@media all and (min-width: 769px){.planet-link{position:absolute;display:block;border-radius:50%;top:50%;z-index:1000;cursor:pointer;transition:transform var(--transition-base);animation:portfolio-float 4s ease-in-out infinite}.planet-link:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;z-index:-1;animation:aura-pulse 3s ease-in-out infinite alternate}.planet-link:hover{transform:translate(50%,-50%) scale(1.1)}.planet-commercial{width:6rem;height:6rem;right:calc(-84px - 3rem);transform:translate(50%,-50%);background:linear-gradient(135deg,var(--color-violet-mid) 0%,var(--color-violet-dark) 100%);box-shadow:0 0 30px #8a2be299,0 0 60px #8a2be266;animation-delay:0s}.planet-commercial:before{background:radial-gradient(circle,rgba(138,43,226,.4) 0%,rgba(138,43,226,.2) 50%,transparent 100%)}.planet-noncommercial{width:5.5rem;height:5.5rem;transform:translate(50%,-50%);background:linear-gradient(135deg,var(--color-teal) 0%,var(--color-teal-dark) 100%);box-shadow:0 0 25px #20b2aa99,0 0 50px #20b2aa66;animation-delay:.5s}.planet-noncommercial:before{background:radial-gradient(circle,rgba(32,178,170,.4) 0%,rgba(32,178,170,.2) 50%,transparent 100%);animation-delay:.5s}.portfolio-timeline .entries .entry:nth-child(2n){text-align:left;float:right}.portfolio-timeline .entries .entry:nth-child(2n) .planet-link{right:auto;left:calc(-116px - 2.75rem);transform:translate(-50%,-50%)}.portfolio-timeline .entries .entry:nth-child(2n) .planet-link:hover{transform:translate(-50%,-50%) scale(1.1)}@keyframes portfolio-float{0%,to{transform:translate(50%,-50%) translateY(0)}50%{transform:translate(50%,-50%) translateY(-10px)}}}@keyframes aura-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:1;transform:scale(1.2)}}@media all and (max-width: 768px){.portfolio-timeline{width:100%;min-height:unset;padding:2rem 1rem}.portfolio-timeline .entries{width:100%;display:flex;flex-direction:column;align-items:center;gap:5rem}.portfolio-timeline .entries .entry{width:100%;float:none;clear:none;padding:0;text-align:center}.portfolio-timeline .entries .entry:not(:first-child){margin-top:0}.portfolio-timeline .entries .entry .title{font-size:1.6rem;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:0}.planet-link{order:-1;position:relative;display:block;top:auto;right:auto;left:auto;transform:none;border-radius:50%;cursor:pointer;animation:portfolio-float-mobile 4s ease-in-out infinite}.planet-link:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;z-index:-1;animation:aura-pulse 3s ease-in-out infinite alternate}.planet-commercial{width:110px;height:110px;background:linear-gradient(135deg,var(--color-violet-mid) 0%,var(--color-violet-dark) 100%);box-shadow:0 0 30px #8a2be299,0 0 60px #8a2be266}.planet-commercial:before{background:radial-gradient(circle,rgba(138,43,226,.4) 0%,rgba(138,43,226,.2) 50%,transparent 100%)}.planet-noncommercial{width:90px;height:90px;background:linear-gradient(135deg,var(--color-teal) 0%,var(--color-teal-dark) 100%);box-shadow:0 0 25px #20b2aa99,0 0 50px #20b2aa66;animation-delay:.5s}.planet-noncommercial:before{background:radial-gradient(circle,rgba(32,178,170,.4) 0%,rgba(32,178,170,.2) 50%,transparent 100%);animation-delay:.5s}@keyframes portfolio-float-mobile{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}}.portfolio{display:flex;flex-direction:column;justify-content:center;margin-bottom:80px;width:100%}.portfolio-description{margin:0 auto 100px;max-width:650px;text-align:center}.portfolio img{width:90%;max-width:800px;height:auto;max-height:400px;margin:0 auto;border-radius:var(--radius-md);object-fit:cover;object-position:top}.portfolio h2{background-color:#0b1b4b;text-align:center;border-radius:var(--radius-md);width:100%;max-width:900px;margin:-20px auto 50px;padding:25px 0}.portfolio .content{margin:0 auto;background-color:#08153a;padding:20px 30px;border-radius:var(--radius-md);width:80%;max-width:800px;word-wrap:break-word}.tech-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:20px auto;padding:0;width:80%;max-width:800px}.tech-tags li{background-color:var(--color-portfolio-dark);border-radius:4px;font-size:14px;padding:4px 10px}.links{margin-top:50px;display:flex;justify-content:center;gap:50px}.links a.btn{background-color:var(--color-portfolio-dark);color:var(--color-text-link);text-transform:uppercase;font-size:16px;padding:10px 20px;border-radius:var(--radius-md);transition:all .5s}.links a.btn:hover{color:var(--color-portfolio-text-on-light);font-weight:700;transform:scale(1.1);background-color:var(--color-portfolio-light)}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin:40px auto 20px}.pagination-btn{background-color:var(--color-portfolio-dark);color:var(--color-text-link);border:none;border-radius:var(--radius-md);font-size:15px;padding:8px 14px;cursor:pointer;transition:all .3s}.pagination-btn:hover:not(:disabled){background-color:var(--color-portfolio-light);color:var(--color-portfolio-text-on-light);font-weight:700;transform:scale(1.08)}.pagination-btn.active{background-color:var(--color-portfolio-light);color:var(--color-portfolio-text-on-light);font-weight:700}.pagination-btn:disabled{opacity:.35;cursor:default}@media all and (max-width: 470px){.portfolio{text-align:center;margin-bottom:30px}.links{flex-direction:column;gap:20px;width:auto;max-width:90%;margin:20px auto}.links a{text-align:center}.portfolio h2{margin-bottom:20px;font-size:24px;padding:12px 10px;width:80%}.portfolio .content{font-size:16px;padding:12px 16px}}.youtube-embed-wrapper{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-lg);margin:var(--space-4) 0}.youtube-embed-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.pdf-link{display:inline-flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;color:var(--color-violet-light);text-decoration:underline;transition:color var(--transition-fast)}.pdf-link:hover{color:var(--color-text-link)}.resource-section-heading{margin-bottom:var(--space-4)}.resource-entry{margin-bottom:var(--space-6)}.resource-entry h3{margin-bottom:var(--space-2)}.resource-watch-link{color:var(--color-violet-light);text-decoration:underline;transition:color var(--transition-fast)}.resource-watch-link:hover{color:var(--color-text-link)}.tldr-description{color:var(--color-text-muted);margin-bottom:32px;font-size:var(--text-xl);line-height:var(--leading-relaxed)}.tldr-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}.tldr-filter-btn{background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-dim);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-base);padding:10px 20px;transition:all var(--transition-fast)}.tldr-filter-btn:hover{border-color:var(--color-violet);color:var(--color-text)}.tldr-filter-btn.active{background:var(--color-violet-bg);border-color:var(--color-violet-border);color:var(--color-violet-light);font-weight:600}.tldr-feed{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--color-divider);padding-left:24px;margin-left:8px}.tldr-entry{position:relative;padding-bottom:36px}.tldr-entry:before{content:"";position:absolute;left:-31px;top:6px;width:10px;height:10px;border-radius:var(--radius-full);background:var(--color-divider);border:2px solid var(--color-bg-overlay)}.tldr-entry.speaking:before{background:var(--color-violet);box-shadow:0 0 8px #8b5cf680}.tldr-entry.media:before{background:var(--color-teal);box-shadow:0 0 8px #3f9f9f80}.tldr-entry.nthw:before{background:var(--color-violet-light);box-shadow:0 0 8px #b394f980}.tldr-entry.news:before{background:var(--color-border-nav);box-shadow:none}.tldr-entry-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px}.tldr-entry-date{color:var(--color-text-dim);font-size:var(--text-sm)}.tldr-badge{border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;letter-spacing:.4px;padding:2px 10px;text-transform:uppercase}.tldr-badge.speaking{background:var(--color-violet-bg);border:1px solid var(--color-violet-border);color:var(--color-violet-light)}.tldr-badge.media{background:var(--color-teal-dark);border:1px solid var(--color-teal);color:var(--color-teal)}.tldr-badge.nthw{background:#b394f91f;border:1px solid rgba(179,148,249,.4);color:var(--color-violet-lighter)}.tldr-badge.news{background:transparent;border:1px solid var(--color-border-nav);color:var(--color-text-muted)}.tldr-badge.other{background:transparent;border:1px solid var(--color-border-subtle);color:var(--color-text-dim)}.tldr-entry-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text);margin-bottom:6px;line-height:var(--leading-tight)}.tldr-entry-description{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:10px}.tldr-entry-link{color:var(--color-violet-light);font-size:var(--text-sm);font-family:var(--font-mono);text-decoration:none;transition:color var(--transition-fast)}.tldr-entry-link:hover{color:var(--color-violet-lighter);text-decoration:underline}.tldr-no-entries{color:var(--color-text-dim);font-style:italic;padding:20px 0}@media (max-width: 768px){.tldr-feed{padding-left:16px;margin-left:4px}.tldr-entry:before{left:-23px}}@media (max-width: 576px){.tldr-filters{gap:8px}.tldr-entry-meta{flex-wrap:wrap;gap:6px}}#homepage{margin:0 auto;padding:0;text-align:center;width:100vw;height:100vh;overflow:hidden;position:relative}#homepage h1{margin:80px auto}.container{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;z-index:2}.site-name{text-shadow:2px 2px 20px rgba(255,255,255,.4)}.btn-intro{text-decoration:none;color:#fff;border:rgba(255,255,255,.4) solid 2px;font-family:var(--font-mono);font-size:1.8rem;width:10rem;padding:2rem;display:flex;align-items:center;justify-content:center;text-transform:uppercase;z-index:2;background-color:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-slow);border-radius:var(--radius-md)}.btn-intro:hover{background:#fff3;box-shadow:0 0 20px #ffffff4d;transform:scale(1.05);text-decoration:none;border:rgba(255,255,255,1) solid 2px}.stars{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.star{position:absolute;background:#fff;border-radius:50%;animation:twinkle 4s infinite}.star.small{width:1px;height:1px;animation-duration:5s}.star.medium{width:2px;height:2px;animation-duration:2.5s;box-shadow:0 0 6px #fffc}.star.large{width:3px;height:3px;animation-duration:5s;box-shadow:0 0 10px #ffffffe6}.star.bright{width:4px;height:4px;animation-duration:3.5s;box-shadow:0 0 15px #fff,0 0 25px #ffffff80}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.shooting-star{position:absolute;width:2px;height:2px;background:linear-gradient(45deg,white,transparent);border-radius:50%;animation:shoot 3s linear infinite}@keyframes shoot{0%{transform:translate(0) translateY(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(80vw) translateY(60vh);opacity:0}}.constellation{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.constellation-line{position:absolute;background:#fff3;height:1px;transform-origin:left center;animation:fadeInOut 4s infinite}@keyframes fadeInOut{0%,to{opacity:0}50%{opacity:.3}}@media all and (max-width: 576px){.btn-intro{border:#fff solid .2rem;font-size:1.4rem;width:8rem;padding:1.4rem}#homepage h1{font-size:45px}}.progress-container{height:10px;width:100%;background-color:var(--color-bg);margin:0;position:sticky;top:0;left:0;z-index:100}.progress-filler{height:5px;background-color:#2755df;transition:width .5s ease-in-out}
