@import url("https://fonts.googleapis.com/css2?family=Caveat&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");:root{font-family:Ubuntu,sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Cantarell,Fira Sans,Droid Sans,Helvetica Neue;color-scheme:light dark;margin:0;padding:0;text-align:center;min-width:100%;min-height:100vh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--header-height:3.4em;--gap:0.7em;--primary-color:#384C37;--secondary-color:#88A5BC;--background-color:#FFFFFF;--text-color:#282c34;--accent-color:#E1C8BC;--button-background-color:var(--primary-color);--button-text-color:#F4F0EB;--button-border-color:var(--primary-color)}@media (max-width:768px){.nav-link{visibility:hidden}.centre_stage{width:90%!important}}#root,.App,body,html{height:100vh;width:100%;margin:0;padding:0}.App{overflow:auto;display:flex!important;flex-direction:column;flex-grow:1;min-height:100vh;padding-top:80px}div{box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-container{display:flex;flex-direction:column;min-height:100vh;background-color:var(--background-color);color:var(--text-color)}.Page,.full_stage{width:100%;text-align:center!important}.Page,.centre_stage,.full_stage{display:flex;flex-direction:column;align-items:center;justify-content:center}.centre_stage{width:80%;height:auto}@media (min-width:1200px){.centre_stage{width:70%!important}}@media (min-width:768px) and (max-width:1199px){.centre_stage{width:80%!important}}@media (max-width:767px){.centre_stage{width:90%!important}}.row{display:flex;flex-direction:row;align-items:center;width:100%;margin:1em 0;gap:var(--gap)}.row-left{justify-content:left}.row-centred{justify-content:space-between}.row-right{justify-content:flex-end}.column{display:flex;flex-direction:column;align-items:center;gap:1.5em;width:100%;max-width:800px;margin:0 auto}.invisible_wrapper{display:contents;width:100%;height:100%}@media (max-width:768px){.row{flex-direction:column;align-items:center;gap:calc(.5*var(--gap))}.full_stage{padding:1rem}}nav{display:flex;justify-content:right;gap:20px}nav a{text-decoration:none;color:black;padding:10px}nav a:hover{color:blue}.Header{display:flex;align-items:center;justify-content:space-between;padding:1em;width:100%;max-width:1200px;margin:0 auto;position:relative}.Header nav{display:flex;gap:2em;margin-left:auto}.Header nav a{color:var(--text-color);text-decoration:none;font-weight:500;font-size:1.1em;transition:color .3s ease;position:relative}.Header nav a:hover{color:var(--primary-color)}.Header nav a:after{content:"";position:absolute;width:0;height:2px;bottom:-4px;left:0;background-color:var(--primary-color);transition:width .3s ease}.Header nav a:hover:after{width:100%}@media (max-width:768px){.Header{padding:.5em}.Header nav{display:none}}.Footer{background-color:var(--secondary-color);margin-top:auto;width:100%;padding:1em 0;color:#282c34;text-align:center;flex-shrink:0}a.button:hover,button:hover{background-color:var(--button-border-color);color:var(--accent-color)}.contact-form{display:flex;flex-direction:column;gap:var(--gap);width:100%;max-width:25em;margin:0 auto}.form-group{display:flex;align-items:center;width:100%}.form-group label{flex:0 0 auto;min-width:5em;margin-right:1em}.form-group input,.form-group textarea{flex:1 1 auto;width:100%;max-width:100%;box-sizing:border-box;padding:.5em;font-size:1em;border:1px solid #ccc;border-radius:4px;resize:vertical}.grid-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;padding:20px;width:100%}.grid-item{background-color:#fff;padding:20px;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);position:relative}.grid-item:hover{box-shadow:0 0 10px rgba(0,123,255,.8);transition:box-shadow .3s ease-in-out}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}th{text-align:center!important}@keyframes logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin 20s linear infinite}}.card{padding:2em}.read-the-docs{color:#888}p+p{margin-top:0}a{color:var(--primary-color);text-decoration:none;background-color:transparent}a:active,a:focus,a:hover{color:var(--accent-color);outline:none}a.button,button{background-color:var(--button-background-color);color:var(--button-text-color);border:none;padding:10px 20px;font-size:16px;cursor:pointer;transition:background-color .3s,color .3s,border-color .3s;border-radius:.5em;font-weight:500;min-width:var(--button-min);min-height:var(--button-min);font-family:inherit;text-align:center;text-decoration:none;display:inline-block}a.button:focus,a.button:focus-visible,a.button:hover,button:focus,button:focus-visible,button:hover{background-color:var(--button-border-color);color:var(--accent-color);outline:4px auto var(--primary-color)}p a{color:#88A5BC}button:disabled{background-color:#5C5F57}.social-links{display:flex;justify-content:center;gap:15px;margin-top:20px}.social-links a{font-size:24px;color:var(--primary-color);transition:color .3s ease}.social-links a:hover{color:var(--accent-color)}h1{font-size:3.4em;line-height:1.3;color:var(--primary-color)}h2{font-size:2.8em;line-height:1.1}h3{font-size:2em;line-height:1}.photoWrapper{width:200px;height:200px;overflow:hidden;border-radius:50%;box-shadow:0 0 0 2px var(--secondary-color)}.nav-link{display:inline-flex;align-items:center}.nav-link:before{content:attr(data-emoji);margin-right:10px}.markdown-content{max-width:800px;margin:0 auto;padding:20px;line-height:1.8;font-size:1.1em;color:var(--text-color)}.markdown-content h1{font-size:2.5rem;font-weight:700;margin-bottom:.6em}.markdown-content h2{font-size:2rem;font-weight:700;margin-bottom:.6em}.markdown-content h3{font-size:1.6rem;font-weight:700;margin-bottom:.5em}.markdown-content p{font-size:1.1rem;margin-bottom:1.2em}.markdown-content ol,.markdown-content ul{padding-left:1.5em;margin-bottom:1em}.markdown-content ul li{list-style-type:disc;margin-bottom:.5em}.markdown-content ol li{list-style-type:decimal;margin-bottom:.5em}.markdown-content blockquote{border-left:4px solid var(--primary-color);padding-left:1em;color:var(--secondary-color);font-style:italic;margin:1em 0}.markdown-content pre{background-color:#282c34;color:#f8f8f2;padding:15px;border-radius:5px;overflow-x:auto;font-family:Courier New,monospace}.markdown-content code{background-color:rgba(27,31,35,.05);padding:2px 5px;font-family:Courier New,monospace}.markdown-content table{width:100%;border-collapse:collapse;margin:1em 0}.markdown-content td,.markdown-content th{border:1px solid var(--text-color);padding:8px;text-align:left}.markdown-content th{background-color:var(--primary-color);color:white}.markdown-content hr{border:1px solid var(--secondary-color);margin:2em 0}.markdown-content input[type=checkbox]{margin-right:8px}.markdown-content a{color:var(--primary-color);text-decoration:underline}.markdown-content a:hover{color:var(--accent-color)}#profilePhoto{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:20% 80%;object-position:20% 80%;transform:scale(1.5)}#headerlogo{height:calc(1.5*var(--header-height))}.tag-container{position:absolute;bottom:10px;left:10px;display:flex;flex-wrap:wrap;gap:4px}.tag{display:inline-block;padding:2px 6px;font-size:.75em;border-radius:4px;color:#fff;white-space:nowrap}.tag-ai{background-color:#384C37}.tag-data{background-color:#88A5BC}.tag-map{background-color:#5B7A9A}.tag-food{background-color:#E1C8BC;color:#000}.tag-game{background-color:#6B9F70}.tag-education{background-color:#2A3929}.tag-nlp{background-color:#4A6A8A}.tag-fitness{background-color:#497D4E}.tag-visualization{background-color:#75A57B}.tag-productivity{background-color:#758775}.tag-habit{background-color:#5E735E}.tag-writing{background-color:#8CA5BE}.tag-tech{background-color:#475F47}.tag-learning{background-color:#BAC3BA}:root{--background:#ffffff;--foreground:#171717;--header-height:80px}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}.truncate-two-lines{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}