*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:#2c3e50;background:#fff;font-family:Lato,Arial,sans-serif;font-size:15px;line-height:1.42857143}h1,h2,h3,.brand,.navbar a,.button{font-family:Montserrat,Arial,sans-serif}h1,h2,h3{font-weight:700;text-transform:uppercase;line-height:1.1}h1{margin:20px 0 10px}h2{font-size:45px;margin:0;text-align:center}h3{font-size:26px;margin:20px 0 30px}p{font-size:20px;margin:0 0 10px}a{color:#18bc9c;text-decoration:none}a:hover,a:focus{text-decoration:underline}button,input,textarea,select{font:inherit}button,a,input[type=submit]{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;height:auto}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #bc5318;outline-offset:4px}.container{width:1170px;max-width:100%;padding:0 15px;margin:auto}.navbar{background:#2c3e50;color:white;position:fixed;top:0;left:0;right:0;z-index:20;padding:25px 0;transition:padding .25s}.nav-inner{display:flex;align-items:center;justify-content:space-between}.navbar a{color:white;font-weight:700;text-transform:uppercase}.brand{font-size:30px;line-height:1.1}.navbar ul{display:flex;gap:0;list-style:none;margin:0;padding:0}.navbar li a{display:block;padding:15px;letter-spacing:1px}.navbar li a:hover{color:#18bc9c;text-decoration:none}.navbar.compact{padding:10px 0}.navbar.compact .brand{font-size:22.5px}.menu-toggle{display:none;background:#18bc9c;color:white;border:0;border-radius:4px;padding:8px 12px;font-size:20px}.hero{text-align:center;color:white;background:#18bc9c;padding:200px 0 100px}.hero img{display:block;margin:0 auto 20px;width:256px;height:256px;object-fit:contain}.hero h1{font-size:71.25px}.skills{font-size:26.25px;font-weight:300}section{padding:100px 0}.star{border:0;border-top:5px solid #2c3e50;margin:25px auto 30px;max-width:250px;text-align:center;overflow:visible}.star:after{content:'★';display:inline-block;position:relative;top:-.8em;font-size:30px;background:#fff;padding:0 .25em}.star.light{border-color:#fff}.star.light:after{background:#18bc9c;color:#fff}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.portfolio-card{display:block;position:relative}.project-image{display:block;width:100%;height:auto}.caption{position:absolute;inset:0;background:rgba(24,188,156,.9);opacity:0;display:flex;justify-content:center;align-items:center;color:white;font-size:48px;transition:opacity .25s}.portfolio-card:hover .caption,.portfolio-card:focus .caption{opacity:1}.success{background:#18bc9c;color:white;text-align:center}.about-columns{max-width:780px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;text-align:left}.about-columns>p{padding:0 15px}.resume-button{display:inline-block;border:2px solid white;border-radius:6px;color:white;padding:10px 16px;margin-top:15px;font-size:20px;line-height:1.333}.resume-button:hover{background:white;color:#18bc9c;text-decoration:none}.contact-form{max-width:750px;margin:auto}.form-field{border-bottom:1px solid #eee;padding:0 0 10px;position:relative}.form-field label{display:block;font-size:13px;color:#536477;margin-top:10px}.form-field input,.form-field textarea{border:0;width:100%;padding:10px 0;font-size:22.5px;line-height:1.428;color:#2c3e50;background:transparent;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#79838b}.button,input[type=submit]{display:inline-block;color:white;background:#2c3e50;border:1px solid transparent;border-radius:4px;padding:10px 15px;font-size:15px;font-weight:400;cursor:pointer;text-decoration:none}.send-button{background:#18bc9c!important;font-size:18px!important;padding:10px 16px!important;margin-top:25px}.footer-above{padding:50px 0;background:#2c3e50;color:#fff}.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center;gap:30px}.footer-below{padding:25px 15px;background:#233140;color:white;text-align:center}.social-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:0;list-style:none}.social-links a{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border:2px solid white;border-radius:50%;color:white;font-size:20px}.social-links a:hover{background:white;color:#18bc9c;text-decoration:none}.project-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;list-style:none;padding:0;font-size:15px;margin:30px 0}.modal-body{max-width:810px;position:relative;text-align:center}.modal-body>p{max-width:750px;margin:30px auto}.modal-image{display:block;margin:auto}.close-modal{font-family:Arial,sans-serif;position:absolute;right:15px;top:-75px;color:#2c3e50;font-size:72px;font-weight:200;line-height:1}.portfolio-modal{border-top:1px solid #eee}.portfolio-enhanced .portfolio-modal{display:none}.portfolio-enhanced .portfolio-modal.is-open{display:block;position:fixed;inset:0;z-index:50;background:white;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:auto}.modal-open{overflow:hidden}.notice,.errors{padding:15px;border:1px solid #18bc9c;margin:10px 0}.errors{border-color:#c0392b;color:#9f2d20}.sr-only,.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:10px;z-index:99;background:white;padding:10px}.skip-link:focus{top:10px}.preview-banner{position:relative;z-index:30;padding:15px;background:#fff3c8;color:#2c3e50}.staff-login{max-width:600px;margin:60px auto;padding:30px}.staff-login label{display:block}.staff-login input{padding:12px;max-width:100%;margin-bottom:15px}.admin-header{background:#2c3e50;color:white;padding:20px}.admin-header .container{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.admin-header a{color:white}.admin-main{padding-top:30px;padding-bottom:60px}.admin-main h1{font-size:30px}.admin-main h2{font-size:24px;text-align:left}.admin-main p{font-size:16px}.admin-nav,.admin-tabs,.admin-actions{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:25px}.admin-form{display:grid;gap:15px;max-width:950px}.admin-form label{display:block}.admin-form input:not([type=checkbox]),.admin-form textarea,.admin-form select{padding:10px;border:1px solid #9baab4;border-radius:4px;max-width:100%;width:100%}.admin-form textarea[name='content[data_json]']{font-family:monospace;font-size:14px}.admin-notice{padding:20px;background:#e3f7f1}.admin-stats{display:flex;gap:30px;flex-wrap:wrap;margin-bottom:30px}.admin-stats strong{display:block;font-size:36px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;margin-bottom:30px}td,th{padding:12px;border-bottom:1px solid #ccc;text-align:left}.meta{color:#536477;font-size:14px}.button-outline{background:white;color:#2c3e50;border-color:#2c3e50}
@media(max-width:1199px){.container{width:970px}.hero h1{font-size:60px}}
@media(max-width:991px){.container{width:750px}.hero h1{font-size:48px}.footer-grid{gap:25px}.about-columns{max-width:100%}}
@media(max-width:767px){html{scroll-padding-top:72px}.container{width:auto}.navbar,.navbar.compact{padding:10px 0}.brand,.navbar.compact .brand{font-size:19px}.nav-inner{flex-wrap:wrap}.menu-toggle{display:block}.navbar ul{width:100%;display:block;padding-top:10px}.navbar.enhanced ul{display:none}.navbar.enhanced ul.open{display:block}.navbar li a{padding:10px 0}.hero{padding:130px 0 50px}.hero h1{font-size:30px}.hero .skills{font-size:18.75px}.hero img{width:256px;max-width:80%;height:auto}section{padding:75px 0}h2{font-size:36px}.portfolio-grid{grid-template-columns:1fr;gap:30px}.about-columns,.footer-grid{grid-template-columns:1fr}.about-columns>p{padding:0;margin-bottom:15px}.footer-grid>div{padding-bottom:20px}.modal-body{padding:0 20px}.close-modal{right:20px;top:-65px}.project-meta{display:block}.project-meta li{margin:10px 0}.form-field input,.form-field textarea{font-size:20px}}
@media(max-width:479px){.portfolio-grid{grid-template-columns:1fr;gap:30px}h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.footer-grid p a{text-decoration:underline}.admin-form fieldset img{max-width:300px;display:block;margin-bottom:15px}
