*{box-sizing:border-box;margin:0;padding:0}body{font-optical-sizing:auto;background:var(--bg);color:var(--text);height:100%;margin:0;padding:0;font-family:Overpass,sans-serif,system-ui;font-style:normal;line-height:1.6}a{color:var(--accent);text-decoration:none}.app-layout{flex-direction:column;flex:1;height:100%;min-height:100vh;display:flex}.navbar{background:var(--card-bg);border-bottom:1px solid var(--border);z-index:500;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;font-size:1.4rem;display:flex;position:sticky;top:0}.navbar .nav-left{align-items:center;display:flex}.navbar a{color:var(--text);align-items:center;margin-right:1rem;line-height:1;transition:color .2s,transform .1s;display:flex}.navbar a span{margin-top:5px}.navbar a:hover{color:var(--accent-hover)}.navbar a svg{margin-top:-2px;margin-right:.5rem;font-size:1.4rem}.navbar a:last-child{margin-right:0}.main-content{background:linear-gradient(0deg,var(--accent),var(--bg));flex:1;justify-content:center;align-items:stretch;display:flex}@media (max-width:768px){.navbar{flex-direction:column;align-items:flex-start}.projects-grid{grid-template-columns:1fr}.random-quote-container{padding:1rem;font-size:1rem}}.theme-menu{position:relative}.theme-panel{background:var(--card-bg);border:1px solid var(--border);z-index:1000;box-sizing:border-box;border-radius:.75rem;min-width:220px;max-width:90vw;padding:1rem;position:absolute;top:110%;right:0;box-shadow:0 4px 12px #0000004d}.theme-toggle{background:var(--text);color:var(--text-dark);cursor:pointer;border:none;border-radius:.5rem;align-items:center;padding:.4rem .8rem;font-size:1rem;font-weight:600;transition:background .2s;display:flex}.theme-toggle:hover{background:var(--accent-hover)}.theme-reset{background:var(--destructive);color:var(--text);cursor:pointer;border:none;border-radius:.25rem;width:100%;margin-top:.75rem;padding:.4rem .8rem;font-weight:600;transition:background .2s}.theme-reset:hover{background:var(--destructive-hover)}.color-row{justify-content:space-between;align-items:center;gap:1rem;min-width:200px;max-width:200px;margin-bottom:.5rem;display:flex}.color-row input[type=color]{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:20px;transition:box-shadow .2s}.color-row input[type=color]:hover{box-shadow:0 0 8px var(--accent)}.color-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-row input[type=color]::-webkit-color-swatch{border:none}.color-row input[type=color]::-moz-color-swatch{border:none;padding:0}.color-row label{font-size:.85rem}@media (max-width:800px){.theme-panel{top:110%;left:0;right:auto;transform:translate(0)}}.home{flex-direction:column;gap:2rem;width:80%;margin:0 auto;padding:5rem;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;width:100%;margin-top:2rem;margin-bottom:2rem;display:grid}.project-card{background:var(--card-bg);border:1px solid var(--border);border-radius:1rem;flex-direction:column;justify-content:space-between;height:200px;padding:2rem;transition:transform .3s,border-color .3s,box-shadow .3s,filter .3s;display:flex;box-shadow:0 2px 10px #0000001a}.project-card:hover{border-color:var(--accent);box-shadow:0 4px 20px #0003,0 0 15px var(--accent-hover);filter:brightness(1.1);transform:translateY(-6px)}.project-card h2{color:var(--accent);margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.project-card p{color:var(--text);font-size:1rem;line-height:1.5}.project-card a{color:var(--accent);margin-top:auto;font-weight:600;text-decoration:none;transition:color .3s,transform .2s}.project-card a:hover{color:var(--accent-hover);transform:scale(1.05)}.project-link{position:relative}.github-note{color:var(--text);opacity:.8;align-items:center;margin-top:1rem;font-size:.9rem;display:flex}.github-note .github-icon{color:var(--text);margin-right:.5rem}.github-note span{margin-top:2px;font-weight:500}@media (max-width:768px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.project-card{height:auto}.project-card h2{font-size:1.1rem}.project-card p{font-size:.9rem}}.footer{text-align:center;background:var(--card-bg);border-top:1px solid var(--border);width:100%;padding:1rem 0;position:fixed;bottom:0;left:0}.footer-links{justify-content:center;gap:1rem;display:flex}.footer-links a{color:var(--accent);align-items:center;text-decoration:none;transition:color .2s;display:inline-flex}.footer-links a:hover{color:var(--accent-hover)}.github-icon,.linkedin-icon{margin-right:.5rem;transform:translateY(-1px)}.main.main-content{margin:0;padding:0}.contact-page{background:var(--background);color:var(--text);flex-direction:column;padding:3rem;font-family:Overpass,sans-serif;display:flex}.contact-content{flex:1;max-width:600px;margin:0 auto}.contact-content h1{color:var(--accent);margin-bottom:1rem}.contact-content a{color:var(--accent-hover);text-decoration:underline}.random-quote-page{text-align:center;background:linear-gradient(135deg,var(--accent),var(--card-bg));color:var(--text);flex-direction:column;flex:auto;justify-content:center;align-items:center;width:100%;min-height:0;padding:2rem;display:flex}.random-quote-page h1{color:var(--accent);text-shadow:2px 2px 4px #0000004d;margin-bottom:1.5rem;font-size:2.5rem}.random-quote-container{background:var(--card-bg);border:1px solid var(--border);text-align:center;border-radius:1rem;width:100%;max-width:600px;padding:1.5rem;transition:opacity .5s,transform .5s;box-shadow:0 4px 12px #0003}.random-quote-container.fade-in{opacity:1;transform:translateY(0)}.random-quote-container.fade-out{opacity:0;transform:translateY(-20px)}.random-quote-text{color:var(--text);margin-bottom:1rem;font-size:1.5rem;font-style:italic}.random-quote-author{color:var(--accent);font-size:1.2rem;font-weight:700}.random-quote-actions{gap:1rem;margin-top:1.5rem;display:flex}.random-quote-button,.copy-quote-button{background:var(--accent);color:var(--text-dark);cursor:pointer;border:none;border-radius:.5rem;padding:.5rem 1rem;font-size:1rem;transition:background-color .3s,transform .2s}.random-quote-button:hover,.copy-quote-button:hover{background:var(--accent-hover);transform:scale(1.05)}.notification{background:var(--accent);color:var(--text-dark);z-index:1000;border-radius:.5rem;padding:.5rem 1rem;font-size:1rem;animation:3s forwards fade-in-out;position:fixed;bottom:6rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0003}@keyframes fade-in-out{0%{opacity:0;transform:translate(-50%,10px)}10%{opacity:1;transform:translate(-50%)}90%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,10px)}}@media (max-width:768px){.random-quote-page{margin-bottom:2rem;padding:1rem;font-size:1rem}.random-quote-page h1{margin-bottom:1rem}.random-quote-container{background:var(--card-bg);border:1px solid var(--border);text-align:center;border-radius:1rem;max-width:95%;padding:1.5rem;transition:opacity .5s,transform .5s;box-shadow:0 4px 12px #0003}}.pi-mnemonic-helper{text-align:center;background:linear-gradient(135deg,var(--accent),var(--card-bg));color:var(--text);flex-direction:column;flex:auto;justify-content:flex-start;align-items:center;width:100%;min-height:0;padding:2rem;display:flex}.pi-mnemonic-helper-box{background:var(--card-bg);border:1px solid var(--border);max-width:80%;color:var(--text);text-align:center;border-radius:1rem;margin:2rem auto 6rem;padding:1.5rem;font-family:Overpass,sans-serif}.pi-mnemonic-helper h1{color:var(--accent);margin-bottom:1rem}.mnemonic-input{border:1px solid var(--border);border-radius:.5rem;width:100%;margin:1rem 0;padding:.5rem;font-size:1rem}.mnemonic-words{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.mnemonic-word{border-radius:.3rem;align-items:center;height:2rem;padding:0 .5rem;font-size:1rem;font-weight:700;display:inline-flex}.valid-word{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb}.invalid-word{color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb}.word-feedback{color:#888;white-space:nowrap;margin-left:.3rem;font-size:.8rem}.feedback-container{min-height:2rem;margin-top:1rem;font-size:.8rem}.save-button{background-color:var(--accent);color:var(--text-dark);cursor:pointer;border:none;border-radius:.3rem;margin:.5rem 0;padding:.5rem 1rem;font-size:1rem}.save-button:hover{background-color:var(--accent-hover)}.saved-mnemonics{margin-top:1.5rem;padding:0;list-style:none}.saved-mnemonics h2{border-top:2px solid var(--border);color:var(--text);padding-top:1rem}.saved-mnemonic-item{background-color:var(--card-bg);border:1px solid var(--accent);border-radius:.5rem;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:2.5rem 1rem 1rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 2px 6px #0000001a}.saved-mnemonic-item:hover{border:2px solid var(--accent-hover);transform:translateY(-2px)}.saved-mnemonic-item span{color:var(--text);font-size:1rem;font-weight:700}.saved-mnemonic-item .high-score{color:var(--accent);font-size:.9rem}.button-container{justify-content:center;gap:.5rem;display:flex}.practice-button{background-color:var(--accent);color:var(--text-dark);cursor:pointer;border:none;border-radius:.3rem;padding:.4rem .8rem;font-size:.9rem;transition:background-color .2s,transform .1s}.practice-button:hover{background-color:var(--accent-hover)}.delete-button{color:var(--destructive);cursor:pointer;background:0 0;border:none;border-radius:.3rem;padding:.4rem .8rem;font-size:.9rem;transition:color .2s,background-color .2s;position:absolute;top:.5rem;right:.5rem}.delete-button:hover{background-color:var(--destructive-hover);color:var(--text)}.pi-tester{background:var(--card-bg);border:1px solid var(--border);max-width:600px;color:var(--text);text-align:center;border-radius:1rem;margin:2rem auto;padding:1.5rem;font-family:Overpass,sans-serif}.pi-tester h1{color:var(--accent);margin-bottom:1rem}.pi-input{border:1px solid var(--border);text-align:center;caret-color:#0000;border-radius:.5rem;width:200px;margin:1rem 0;padding:.5rem;font-size:1rem}.reset-button{background-color:var(--accent);color:var(--text-dark);cursor:pointer;border:none;border-radius:.3rem;margin-top:1rem;padding:.5rem 1rem;font-size:1rem}.reset-button:hover{background-color:var(--accent-hover)}.feedback{color:var(--text);margin-top:1rem;font-size:1rem}.mnemonic-display{color:var(--text);margin-bottom:1rem;font-size:1.2rem}.start-button{background-color:var(--accent);color:var(--text-dark);cursor:pointer;border:none;border-radius:.3rem;margin-top:1rem;padding:.5rem 1rem;font-size:1rem}.start-button:hover{background-color:var(--accent-hover)}.progress-display{color:var(--text);margin-top:1rem;font-size:1.5rem}.timer-display{justify-content:center;min-height:2rem;font-size:1.2rem;font-weight:700;display:flex}.timer-display strong{text-align:right;width:3rem;margin-left:.5rem;display:inline-block}.back-button{background-color:var(--card-bg);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem 1rem;font-size:1rem;text-decoration:none;transition:background-color .2s,transform .1s;display:inline-flex}.back-button:hover{background-color:var(--accent);color:var(--text-dark);transform:translateY(-2px)}.back-button svg{width:1rem;height:1rem}.fishing-game-wrapper{background:linear-gradient(135deg,var(--accent),var(--card-bg));box-sizing:border-box;flex:auto;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.fishing-game{background:var(--card-bg);width:100%;max-width:900px;min-height:90%;color:var(--text);text-align:center;box-sizing:border-box;border-radius:20px;flex-direction:column;justify-content:space-between;align-items:center;padding:1rem;display:flex;box-shadow:0 4px 12px #0003}.stats{justify-content:space-around;width:100%;max-width:800px;margin-bottom:1rem;display:flex}.lake{background:var(--info);border:2px solid var(--border);border-radius:1rem;flex:auto;width:100%;min-height:200px;margin:1rem 0;position:relative;overflow:hidden}.fish{background:var(--accent);color:var(--text-dark);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:.5rem;padding:.5rem 1rem;transition:transform .2s;position:absolute}.fish:hover{transform:scale(1.1)}.common{background:#72eea6}.rare{background:#fc0}.legendary{background:#ff4500}.actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.actions button{background:var(--accent);color:var(--text-dark);cursor:pointer;border:none;border-radius:.5rem;padding:.5rem 1rem;transition:background-color .2s;position:relative}.actions button:after{content:attr(data-tooltip);background:var(--border);color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;border-radius:.3rem;padding:.3rem .5rem;font-size:.8rem;transition:opacity .2s;position:absolute;bottom:120%;left:50%;transform:translate(-50%)}.actions button:hover:after{opacity:1}.actions button:hover{background:var(--accent-hover)}.caught-fish{text-align:left;border:1px solid var(--border);background:var(--card-bg);box-sizing:border-box;border-radius:.5rem;width:100%;margin-top:1rem}.caught-fish-title{border-bottom:1px solid var(--border);background:var(--card-bg);padding:.5rem;font-size:1.2rem;font-weight:700}.caught-fish-list{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;height:160px;padding:.5rem;display:grid;overflow:hidden auto}.caught-fish-list p{background:var(--accent);color:var(--text-dark);text-align:center;border-radius:.3rem;margin:0;padding:.5rem;font-size:.9rem;box-shadow:0 2px 4px #0000001a}.header{background-color:var(--info);color:var(--text-light);border-radius:1rem;justify-content:center;align-items:center;height:90px;margin:0 0 45px;display:flex;box-shadow:0 4px 6px #0000001a}.header>img{z-index:1;width:30px;margin-right:7px;position:relative}.header>h1{font-size:1.8rem;font-weight:600}.travel-journal-page{background-color:var(--card-bg-light);width:100%;padding:2rem}.entries{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}.entry{background:var(--background-light);border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:center;max-width:380px;padding:20px;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 4px 12px #0000001a}.entry:hover{transform:scale(1.02);box-shadow:0 8px 20px #00000026}.entry--image{object-fit:cover;border-radius:5px;width:100%;height:250px}.entry--div{color:var(--bg);margin-top:15px;font-size:1rem}.entry--marker{width:12px;margin-right:6px;position:relative;top:2px}.entry--location{letter-spacing:2px;color:var(--text-dark);margin-right:15px;font-weight:350}.entry--link{color:var(--text-dark);font-weight:200;transition:color .2s}.entry--link:hover{color:var(--accent-hover)}.entry--title{margin-top:5px;margin-bottom:10px;font-size:1.5rem;font-weight:800}.entry--date{color:#777;margin-bottom:10px;font-size:.9rem;font-weight:700}.entry--description{color:#555;font-weight:300}@media (max-width:768px){.entries{flex-direction:column;align-items:center}.entry{max-width:90%;margin-bottom:20px}}
