.navbar{position:fixed;top:0;left:0;right:0;height:60px;background-color:#f5f5f5;display:flex;align-items:center;padding:0 1rem;border-bottom:1px solid #ccc;z-index:1000}.nav-left{display:flex;align-items:center;gap:2rem}.logo img{height:100px;width:auto}.nav-links{display:flex;gap:1.5rem}.nav-links a{text-decoration:none;color:#000;font-weight:400;transition:color .2s ease,font-weight .2s ease}.nav-links a.active{color:#14453d;font-weight:700;border:1px solid #3D7068;border-radius:4px;padding:2px 6px}.nav-right{display:flex;align-items:center;gap:.75rem}.nav-username{font-size:.9rem;color:#333}.nav-button{border:1px solid #3D7068;border-radius:4px;padding:4px 10px;font-size:.85rem;background-color:#14453d;color:#f5f5f5;cursor:pointer;transition:background-color .15s ease,transform .05s ease}.nav-button:hover{background-color:#3d7068;transform:translateY(-1px)}.nav-button.nav-logout{background-color:#b91c1c;border-color:#b91c1c}.nav-button.nav-logout:hover{background-color:#dc2626}:root{--projects-bg: #f4f5f7;--projects-surface: #ffffff;--projects-surface-2: #fafafa;--projects-border: rgba(0, 0, 0, .1);--projects-shadow: 0 8px 24px rgba(0, 0, 0, .08);--projects-shadow-soft: 0 4px 14px rgba(0, 0, 0, .08);--projects-text: #111827;--projects-muted: rgba(17, 24, 39, .72);--projects-muted-2: rgba(17, 24, 39, .55);--projects-accent: #2563eb;--projects-radius: 16px;--projects-radius-sm: 12px;--projects-maxw: 1100px;--projects-gap: 16px;--projects-pad: 20px}.content{max-width:var(--projects-maxw);margin:0 auto;padding:28px 16px 56px;color:var(--projects-text)}.content h1{font-size:2rem;line-height:1.15;margin:0 0 18px;letter-spacing:-.02em;text-align:center}.content p{margin:10px 0;color:var(--projects-muted)}.project-section{background:var(--projects-surface);border:1px solid var(--projects-border);border-radius:var(--projects-radius);box-shadow:var(--projects-shadow-soft);padding:var(--projects-pad);margin:0 0 18px}.project-section h2{margin:0 0 10px;font-size:1.35rem;letter-spacing:-.01em}.project-tagline{margin:0 0 14px;font-size:1.05rem;color:var(--projects-muted)}.project-images{justify-items:center;align-self:stretch}.project-image{width:100%;height:auto;display:block;border-radius:var(--projects-radius-sm);border:1px solid var(--projects-border);background:var(--projects-surface-2)}.project-meta{margin:10px 0 14px;color:var(--projects-muted-2);font-size:.95rem;line-height:1.5}.project-description{margin:10px 0 16px;color:var(--projects-text);line-height:1.6;text-align:left}.project-video{width:100%;aspect-ratio:16 / 9;border:1px solid var(--projects-border);border-radius:var(--projects-radius-sm);background:#000;margin:12px 0 18px}.project-itch-embed{margin:12px 0 18px;border-radius:var(--projects-radius-sm);overflow:hidden;border:1px solid var(--projects-border);background:var(--projects-surface-2)}.project-links{margin-top:18px;padding:16px;border-radius:var(--projects-radius-sm);background:var(--projects-surface-2);border:1px solid var(--projects-border)}.project-links h3{margin:0 0 10px;font-size:1rem;color:var(--projects-text)}.project-links ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:center}.project-links li a{width:fit-content;white-space:nowrap}.project-links li a:hover{border-color:#2563eb59;box-shadow:0 6px 18px #2563eb1a;transform:translateY(-1px)}.project-links li a:focus-visible{outline:2px solid rgba(37,99,235,.55);outline-offset:2px}.project-chip.project-chip--playable{text-decoration:none;font-weight:650;font-size:.82rem;padding:7px 12px;border-color:#2563eb66;background:#2563eb1a;color:var(--projects-text);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.project-chip--playable:hover{transform:translateY(-1px);border-color:#2563eb99;box-shadow:0 10px 20px #2563eb1f}.project-section hr{border:0;height:1px;margin:18px 0 0;background:#0000001a}.projects-list{display:grid;gap:14px}.project-module{background:var(--projects-surface);border:1px solid var(--projects-border);border-radius:var(--projects-radius);box-shadow:var(--projects-shadow-soft);overflow:hidden}.project-header{min-height:72px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--projects-surface)}.project-header:hover{background:#fbfbfc}.project-icon{width:72px;height:72px;border-radius:999px;border:1px solid var(--projects-border);background:var(--projects-surface-2);object-fit:cover;flex-shrink:0}.project-header-main{min-width:0;display:grid;gap:2px}.project-title{min-width:0;margin:0;font-size:1.05rem;font-weight:650;letter-spacing:-.01em;color:var(--projects-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-subtitle{display:block;width:100%;max-width:none;min-width:0;margin:0;font-size:.92rem;color:var(--projects-muted);white-space:normal;overflow:visible;text-overflow:clip}.project-header-right{display:inline-flex;align-items:center;gap:10px}.project-chips{display:none;gap:8px;flex-wrap:wrap;justify-content:flex-end}.project-chip{font-size:.78rem;color:var(--projects-muted);border:1px solid var(--projects-border);background:var(--projects-surface-2);padding:6px 8px;border-radius:999px;line-height:1}.project-toggle{width:34px;height:34px;border-radius:10px;border:1px solid var(--projects-border);background:var(--projects-surface-2);display:grid;place-items:center;transition:transform .16s ease,background .16s ease,border-color .16s ease}.project-module.is-open .project-toggle{transform:rotate(180deg);border-color:#2563eb59}.project-body{border-top:1px solid rgba(0,0,0,.08);padding:16px;background:#fcfcfd;display:flex;flex-direction:column;align-items:center}.project-body .project-tagline,.project-body .project-meta,.project-body .project-description{margin-left:0;margin-right:0}.project-module.is-featured{border-color:#2563eb4d;box-shadow:0 10px 28px #2563eb1a}@media (min-width: 760px){.project-images{grid-template-columns:1fr 1fr}.project-chips{display:inline-flex}.project-header{padding:14px 18px}.project-body{padding:18px}}@media (prefers-reduced-motion: reduce){.project-links li a,.project-toggle{transition:none}}.loading-image-wrapper{position:relative;width:100%}.loading-image-wrapper img{width:100%;height:auto;display:block}.image-spinner{position:absolute;inset:0;display:grid;place-items:center;background:#00000008}.image-spinner:after{content:"";width:28px;height:28px;border-radius:50%;border:3px solid rgba(0,0,0,.15);border-top-color:#2563ebe6;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.education-card{text-align:center}.education-card h2{margin:0 0 6px;font-size:1.35rem;letter-spacing:-.01em;color:var(--surface-text)}.education-card h3{margin:0 0 8px;font-size:1.05rem;color:var(--surface-muted);font-weight:600}.education-card .education-dates{text-align:center;margin:0 0 16px;font-size:.95rem;color:var(--surface-muted-2);max-width:100%}.education-card .education-description{max-width:65ch;margin:0 auto;text-align:center;line-height:1.6}.contact-subtitle{max-width:80%!important}.page-centered{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#f5f5f7;margin:0;height:100%;overflow:hidden;background:#f3f4f6}.auth-card{background:#fff;border-radius:12px;padding:2.5rem 3rem;box-shadow:0 10px 30px #0f172a1a;max-width:550px;width:100%;display:flex;flex-direction:column;gap:1.5rem}.auth-card h1{margin-bottom:1.5rem;text-align:center;font-size:1.7rem}.auth-form{display:flex;flex-direction:column;gap:1.3rem}.auth-label{display:flex;flex-direction:column;font-size:.95rem;gap:.25rem}.auth-input{padding:.6rem .75rem;border-radius:4px;border:1px solid #d1d5db;font-size:.95rem}.auth-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb4d}.auth-button{margin-top:.75rem;padding:.7rem 1rem;border-radius:4px;border:none;background:#2563eb;color:#fff;font-weight:600;cursor:pointer}.auth-button:disabled{opacity:.7;cursor:default}.auth-error{color:#b91c1c;font-size:.9rem}.auth-success{color:#166534;font-size:.9rem}.auth-switch{margin-top:1rem;text-align:center;font-size:.9rem}.admin-contacts-page{padding-top:90px;max-width:900px;margin:0 auto;padding-inline:1rem}.admin-contacts-page h1{text-align:center;margin-bottom:.5rem}.admin-contacts-subtitle{text-align:center;color:#555;margin-bottom:1.5rem}.admin-contacts-error{color:#b00020;text-align:center;margin-bottom:1rem}.contacts-grid{display:flex;flex-direction:column;gap:1rem}.contact-card{background:#fff;border-radius:8px;border:1px solid #ddd;padding:1rem;box-shadow:0 1px 4px #0000000a}.contact-card-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.contact-card-header h2{margin:0;font-size:1.1rem}.contact-email{font-size:.9rem;color:#555}.contact-message{margin:0;margin-bottom:.75rem;white-space:pre-wrap}.contact-card-footer{font-size:.8rem;color:#777}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.main-content{padding-top:80px;padding-bottom:80px;min-height:100vh;display:flex;flex-direction:column;align-items:center;text-align:center}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0}h1{font-size:3.2em;line-height:1.1}h2{font-size:2.2em}h1:after{content:"";display:block;width:40%;margin:.5rem auto 0;width:min(520px,90%);height:1px;margin:12px auto 22px;background:#0000002e;border:0}hr{display:none}p{max-width:80%;margin:0 auto;line-height:1.6}.project-image{width:80%;max-width:100%;height:auto;display:block;margin:1rem auto}.aboutme-image{width:50%;max-width:100%;height:auto;display:block;margin:1rem auto}.aboutme-description{margin:auto;color:var(--projects-text);line-height:1.6;text-align:left}.smaller-image{width:20%;max-width:40%;height:auto;display:block;margin:1rem auto}.project-video{width:80%;max-width:800px;aspect-ratio:16 / 9;display:block;margin:1rem auto;border-radius:8px;box-shadow:0 4px 12px #0003}ul{list-style-type:none;padding:0;margin:1rem auto;max-width:400px}ul li{background:#f5f5f5;margin:.5rem 0;padding:.5rem 1rem;border-radius:6px;transition:background .2s ease}ul li:hover{background:#e0e0e0}ul li a{text-decoration:none;color:#007acc;font-weight:500}ul li a:hover{text-decoration:underline}.contact-info{margin-bottom:2rem;padding:1rem;border:1px solid #ccc;border-radius:6px;background-color:#fafafa;text-align:left}.contact-info span{display:block;margin-bottom:.5rem}.contact-form{display:flex;flex-direction:column;gap:1rem;max-width:500px;margin:0 auto;text-align:left}.contact-form label{font-weight:700;margin-bottom:.25rem}.contact-form input,.contact-form textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px}.contact-form button{align-self:center;padding:.5rem 1.5rem;background-color:#3d7068;color:#fff;border:none;border-radius:4px;cursor:pointer}.contact-form button:hover{background-color:#14453d}@media (prefers-color-scheme: dark){.contact-info{background-color:#222;color:#f5f5f5}.contact-form input,.contact-form textarea{background-color:#333;color:#fff;border:1px solid #555}.contact-form button{background-color:#3d7068;color:#fff}.contact-form button:hover{background-color:#14453d}}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.new-project-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:600px;margin:2rem auto}.new-project-form label{display:flex;flex-direction:column;font-weight:600}.new-project-form input,.new-project-form textarea{padding:8px;border:1px solid #ccc;border-radius:6px;font-size:1rem}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--surface-bg: #f4f5f7;--surface-1: #ffffff;--surface-2: #fafafa;--surface-border: rgba(0, 0, 0, .1);--surface-shadow-soft: 0 4px 14px rgba(0, 0, 0, .08);--surface-text: #111827;--surface-muted: rgba(17, 24, 39, .72);--surface-muted-2: rgba(17, 24, 39, .55);--surface-radius: 16px;--surface-radius-sm: 12px;--page-maxw: 1100px;--page-pad: 20px}.page{max-width:var(--page-maxw);margin:0 auto;padding:28px 16px 56px;color:var(--surface-text)}.page h1{font-size:2rem;line-height:1.15;margin:0 0 18px;letter-spacing:-.02em;text-align:center}.page p{margin:10px 0;color:var(--surface-muted)}.card{background:var(--surface-1);border:1px solid var(--surface-border);border-radius:var(--surface-radius);box-shadow:var(--surface-shadow-soft);padding:28px 36px}.card-list{display:grid;gap:14px}.card p{max-width:75ch;margin:10px auto;text-align:center}.card h3{margin:0 0 14px;font-size:1.1rem;font-weight:650;color:var(--surface-muted);letter-spacing:-.01em;text-align:center}.card--compact{max-width:520px;width:100%;margin:0 auto}
