@import url(https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600;700;800;900&family=Caveat:wght@500;700&display=swap);*{box-sizing:border-box;margin:0;padding:0}body{background-attachment:fixed;background-color:#f4f7fa;background-color:var(--bg);background-image:radial-gradient(#d6e0ea 1px,#0000 1.2px);background-size:22px 22px;color:#3b4a5c;color:var(--text);font-family:Exo\ 2,sans-serif}button,input,select,textarea{font-family:inherit}.app-container{display:flex;min-height:100vh}:root{--ink:#1d3557;--text:#3b4a5c;--muted:#6b7a8c;--accent:#0479af;--line:#dfe7ef;--chip:#eef4fa;--bg:#f4f7fa;--nav-h:72px;--side-pad:max(50px,calc(50vw - 620px))}.main-content{position:relative;width:100%}.scroll-container{height:100vh;overflow-y:scroll;scroll-behavior:smooth;scroll-snap-type:y mandatory}.page-section{min-height:100vh;padding:82px max(50px,calc(50vw - 620px)) 50px;padding:calc(var(--nav-h) + 10px) var(--side-pad) 50px;position:relative;scroll-snap-align:start}.scroll-indicator{animation:bounce 2s infinite;bottom:30px;color:#6b7a8c;color:var(--muted);cursor:pointer;left:50%;opacity:.7;position:absolute;transform:translateX(-50%);z-index:10}@keyframes bounce{0%,20%,50%,80%,to{transform:translateX(-50%) translateY(0)}40%{transform:translateX(-50%) translateY(-20px)}60%{transform:translateX(-50%) translateY(-10px)}}h1{font-size:clamp(44px,4.6vw,64px);font-weight:900;margin-bottom:28px;margin-top:32px}h1,h2{color:#1d3557;color:var(--ink);font-family:Exo\ 2,sans-serif}h2{font-size:28px;font-weight:800;letter-spacing:.5px;margin-bottom:0}h3{font-size:35px}h3,p{font-family:Exo\ 2,sans-serif;font-weight:700}p{color:#0479af;font-size:50px;line-height:1.5}.profile-placeholder{background:#e9edf2;display:block}.visitorCount{align-self:flex-start;color:#0479af;font-size:18px;font-weight:600;margin-left:40px;margin-top:20px;text-align:left}.home-page{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 132px);min-height:calc(100vh - var(--nav-h) - 60px)}.hero-eyebrow{align-items:center;color:#1d3557;color:var(--ink);display:flex;font-size:22px;font-weight:800;gap:14px;letter-spacing:4px;text-transform:uppercase}.hero-eyebrow:before{background:#0479af;content:"";height:3px;width:40px}.hero-title{color:#1d3557;color:var(--ink);font-size:clamp(44px,min(5vw,9vh),84px);line-height:1.05;margin:1.5vh 0 3vh}.hero-why{color:#0479af}.hero-why:after{animation:caret-blink 1s steps(1) infinite;background:#0479af;content:"";display:inline-block;height:.72em;margin-left:.08em;width:.08em}@keyframes caret-blink{50%{opacity:0}}.hero-tagline{border-left:4px solid #0479af;color:#1d3557;color:var(--ink);font-size:clamp(20px,min(2vw,3.3vh),28px);font-weight:600;line-height:1.4;max-width:780px;padding-left:18px}.hero-tagline em{color:#0479af;font-style:normal;font-weight:800}.hero-body{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px #1d35570a;color:#3b4a5c;color:var(--text);font-size:clamp(16px,2.3vh,18px);font-weight:400;line-height:1.65;margin-top:3vh;max-width:800px;padding:2.2vh 24px}.hero-body strong{color:#1d3557;color:var(--ink);font-weight:600}.project-categories{display:flex;gap:80px;justify-content:center;margin:50px 0}.category-item{cursor:pointer;text-align:center}.folder-icon{align-items:center;background:#fff3;border:3px solid #0000;border-radius:10px;display:flex;height:100px;justify-content:center;margin:0 auto 15px;position:relative;transition:all .3s;width:120px}.folder-icon.active,.folder-icon:hover{border-color:#fff;transform:scale(1.1)}.category-count{background:#0479af;border-radius:50%;color:#fff;font-size:14px;font-weight:700;height:30px;justify-content:center;position:absolute;right:-10px;top:-10px;width:30px}.category-count,.view-controls{align-items:center;display:flex}.view-controls{justify-content:space-between;margin:30px 0}.view-toggle{display:flex;gap:15px}.view-btn{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:5px;color:#1d3557;color:var(--ink);cursor:pointer;display:flex;padding:10px;transition:all .3s}.view-btn.active,.view-btn:hover{background:#0479af;background:var(--accent);border-color:#0479af;border-color:var(--accent);color:#fff}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:100px}.projects-list{display:flex;flex-direction:column;gap:15px;margin-bottom:100px}.project-card{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px #1d35570a;padding:20px;transition:all .3s}.project-card:hover{background:#fff;border-color:#0479af73;box-shadow:0 10px 24px #1d355714;transform:translateY(-5px)}.project-thumbnail{background:#eef4fa;background:var(--chip);border-radius:5px;height:150px;margin-bottom:15px;object-fit:cover;width:100%}.project-stats{color:#6b7a8c;color:var(--muted);display:flex;font-size:14px;gap:15px;margin-top:10px}.stat-item{gap:5px}.like-btn,.stat-item{align-items:center;display:flex}.like-btn{background:none;border:none;color:inherit;cursor:pointer;padding:0;transition:all .3s}.like-btn.liked,.like-btn:hover{color:#ff6b6b;transform:scale(1.2)}.experience-box{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px #1d35570a;font-size:20px;margin:16px 0 40px;padding:30px}.experience-item{margin-bottom:20px}.experience-item:last-child{margin-bottom:0}.experience-title{color:#1d3557;color:var(--ink);font-size:24px;font-weight:700}.experience-detail{color:#0479af;font-size:18px;margin-top:5px}.resume-download{align-items:center;background:#0479af;border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:20px;font-weight:700;gap:10px;margin-top:20px;padding:15px 30px;transition:all .3s}.resume-download:hover{background:#035a80;transform:translateY(-3px)}.contact-page{padding-bottom:90px}.contact-headline{color:#1d3557;color:var(--ink);font-size:36px;margin:0 0 12px}.contact-lede{color:#3b4a5c;color:var(--text);font-size:20px;line-height:1.5;max-width:640px}.contact-list{display:flex;flex-direction:column;gap:16px;margin-top:40px}.contact-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.contact-lede+.contact-grid{margin-top:40px}@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}.contact-card{align-items:center;background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:20px;box-shadow:0 1px 2px #1d35570a;display:flex;gap:8px;padding:18px 20px;transition:all .3s}.contact-card:hover{background:#fff;border-color:#0479af73;box-shadow:0 10px 24px #1d355714;transform:translateY(-4px)}.contact-main{color:#1d3557;color:var(--ink);flex:1 1;gap:16px;min-width:0;text-decoration:none}.contact-icon,.contact-main{align-items:center;display:flex}.contact-icon{background:#0479af;border-radius:50%;color:#fff;flex-shrink:0;height:48px;justify-content:center;width:48px}.contact-text{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.contact-label{color:#6b7a8c;color:var(--muted);font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.contact-value{font-size:18px;font-weight:600;overflow-wrap:anywhere}.contact-action{align-items:center;background:#0000;border:none;border-radius:50%;color:#1d3557;color:var(--ink);cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:background .3s;width:36px}button.contact-action:hover{background:#eef4fa;background:var(--chip)}.site-footer{border-top:1px solid #dfe7ef;border-top:1px solid var(--line);bottom:30px;color:#6b7a8c;color:var(--muted);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;left:max(50px,calc(50vw - 620px));left:var(--side-pad);padding-top:16px;position:absolute;right:max(50px,calc(50vw - 620px));right:var(--side-pad)}.back-to-top,.site-footer{align-items:center;font-size:15px}.back-to-top{background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font-weight:600;gap:6px}.back-to-top:hover{color:#1d3557;color:var(--ink);text-decoration:underline}.login-container{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d;display:flex;justify-content:center;min-height:100vh}.login-box{background:#daeaf6;border-radius:15px;box-shadow:0 10px 40px #0000004d;padding:40px;position:relative;width:400px}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#0479af;cursor:pointer;display:flex;justify-content:center;padding:5px;position:absolute;right:15px;top:15px;transition:all .3s}.close-button:hover{background:#0479af1a;transform:scale(1.1)}.login-header{margin-bottom:30px;text-align:center}.login-title{color:#0479af;font-family:Exo\ 2,sans-serif;font-size:32px;font-weight:700;margin-top:10px}.form-group{margin-bottom:20px}.form-label{color:#0479af;display:block;font-weight:600;margin-bottom:8px}.form-input,.form-label{font-family:Exo\ 2,sans-serif;font-size:16px}.form-input{border:2px solid #0479af;border-radius:8px;padding:12px;width:100%}.error-message{background:#ff6b6b;border-radius:8px;font-size:14px;margin-bottom:20px;padding:10px;text-align:center}.error-message,.login-button{color:#fff;font-family:Exo\ 2,sans-serif}.login-button{background:#0479af;border:none;border-radius:8px;cursor:pointer;font-size:18px;font-weight:700;padding:12px;transition:all .3s;width:100%}.login-button:hover{background:#035a80}.test-credentials{background:#0479af1a;border:1px solid #0479af;border-radius:8px;font-family:Exo\ 2,sans-serif;margin-bottom:20px;padding:10px;text-align:center}.test-credentials p{color:#0479af;font-size:12px;font-weight:400;margin:0;opacity:.8}.admin-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0003;min-height:100vh;padding:40px}.admin-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:40px}.admin-title{color:#fff;font-family:Exo\ 2,sans-serif;font-size:48px;font-weight:900}.admin-actions{display:flex;gap:15px}.btn-back{background:#0479af;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Exo\ 2,sans-serif;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-back:hover{background:#035a80}.btn-logout{align-items:center;background:#ff6b6b;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:Exo\ 2,sans-serif;font-size:16px;font-weight:600;gap:10px;padding:12px 24px;transition:all .3s}.btn-logout:hover{background:#ff5252}.admin-section{background:#daeaf6;border-radius:15px;margin-bottom:30px;padding:30px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.section-title{color:#0479af;font-size:32px;font-weight:700}.btn-edit,.section-title{font-family:Exo\ 2,sans-serif}.btn-edit{align-items:center;background:#0479af;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s}.btn-edit:hover{background:#035a80}.edit-actions{display:flex;gap:10px}.btn-save{align-items:center;background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:Exo\ 2,sans-serif;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s}.btn-save:hover{background:#45a049}.btn-cancel{align-items:center;background:#ff6b6b;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:Exo\ 2,sans-serif;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s}.btn-cancel:hover{background:#ff5252}.admin-label{color:#0479af;display:block;font-family:Exo\ 2,sans-serif;font-size:16px;font-weight:600;margin-bottom:8px}.admin-textarea{min-height:100px;resize:vertical}.admin-input,.admin-textarea{border:2px solid #0479af;border-radius:8px;font-family:Exo\ 2,sans-serif;font-size:14px;padding:12px;width:100%}.admin-display-box{background:#fff;border-radius:8px;color:#333;font-family:Exo\ 2,sans-serif;min-height:50px;padding:12px}.subsection-title{color:#0479af;font-family:Exo\ 2,sans-serif;font-size:20px;font-weight:700;margin-bottom:10px}.admin-table-container{background:#fff;border-radius:8px;overflow-x:auto;padding:15px}.admin-table{border-collapse:collapse;width:100%}.admin-table thead tr{border-bottom:2px solid #0479af}.admin-table th{color:#0479af;font-weight:700;text-align:left}.admin-table td,.admin-table th{font-family:Exo\ 2,sans-serif;padding:10px}.admin-table td{border-bottom:1px solid #ddd;color:#333}.table-input{border:1px solid #0479af;border-radius:4px;font-family:Exo\ 2,sans-serif;font-size:14px;padding:8px;width:100%}.back-to-list-btn{align-items:center;background:#fff3;border:2px solid #fff;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-family:Exo\ 2,sans-serif;font-size:18px;font-weight:700;gap:10px;margin-bottom:30px;padding:12px 24px;transition:all .3s}.back-to-list-btn:hover{background:#0479af66;transform:translateX(-5px)}.project-detail-container{margin-bottom:100px}.project-detail-header{margin-bottom:40px}.project-detail-header h1{color:#1d3557;color:var(--ink);font-size:clamp(40px,4vw,56px);margin-bottom:20px}.project-detail-content{display:flex;flex-direction:column;gap:40px}.project-detail-image{margin:0 auto;max-width:800px;width:100%}.project-detail-image img{border-radius:15px;box-shadow:0 10px 30px #1d35571a;height:auto;width:100%}.project-detail-image img,.project-detail-info{border:1px solid #dfe7ef;border:1px solid var(--line)}.project-detail-info{background:#fff;border-radius:15px;box-shadow:0 1px 2px #1d35570a;padding:40px}.project-detail-section{margin-bottom:30px}.project-detail-section h3{color:#1d3557;color:var(--ink);font-family:Exo\ 2,sans-serif;font-size:32px;font-weight:700;margin-bottom:15px}.project-detail-section p{color:#3b4a5c;color:var(--text);font-family:Exo\ 2,sans-serif;font-size:20px;font-weight:400;line-height:1.6}.project-detail-stats{border-bottom:1px solid #dfe7ef;border-bottom:1px solid var(--line);border-top:1px solid #dfe7ef;border-top:1px solid var(--line);display:flex;gap:40px;margin-bottom:30px;padding:20px 0}.detail-stat-item{align-items:center;color:#1d3557;color:var(--ink);display:flex;font-family:Exo\ 2,sans-serif;font-size:20px;font-weight:600;gap:12px}.detail-stat-item .like-btn{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;padding:0;transition:all .3s}.detail-stat-item .like-btn.liked,.detail-stat-item .like-btn:hover{color:#ff6b6b;transform:scale(1.2)}.project-detail-actions{display:flex;flex-wrap:wrap;gap:20px}.project-action-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-family:Exo\ 2,sans-serif;font-size:18px;font-weight:700;gap:10px;padding:15px 30px;text-decoration:none;transition:all .3s}.github-btn{background:#333;color:#fff}.github-btn:hover{background:#24292e;box-shadow:0 5px 15px #0000004d;transform:translateY(-3px)}.download-btn{background:#0479af;color:#fff}.download-btn:hover{background:#035a80;box-shadow:0 5px 15px #0479af4d;transform:translateY(-3px)}.project-card{cursor:pointer}.project-card:hover{transform:translateY(-8px)}@media (max-width:768px){.project-detail-header h1{font-size:50px}.project-detail-info{padding:25px}.project-detail-stats{flex-direction:column;gap:20px}.project-detail-actions{flex-direction:column}.project-action-btn{justify-content:center;width:100%}}.category-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.btn-add-project{align-items:center;background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-family:Exo\ 2,sans-serif;font-size:14px;font-weight:600;gap:8px;padding:8px 16px;transition:all .3s}.btn-add-project:hover{background:#45a049;transform:scale(1.05)}.btn-delete-project{align-items:center;background:#ff6b6b;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .3s}.btn-delete-project:hover{background:#ff5252;transform:scale(1.1)}.admin-table td:last-child,.admin-table th:last-child{text-align:center;width:60px}.table-input:invalid{border-color:#ff6b6b}.table-input:focus:invalid{outline:2px solid #ff6b6b}.table-select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%230479AF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid #0479af;border-radius:4px;color:#333;cursor:pointer;font-family:Exo\ 2,sans-serif;font-size:14px;padding:8px 32px 8px 10px;width:100%}.table-select:focus{outline:2px solid #0479af59;outline-offset:1px}.admin-table td.row-actions-cell,.admin-table th.row-actions-cell{white-space:nowrap;width:1%}.row-actions{display:flex;gap:6px}.icon-btn,.row-actions{align-items:center;justify-content:center}.icon-btn{background:#0479af;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:15px;font-weight:700;height:30px;padding:0;transition:background .2s;width:30px}.icon-btn:hover:not(:disabled){background:#035a80}.icon-btn:disabled{cursor:default;opacity:.3}.icon-btn.danger{background:#ff6b6b}.icon-btn.danger:hover{background:#ff5252}.asset-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.asset-card{background:#fff;border-radius:12px;display:flex;flex-direction:column;padding:16px}.asset-preview{align-items:center;background:#f1f6fa;border-radius:8px;display:flex;height:180px;justify-content:center;overflow:hidden}.asset-preview img{height:100%;object-fit:cover;width:100%}.asset-preview-profile .profile-placeholder,.asset-preview-profile img{border:3px solid #ccc;border-radius:50%;height:160px;width:160px}.asset-file-link{align-items:center;color:#0479af;display:flex;flex-direction:column;font-weight:600;gap:8px;text-decoration:none}.asset-status{color:#1d3557;font-size:14px;margin:10px 0}.asset-actions{display:flex;gap:10px;margin-top:auto}.asset-actions button:disabled{cursor:not-allowed;opacity:.6}.asset-empty{color:#6b7a8c;font-size:14px}.entry-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:space-between}.entry-period{align-items:center;color:#6b7a8c;color:var(--muted);display:inline-flex;font-size:18px;font-weight:600;gap:6px;white-space:nowrap}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag{background:#eef4fa;background:var(--chip);border:1px solid #d6e3ef;border-radius:999px;color:#1d3557;color:var(--ink);font-size:15px;font-weight:600;padding:4px 14px}.tool-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0 100px}.tool-card{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:20px;box-shadow:0 1px 2px #1d35570a;padding:24px 28px}.tool-category{color:#6b7a8c;color:var(--muted);font-size:15px;font-weight:700;letter-spacing:2px;margin-bottom:16px;text-transform:uppercase}.tool-chip{background:#fff;border:1px solid #cfdbe7;border-radius:999px;color:#1d3557;color:var(--ink);font-size:17px;font-weight:600;padding:6px 16px}@media (max-width:900px){.tool-grid{grid-template-columns:1fr}}.research-list{display:flex;flex-direction:column;gap:30px;margin:30px 0 100px}.research-card{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px #1d35570a;padding:30px}.research-title{color:#1d3557;color:var(--ink);font-size:28px;margin:0}.research-meta{color:#3b4a5c;color:var(--text);display:flex;flex-wrap:wrap;font-size:18px;gap:6px 20px;margin-top:8px}.research-footer span,.research-link,.research-meta span{align-items:center;display:inline-flex;gap:6px}.research-meta .research-role{color:#0479af;font-weight:700}.research-card .tag-list{margin-top:16px}.research-block{margin-top:20px}.research-label{color:#0479af;font-size:14px;font-weight:700;letter-spacing:1.5px;margin-bottom:6px}.research-question{border-left:3px solid #0479af;color:#1d3557;color:var(--ink);font-size:20px;font-style:italic;font-weight:600;padding-left:12px}.research-text{color:#3b4a5c;color:var(--text);font-size:18px;line-height:1.5}.research-footer{border-top:1px solid #dfe7ef;border-top:1px solid var(--line);color:#3b4a5c;color:var(--text);display:flex;flex-wrap:wrap;font-size:16px;gap:8px 24px;margin-top:20px;padding-top:16px}.research-link{color:#0479af;color:var(--accent);font-weight:700;text-decoration:none}.research-link:hover{text-decoration:underline}.date-cell{width:150px}.research-edit-card{background:#fff;border-radius:8px;margin-bottom:15px;padding:15px}.research-edit-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.research-edit-grid{grid-gap:0 16px;display:grid;gap:0 16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.research-edit-field{display:block;margin-bottom:12px}.research-edit-field .admin-label{margin-bottom:4px}.topnav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;border-bottom:1px solid #e6ecf2;gap:24px;height:72px;height:var(--nav-h);left:0;padding:0 max(50px,calc(50vw - 620px));padding:0 var(--side-pad);position:fixed;right:0;top:0;z-index:100}.topnav,.topnav-brand{align-items:center;display:flex}.topnav-brand{flex-shrink:0;gap:18px}.topnav-menu-wrap{position:relative}.topnav-photo-btn{-webkit-touch-callout:none;background:none;border:none;border-radius:12px;cursor:pointer;display:block;padding:0;transition:transform .2s,box-shadow .2s;-webkit-user-select:none;user-select:none}.topnav-photo-btn:hover,.topnav-photo-btn[aria-expanded=true]{box-shadow:0 0 0 3px #0479af2e;transform:translateY(-1px)}.topnav-menu{animation:menu-pop .16s ease-out;background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #1d355724;left:0;min-width:160px;padding:6px;position:absolute;top:calc(100% + 10px);transform-origin:top left}@keyframes menu-pop{0%{opacity:0;transform:translateY(-6px) scale(.97)}}.topnav-menu-item{align-items:center;background:none;border:none;border-radius:8px;color:#1d3557;color:var(--ink);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:10px;padding:10px 12px;text-align:left;width:100%}.topnav-menu-item:hover{background:#eef4fa;background:var(--chip);color:#0479af;color:var(--accent)}.topnav-name{background:none;border:none;color:#1d3557;color:var(--ink);cursor:pointer;font-size:16px;font-weight:800;letter-spacing:1.5px;padding:0;white-space:nowrap}.topnav-photo{-webkit-user-drag:none;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:12px;height:44px;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:44px}.topnav-links{display:flex;gap:6px;justify-content:flex-end;margin-left:auto;margin-right:-14px;overflow-x:auto;scrollbar-width:none}.topnav-link{background:none;border:none;color:#1d3557;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:.5px;padding:10px 14px;position:relative;transition:color .2s;white-space:nowrap}.topnav-link:after{background:#0479af;border-radius:2px;bottom:2px;content:"";height:3px;left:14px;position:absolute;right:14px;transform:scaleX(0);transition:transform .25s}.topnav-link.active,.topnav-link:hover{color:#0479af}.topnav-link.active:after{transform:scaleX(1)}@media (max-width:900px){.topnav-name{display:none}.topnav-links{justify-content:flex-start}}.hero-grid{grid-gap:56px;align-items:center;display:grid;gap:56px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}@media (max-width:1000px){.hero-grid{grid-template-columns:1fr}.whiteboard{max-width:520px}}.whiteboard{background:#fff;border:1px solid #dfe7ef;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 60px #1d355714;justify-self:center;max-width:560px;padding:10px;width:100%}.whiteboard-svg{aspect-ratio:4/3;background-color:#fbfdff;background-image:linear-gradient(#edf2f7 1px,#0000 0),linear-gradient(90deg,#edf2f7 1px,#0000 0);background-position:-1px -1px;background-size:28px 28px;border-radius:14px;display:block;width:100%}.wb-text{fill:#1d3557;fill:var(--ink);font-family:Caveat,cursive;font-weight:700}.wb-text.accent{fill:#0479af;fill:var(--accent)}.wb-ink circle,.wb-ink line,.wb-ink path{fill:none;stroke:#0479af;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.wb-ink .wb-dot{fill:#0479af;fill:var(--accent);stroke:none}.wb-ink .wb-node{fill:#fff;stroke:#0479af;stroke:var(--accent);stroke-width:2.6}.wb-ink .wb-dashed{stroke-dasharray:5 7}.wb-ink{animation:wb-erase var(--cycle) linear forwards}@keyframes wb-erase{0%,90%{opacity:1}96%,to{opacity:0}}.wb-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:wb-draw var(--t) ease-out var(--d) forwards}@keyframes wb-draw{to{stroke-dashoffset:0}}.wb-char{fill-opacity:0;animation:wb-char-in .18s linear var(--d) forwards}@keyframes wb-char-in{to{fill-opacity:1}}.wb-fade{animation:wb-in .18s linear var(--d) forwards;opacity:0}.wb-ink .wb-dashed.wb-fade{animation-name:wb-in-dashed}@keyframes wb-in{to{opacity:1}}@keyframes wb-in-dashed{to{opacity:.5}}@media (prefers-reduced-motion:reduce){.wb-draw,.wb-fade,.wb-ink{stroke-dashoffset:0;animation:none;opacity:1}.wb-char{fill-opacity:1;animation:none}.wb-ink .wb-dashed.wb-fade{opacity:.5}}
/*# sourceMappingURL=main.94f5dc74.css.map*/