a{position:relative;text-decoration:none;color:var(--text-primary)}.top-banner{position:fixed;top:0;left:0;padding:8px;background:var(--banner-bg);border-radius:0 0 8px;border:2px solid var(--banner-border);color:var(--text-primary)}body:before{content:"";position:fixed;top:50%;left:50%;width:150vmax;height:150vmax;z-index:-1;background:url(/CV/assets/map-jWqWus3y.svg) center/cover no-repeat;will-change:transform;animation:bg-rotate 900s linear infinite}:root.dark-mode body:before{filter:invert(1)}@keyframes bg-rotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@media(prefers-reduced-motion:reduce){body:before{animation:none;height:100vh;width:100vw;top:0;left:0}}main{margin-right:40px;transition:margin-right .3s ease}@media(min-width:768px){main{margin-right:200px}}aside>.quick-actions{padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:10px}aside>.quick-actions .contact-icons{display:flex;flex-direction:column;gap:10px;align-items:center}aside.nav{position:fixed;display:flex;flex-direction:column;right:0;width:40px;height:100vh;background:var(--nav-gradient),url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.2' numOctaves='6' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");font-family:"Press Start 2P";color:var(--text-primary);transition:width .3s ease;overflow:hidden;z-index:100}aside.nav.expanded{width:200px}aside.nav.expanded>.quick-actions{flex-direction:row;justify-content:space-between}aside.nav.expanded>.quick-actions .contact-icons{flex-direction:row;gap:8px}@media(hover:hover){aside.nav:hover{width:200px}aside.nav:hover>.quick-actions{flex-direction:row;justify-content:space-between}aside.nav:hover>.quick-actions .contact-icons{flex-direction:row;gap:8px}}aside.nav:has(.timeline :focus-visible){width:200px}aside.nav:has(.timeline :focus-visible)>.quick-actions{flex-direction:row;justify-content:space-between}aside.nav:has(.timeline :focus-visible)>.quick-actions .contact-icons{flex-direction:row;gap:8px}@media(min-width:768px){aside.nav{width:200px}aside.nav>.quick-actions{flex-direction:row;justify-content:space-between}aside.nav>.quick-actions .contact-icons{flex-direction:row;gap:8px}}.dark-mode-switch svg{cursor:pointer;transition:transform .3s ease}.dark-mode-switch svg:hover{transform:scale(1.1)}.dark-mode-switch svg path{transition:fill .3s ease,filter .3s ease}.dark-mode-switch svg path.moon{fill:var(--text-primary);filter:drop-shadow(3px 5px 2px rgba(0,0,0,.4))}.dark-mode-switch svg path.sun{fill:var(--text-primary);filter:drop-shadow(3px 5px 2px rgba(255,255,255,.15))}.link-icon{display:inline-block;cursor:pointer;transition:transform .3s ease}.link-icon:hover{transform:scale(1.1)}.link-icon img{display:block;transition:filter .3s ease;filter:drop-shadow(3px 5px 2px rgba(0,0,0,.4))}:root.dark-mode .link-icon img{filter:brightness(0) invert(1) drop-shadow(3px 5px 2px rgba(255,255,255,.15))}.timeline{position:relative;height:100%;width:100%;display:flex;flex-flow:column nowrap;padding:20px}.timeline-slider{-webkit-appearance:none;appearance:none;writing-mode:vertical-lr;direction:ltr;position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;outline:none;cursor:pointer;z-index:10;opacity:.6}.timeline-slider::-webkit-slider-runnable-track{width:100%;height:100%;background:transparent}.timeline-slider::-moz-range-track{width:100%;height:100%;background:transparent}.timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:100%;height:40px;border-radius:0;background:var(--accent-color);opacity:.6;cursor:pointer;transition:opacity .2s ease}.timeline-slider::-moz-range-thumb{width:100%;height:40px;border-radius:0;background:var(--accent-color);opacity:.6;cursor:pointer;transition:opacity .2s ease;border:none}.timeline-slider:hover::-webkit-slider-thumb{opacity:.8}.timeline-slider:hover::-moz-range-thumb{opacity:.8}.timeline-labels{position:relative;height:100%;width:100%;pointer-events:none}.timeline-label{position:absolute;right:0;transform:translateY(-50%);padding:8px 4px;text-align:right;display:flex;align-items:flex-end;gap:4px;transition:all .2s ease;color:var(--text-color);opacity:.6;pointer-events:auto;cursor:pointer;background:none;border:none;border-radius:0;font-family:inherit;font-size:inherit}.timeline-label:focus-visible{outline:2px solid var(--accent-color);opacity:1}.timeline-label:hover{opacity:1;transform:translateY(-50%) translate(-5px)}.timeline-label.first{transform:translateY(0)}.timeline-label.first:hover{transform:translateY(0) translate(-5px)}.timeline-label.last{transform:translateY(-100%)}.timeline-label.last:hover{transform:translateY(-100%) translate(-5px)}.timeline-label.active{opacity:1;font-weight:600}.timeline-label.active .timeline-number{color:var(--accent-color, var(--text-color))}.timeline-number{font-size:.75rem;font-weight:700;opacity:.5;transition:color .2s ease}.timeline-title{font-size:.9rem;line-height:1.6}.content-section{min-height:80vh;padding:4rem 2rem;display:flex;flex-direction:column;justify-content:center;max-width:800px;margin:0 auto}.content-section .glass-box{background:#ffffff03;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;border:1px solid rgba(255,255,255,.3);padding:2.5rem;box-shadow:0 8px 32px #0000001a}:root.dark-mode .content-section .glass-box{background:#242424b3;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d}@media(prefers-reduced-motion:reduce){:root:not(.dark-mode) .content-section .glass-box{background:#ffffffb3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}}.content-section .section-title{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--text-primary)}.content-section .section-content{font-size:1.125rem;line-height:1.8;color:var(--text-primary);opacity:.9}.content-section .section-content p{margin-bottom:1rem}.content-section .section-content a{color:var(--accent-color);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-position:under;text-underline-offset:.35em;transition:text-decoration-color .2s ease,text-underline-offset .2s ease,color .3s ease}.content-section .section-content a:hover,.content-section .section-content a:focus-visible{text-decoration-color:currentColor;text-underline-offset:.18em}@media(max-width:768px){.content-section{padding:3rem 1.5rem}.content-section .section-title{font-size:2rem}.content-section .section-content{font-size:1rem}}.project-popover{position:relative;display:inline-block}.project-popover>a.popover-trigger{color:var(--accent-gold);text-decoration:underline dotted;text-decoration-thickness:1.5px;text-underline-offset:4px}@media(hover:hover){.project-popover>a.popover-trigger:hover,.project-popover>a.popover-trigger:focus-visible{text-decoration-style:solid}}.project-popover .popover-bubble{position:absolute;bottom:100%;left:50%;transform:translate(calc(-50% + var(--shift, 0px)));padding-bottom:10px;width:max-content;max-width:min(360px,100vw - 24px);z-index:10;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s}.project-popover .popover-card{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.25rem;background:#fff;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:12px;border:1px solid rgba(255,255,255,.5);box-shadow:0 12px 40px #00000040;font-size:.9rem;line-height:1.6;transform:translateY(4px);transition:transform .2s ease}:root.dark-mode .project-popover .popover-card{background:#1a1a1aeb;border:1px solid rgba(255,255,255,.15);box-shadow:0 12px 40px #00000080}.project-popover .popover-blurb{color:var(--text-primary)}.project-popover .popover-stack{display:flex;flex-wrap:wrap;gap:.4rem}.project-popover .stack-chip{padding:.15rem .55rem;border-radius:999px;border:1px solid var(--accent-color);background:#646cff40;font-size:.75rem;white-space:nowrap;color:var(--text-primary)}.project-popover .popover-link{align-self:flex-start;font-size:.875rem;color:var(--accent-color)}.project-popover.open .popover-bubble{opacity:1;visibility:visible}.project-popover.open .popover-bubble .popover-card{transform:translateY(0)}@media(hover:hover){.project-popover:hover .popover-bubble,.project-popover:focus-within .popover-bubble{opacity:1;visibility:visible}.project-popover:hover .popover-bubble .popover-card,.project-popover:focus-within .popover-bubble .popover-card{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.project-popover .popover-bubble,.project-popover .popover-card{transition:none}}*{box-sizing:border-box;margin:0;transition:background-color .3s ease,color .3s ease,border-color .3s ease,fill .3s ease}:root{font-family:Michroma,Arial,sans-serif;line-height:1.5;font-weight:400;--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: rgba(0, 0, 0, .87);--text-secondary: rgba(0, 0, 0, .6);--border-color: #e0e0e0;--accent-color: #646cff;--accent-gold: #6b6200;--button-bg: #f0f0f0;--button-hover-border: #646cff;--banner-bg: rgba(255, 255, 255, .9);--banner-border: #333333;--slider-thumb: #646cff;--nav-gradient: linear-gradient( to top, rgba(100, 108, 255, .15), rgba(120, 119, 198, .15), rgba(147, 130, 180, .15), rgba(167, 140, 165, .15), rgba(180, 150, 150, .15), rgba(190, 160, 135, .15), rgba(195, 170, 120, .15), rgba(200, 180, 105, .15), rgba(205, 190, 90, .15), rgba(210, 200, 75, .15), rgba(215, 210, 60, .15), rgba(220, 220, 45, .15) );-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;height:100%;color-scheme:light;color:var(--text-primary);background-color:var(--bg-primary)}:root.dark-mode{--bg-primary: #242424;--bg-secondary: #1a1a1a;--text-primary: rgba(255, 255, 255, .87);--text-secondary: rgba(255, 255, 255, .6);--border-color: #404040;--accent-color: #646cff;--accent-gold: #dcdc2d;--button-bg: #1a1a1a;--button-hover-border: #646cff;--banner-bg: rgba(0, 0, 0, .9);--banner-border: #ffffff;--slider-thumb: #ffffff;--nav-gradient: linear-gradient( to top, rgba(24, 28, 111, .92), rgba(50, 25, 109, .89), rgba(67, 22, 107, .89), rgba(81, 19, 104, .85), rgba(93, 15, 100, .89), rgba(102, 7, 89, .92), rgba(109, 1, 80, .89), rgba(113, 0, 72, .89), rgba(113, 0, 55, .87), rgba(110, 0, 38, .89), rgba(104, 0, 23, .89), rgba(96, 2, 2, .89) );color-scheme:dark}body{height:auto;min-height:100vh}*,body{-ms-overflow-style:none;scrollbar-width:none}*::-webkit-scrollbar,body::-webkit-scrollbar{display:none}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--button-bg);color:var(--text-primary);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--button-hover-border)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}
