.theme-hacker{--bg-primary: #151515;--bg-secondary: #1a1a1a;--bg-tertiary: #222;--text-primary: #ccc;--text-secondary: #888;--text-tertiary: #666;--accent: #b5e853;--accent-hover: #9ccc3d;--accent-alt: #7cb833;--border: #333;--border-light: #444;--shadow: rgba(0,0,0,0.3)}.theme-neon{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a25;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--text-tertiary: #707070;--accent: #0f8;--accent-hover: #00cc6a;--accent-alt: #0fc;--border: #2a2a35;--border-light: #3a3a45;--shadow: rgba(0,255,136,0.1)}.theme-minimal{--bg-primary: #fff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--text-primary: #111;--text-secondary: #4b5563;--text-tertiary: #9ca3af;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-alt: #3b82f6;--border: #e5e7eb;--border-light: #f3f4f6;--shadow: rgba(0,0,0,0.1)}.theme-twilight{--bg-primary: #1e1b2e;--bg-secondary: #262339;--bg-tertiary: #2e2a44;--text-primary: #e8e4f0;--text-secondary: #a8a4b8;--text-tertiary: #787488;--accent: #f78166;--accent-hover: #e5704f;--accent-alt: #ff9f7f;--border: #3d3952;--border-light: #4d4962;--shadow: rgba(247,129,102,0.1)}.theme-paper{--bg-primary: #fdfbf7;--bg-secondary: #f5f3ef;--bg-tertiary: #edebe7;--text-primary: #2d2a24;--text-secondary: #5c5850;--text-tertiary: #8a8680;--accent: #b44a2d;--accent-hover: #963d24;--accent-alt: #d45a3a;--border: #d4d0c8;--border-light: #e4e0d8;--shadow: rgba(0,0,0,0.08)}.left{text-align:left}.right{text-align:right}.center{text-align:center;margin-left:auto;margin-right:auto}.justify{text-align:justify}html:not(.theme-hacker){background:var(--bg-primary);color:var(--text-primary);transition:background 0.3s ease-in-out,color 0.3s ease-in-out}html:not(.theme-hacker) body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}html:not(.theme-hacker) h1,html:not(.theme-hacker) h2,html:not(.theme-hacker) h3,html:not(.theme-hacker) h4,html:not(.theme-hacker) h5,html:not(.theme-hacker) h6{color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-weight:600;text-shadow:none;letter-spacing:normal}html:not(.theme-hacker) p,html:not(.theme-hacker) li{color:var(--text-primary)}html:not(.theme-hacker) a{color:var(--accent);text-shadow:none}html:not(.theme-hacker) a:hover{color:var(--accent-hover)}html:not(.theme-hacker) code{background:var(--bg-secondary);color:var(--accent);border:1px solid var(--border)}html:not(.theme-hacker) code.highlighter-rouge{background:var(--bg-secondary);color:var(--accent);border:1px solid var(--border)}html:not(.theme-hacker) pre{background:var(--bg-secondary);border:1px solid var(--border)}html:not(.theme-hacker) pre code{background:transparent;border:none}html:not(.theme-hacker) th{color:var(--accent);border-bottom:1px solid var(--accent)}html:not(.theme-hacker) td{border-bottom:1px solid var(--border)}html:not(.theme-hacker) blockquote{border-left-color:var(--accent);color:var(--text-secondary)}html:not(.theme-hacker) hr{border-bottom-color:var(--accent)}html:not(.theme-hacker) ::selection{background:var(--accent);color:var(--bg-primary)}html:not(.theme-hacker) ul li{list-style-image:none;list-style-type:disc}.container{width:90%;margin-left:auto;margin-right:auto;padding-bottom:3rem}@media only screen and (min-width: 33.75em){.container{width:80%}}@media only screen and (min-width: 60em){.container{width:75%;max-width:60rem}}.row{position:relative;width:100%}.row::after{content:"";display:table;clear:both}.row [class^="col"]{float:left;margin:.5rem 2%;min-height:0.125rem}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{width:96%}.col-1-sm{width:4.33%}.col-2-sm{width:12.66%}.col-3-sm{width:21%}.col-4-sm{width:29.33%}.col-5-sm{width:37.66%}.col-6-sm{width:46%}.col-7-sm{width:54.33%}.col-8-sm{width:62.66%}.col-9-sm{width:71%}.col-10-sm{width:79.33%}.col-11-sm{width:87.66%}.col-12-sm{width:96%}.hidden-sm{display:none}@media only screen and (min-width: 45em){.col-1{width:4.33%}.col-2{width:12.66%}.col-3{width:21%}.col-4{width:29.33%}.col-5{width:37.66%}.col-6{width:46%}.col-7{width:54.33%}.col-8{width:62.66%}.col-9{width:71%}.col-10{width:79.33%}.col-11{width:87.66%}.col-12{width:96%}.hidden-sm{display:block}}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}@media only screen and (min-width: 45em){.profile-row{display:flex;align-items:center}.profile-row .col-6{float:none}.profile-left{display:flex;flex-direction:column;justify-content:center}}html:not(.theme-hacker) header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:2rem 0;margin:0 0 40px 0}html:not(.theme-hacker) header .container{padding-bottom:0}html:not(.theme-hacker) header h1{color:var(--text-primary);text-shadow:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-weight:700;margin:0 0 .5rem;font-size:30px;line-height:1.5}html:not(.theme-hacker) header h1:before{content:none}html:not(.theme-hacker) header h1 a{color:var(--text-primary);text-decoration:none;text-shadow:none}html:not(.theme-hacker) header h1 a:hover{color:var(--accent)}html:not(.theme-hacker) header h2{color:var(--text-secondary);font-size:1rem;font-weight:normal;margin:0 0 1.5rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;text-shadow:none}html:not(.theme-hacker) .btn{background:transparent;border:1px solid var(--border);border-radius:.375rem;color:var(--text-secondary);box-shadow:none;text-shadow:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}html:not(.theme-hacker) .btn:hover{border-color:var(--accent);color:var(--accent);background:transparent}html:not(.theme-hacker) .site-footer{background:var(--bg-secondary);border-top:1px solid var(--border)}html:not(.theme-hacker) .site-footer h3{color:var(--accent)}html:not(.theme-hacker) .site-footer a{color:var(--text-primary);text-shadow:none}html:not(.theme-hacker) .site-footer a:hover{color:var(--accent)}html:not(.theme-hacker) .footer-bottom{border-top:1px solid var(--border)}html:not(.theme-hacker) .footer-bottom p{color:var(--text-tertiary)}.portrait{width:250px;height:250px;border-radius:50%}.logo-link{text-decoration:none}.logo{width:48px;height:48px}.icon{height:40px;width:40px}.publications{margin-bottom:1rem}.publication-year{font-weight:bold;font-size:20px}.publication-title{font-weight:bold}.publication-description{padding-left:15px}.publication-authors{padding-left:15px;font-size:.75rem}.publication-item{padding-left:10px}.publication-links{margin-left:15px}.publication-link{display:inline-block;font-weight:400;line-height:1.5;color:#b5e853;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid #b5e853;padding:.5rem 1rem;font-size:1rem;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out;padding-left:10px}.publication-link:hover{color:#1a1a1a;background-color:#b5e853;border-color:#b5e853;text-decoration:none}.publication-link:active{color:#1a1a1a;background-color:#9ccc3d;border-color:#9ccc3d}html:not(.theme-hacker) .publication-link{color:var(--accent);border-color:var(--accent)}html:not(.theme-hacker) .publication-link:hover{color:var(--bg-primary);background-color:var(--accent);border-color:var(--accent)}html:not(.theme-hacker) .publication-link:active{color:var(--bg-primary);background-color:var(--accent-hover);border-color:var(--accent-hover)}.cv-jobs{margin-bottom:2rem}.cv-job{margin-bottom:1.5rem;padding-left:1rem;border-left:2px solid #444}.cv-employer{font-size:1.2rem;font-weight:bold;margin-bottom:.5rem}.cv-employer a{color:#b5e853;text-decoration:none}.cv-employer a:hover{text-decoration:underline}.cv-positions{margin-bottom:.5rem}.cv-position{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem}@media only screen and (max-width: 45em){.cv-position{flex-direction:column;gap:.25rem}}.cv-position-multi{padding-left:1rem;border-left:1px solid #666;margin-bottom:.25rem}.cv-title{font-weight:500}.cv-dates{font-size:.85rem;color:#888}@media only screen and (max-width: 45em){.cv-dates{font-size:.85rem}}.cv-description{font-size:0.95rem;margin-top:.5rem;color:#ccc}.cv-description p{margin:.25rem 0}.cv-links{margin-top:.5rem}html:not(.theme-hacker) .cv-job{border-left-color:var(--border-light)}html:not(.theme-hacker) .cv-employer a{color:var(--accent)}html:not(.theme-hacker) .cv-position-multi{border-left-color:var(--text-tertiary)}html:not(.theme-hacker) .cv-dates{color:var(--text-secondary)}html:not(.theme-hacker) .cv-description{color:var(--text-primary)}.cv-education{margin-bottom:2rem}.cv-edu{margin-bottom:1.5rem;padding-left:1rem;border-left:2px solid #444}.cv-institution{font-size:1.2rem;font-weight:bold;margin-bottom:.5rem}.cv-institution a{color:#b5e853;text-decoration:none}.cv-institution a:hover{text-decoration:underline}.cv-degree{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem}@media only screen and (max-width: 45em){.cv-degree{flex-direction:column;gap:.25rem}}html:not(.theme-hacker) .cv-edu{border-left-color:var(--border-light)}html:not(.theme-hacker) .cv-institution a{color:var(--accent)}.site-footer{background-color:#1a1a1a;border-top:1px solid #333;padding:2rem 0 1rem;margin-top:3rem}.site-footer .container{padding-bottom:0}.site-footer h3{font-size:.85rem;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:.5rem;color:#b5e853}.site-footer a{color:#ccc;display:block;margin-bottom:.5rem}.site-footer a:hover{color:#b5e853;text-decoration:none}.footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;margin-bottom:2rem}@media only screen and (max-width: 45em){.footer-content{flex-direction:column;gap:1.5rem}}.footer-contact,.footer-social,.footer-quick{flex:1;min-width:150px}.footer-social-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.footer-social-links a{display:inline}.footer-bottom{border-top:1px solid #333;padding-top:1rem;text-align:center}.footer-bottom p{color:#666;font-size:.85rem;margin:0}.contributions{margin-bottom:2rem}.contributions-updated{font-size:.85rem;color:#666;margin-bottom:1.5rem}.contributions-summary h3,.contributions-repos h3{color:#b5e853;margin-bottom:1rem;font-size:1.1rem}.contributions-totals{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:1rem;margin-bottom:2rem}.contributions-period{background:#1a1a1a;border:1px solid #333;border-radius:.375rem;padding:1rem}.contributions-period h4{margin:0 0 .5rem 0;font-size:.85rem;color:#ccc}.contributions-stats{display:flex;flex-direction:column;gap:.25rem}.contributions-stats .stat{font-size:.85rem;color:#888}.contributions-stats .stat strong{color:#b5e853;font-size:1.1rem}.contributions-table{width:100%;border-collapse:collapse;font-size:.85rem}.contributions-table th,.contributions-table td{padding:.5rem;text-align:left;border-bottom:1px solid #333}.contributions-table th{color:#b5e853;font-weight:600;font-size:.85rem}.contributions-table .repo-name a{color:#ccc}.contributions-table .repo-name a:hover{color:#b5e853}.contributions-table .repo-stat{text-align:center}.contributions-table .repo-stat .total{display:block;font-weight:600;color:#eee}.contributions-table .repo-stat .breakdown{display:block;font-size:.75rem;color:#666}.contributions-table .repo-stat .zero{color:#444}@media only screen and (max-width: 45em){.contributions-table{font-size:0.8rem}.contributions-table th,.contributions-table td{padding:0.35rem}.contributions-table .repo-stat .breakdown{display:none}}.contributions-note{margin-top:1.5rem;font-size:.85rem;color:#666}html:not(.theme-hacker) .contributions-updated{color:var(--text-tertiary)}html:not(.theme-hacker) .contributions-summary h3,html:not(.theme-hacker) .contributions-repos h3{color:var(--accent)}html:not(.theme-hacker) .contributions-period{background:var(--bg-secondary);border-color:var(--border)}html:not(.theme-hacker) .contributions-period h4{color:var(--text-primary)}html:not(.theme-hacker) .contributions-stats .stat{color:var(--text-secondary)}html:not(.theme-hacker) .contributions-stats .stat strong{color:var(--accent)}html:not(.theme-hacker) .contributions-table th,html:not(.theme-hacker) .contributions-table td{border-bottom-color:var(--border)}html:not(.theme-hacker) .contributions-table th{color:var(--accent)}html:not(.theme-hacker) .contributions-table .repo-name a{color:var(--text-primary)}html:not(.theme-hacker) .contributions-table .repo-name a:hover{color:var(--accent)}html:not(.theme-hacker) .contributions-table .repo-stat .total{color:var(--text-primary)}html:not(.theme-hacker) .contributions-table .repo-stat .breakdown{color:var(--text-tertiary)}html:not(.theme-hacker) .contributions-table .repo-stat .zero{color:var(--border-light)}html:not(.theme-hacker) .contributions-note{color:var(--text-tertiary)}.countries{margin-bottom:2rem}.countries-stats{display:flex;gap:2rem;margin-bottom:2rem}@media only screen and (max-width: 45em){.countries-stats{flex-direction:column;gap:1rem}}.countries-stat{display:flex;flex-direction:column;align-items:center;padding:1rem 2rem;background:#1a1a1a;border:1px solid #333;border-radius:.375rem}.countries-stat .stat-number{font-size:2.5rem;font-weight:bold;color:#b5e853}.countries-stat .stat-label{font-size:.85rem;color:#888}@media only screen and (max-width: 45em){.countries-stat{padding:.5rem 1rem}}.countries-by-continent{margin-top:2rem}.countries-continent{margin-bottom:2rem}.countries-continent h3{color:#b5e853;border-bottom:1px solid #333;padding-bottom:.5rem;margin-bottom:1rem}.countries-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:1rem}@media only screen and (max-width: 45em){.countries-grid{grid-template-columns:1fr}}.country-card{background:#1a1a1a;border:1px solid #333;border-radius:.375rem;padding:1rem;transition:border-color 0.15s ease-in-out}.country-card:hover{border-color:#b5e853}.country-card.favorite{border-left:3px solid #b5e853}.country-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.country-name{font-weight:600;color:#eee}.country-year{font-size:.85rem;color:#666}.country-visits{font-size:.85rem;color:#888;margin-bottom:.25rem}.country-notes{font-size:.85rem;color:#aaa;font-style:italic}html:not(.theme-hacker) .countries-stat{background:var(--bg-secondary);border-color:var(--border)}html:not(.theme-hacker) .countries-stat .stat-number{color:var(--accent)}html:not(.theme-hacker) .countries-stat .stat-label{color:var(--text-secondary)}html:not(.theme-hacker) .countries-continent h3{color:var(--accent);border-bottom-color:var(--border)}html:not(.theme-hacker) .country-card{background:var(--bg-secondary);border-color:var(--border)}html:not(.theme-hacker) .country-card:hover{border-color:var(--accent)}html:not(.theme-hacker) .country-card.favorite{border-left-color:var(--accent)}html:not(.theme-hacker) .country-name{color:var(--text-primary)}html:not(.theme-hacker) .country-year{color:var(--text-tertiary)}html:not(.theme-hacker) .country-visits{color:var(--text-secondary)}html:not(.theme-hacker) .country-notes{color:var(--text-secondary)}.countries-map-container{margin:2rem 0}.countries-map{position:relative;background:#111;border:1px solid #333;border-radius:.375rem;padding:1rem;overflow:hidden}.countries-map svg{width:100%;height:auto;display:block}.countries-map .city-overlay{position:absolute;top:1rem;left:1rem;right:1rem;bottom:1rem;pointer-events:none}html:not(.theme-hacker) .countries-map{background:var(--bg-tertiary);border-color:var(--border)}.map-legend{display:flex;gap:1.5rem;justify-content:center;margin-top:1rem;font-size:.85rem;color:#888}html:not(.theme-hacker) .map-legend{color:var(--text-secondary)}.legend-visited,.legend-not-visited{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:.5rem;vertical-align:middle}.legend-visited{background:#b5e853}html:not(.theme-hacker) .legend-visited{background:var(--accent)}.legend-not-visited{background:#333}html:not(.theme-hacker) .legend-not-visited{background:var(--border)}.legend-city{display:inline-block;width:10px;height:10px;border-radius:50%;background:#ff6b6b;margin-right:.5rem;vertical-align:middle}.city-markers .city-marker circle{fill:#ff6b6b;stroke:#fff;stroke-width:1}.city-markers .city-marker text{fill:#fff;font-size:8px;font-family:sans-serif;pointer-events:none}.cities{margin-bottom:2rem}.cities-stats{display:flex;gap:2rem;margin-bottom:2rem}@media only screen and (max-width: 45em){.cities-stats{flex-direction:column;gap:1rem}}.cities-stat{display:flex;flex-direction:column;align-items:center;padding:1rem 2rem;background:#1a1a1a;border:1px solid #333;border-radius:.375rem}.cities-stat .stat-number{font-size:2.5rem;font-weight:bold;color:#b5e853}.cities-stat .stat-label{font-size:.85rem;color:#888}html:not(.theme-hacker) .cities-stat{background:var(--bg-secondary);border-color:var(--border)}html:not(.theme-hacker) .cities-stat .stat-number{color:var(--accent)}html:not(.theme-hacker) .cities-stat .stat-label{color:var(--text-secondary)}.cities-map-container{height:500px;border:1px solid #333;border-radius:.375rem;margin-bottom:2rem}@media only screen and (max-width: 45em){.cities-map-container{height:350px}}html:not(.theme-hacker) .cities-map-container{border-color:var(--border)}.cities-list{margin-top:2rem}.cities-list h3{color:#b5e853;margin-bottom:1rem}.cities-list ul{list-style:none;padding:0}.cities-list li{padding:.5rem 0;border-bottom:1px solid #333}html:not(.theme-hacker) .cities-list h3{color:var(--accent)}html:not(.theme-hacker) .cities-list li{border-bottom-color:var(--border)}.city-country{color:#888;font-size:.85rem}html:not(.theme-hacker) .city-country{color:var(--text-secondary)}.city-date{color:#666;font-size:.85rem}html:not(.theme-hacker) .city-date{color:var(--text-tertiary)}.city-notes{color:#aaa;font-size:.85rem;font-style:italic;margin:.25rem 0 0 0}html:not(.theme-hacker) .city-notes{color:var(--text-secondary)}.theme-switcher{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem}.theme-switcher-label{font-size:.85rem;color:#888}html:not(.theme-hacker) .theme-switcher-label{color:var(--text-secondary)}#theme-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#1a1a1a;border:1px solid #333;border-radius:.375rem;color:#ccc;padding:.5rem 2rem .5rem 1rem;font-size:.85rem;font-family:inherit;cursor:pointer;transition:border-color 0.15s ease-in-out,background-color 0.15s ease-in-out;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}#theme-select:hover{border-color:#b5e853}#theme-select:focus{outline:none;border-color:#b5e853}#theme-select option{background:#1a1a1a;color:#ccc;padding:.5rem}html:not(.theme-hacker) #theme-select{background-color:var(--bg-secondary);border-color:var(--border);color:var(--text-primary)}html:not(.theme-hacker) #theme-select:hover{border-color:var(--accent)}html:not(.theme-hacker) #theme-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--shadow)}html:not(.theme-hacker) #theme-select option{background:var(--bg-secondary);color:var(--text-primary)}
