:root{--bg:#a2ac94;--dark:#3e4437;--accent:orangered;--green:#809c52;--white:#fff;--font-display:"Pacifico", cursive;--font-body:"NationalPark", sans-serif;--nav-h:3.5rem;--radius:.5rem;--shadow:0 2px 16px #3e44372e;--ease:.18s ease}@font-face{font-family:Pacifico;src:url(/assets/fonts/Pacifico.ttf)format("truetype");font-display:swap}@font-face{font-family:NationalPark;src:url(/assets/fonts/NationalPark.ttf)format("truetype");font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}img{max-width:100%;display:block}body{background-color:var(--bg);font-family:var(--font-body), sans-serif;color:var(--dark);font-size:calc(15px + .390625vw);line-height:1.6;overflow-x:hidden}#app{flex-direction:column;min-height:100vh;display:flex}#content{flex:1}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.enter{animation:.22s forwards fadeIn}.cursive{font-family:var(--font-display)}.hidden{display:none!important}#navbar{z-index:100;position:sticky;top:0}.navbar{background-color:var(--dark);height:var(--nav-h);justify-content:space-between;align-items:center;padding:0 1rem;display:flex;box-shadow:0 2px 10px #00000038}.brand{font-family:var(--font-display);color:#ffffff8c;-webkit-user-select:none;user-select:none;font-size:.95rem}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:6px 4px;display:flex}.bar{background-color:var(--white);width:24px;height:2px;transition:var(--ease);border-radius:2px;display:block}.nav-links{top:var(--nav-h);background-color:var(--dark);flex-direction:column;gap:1.25rem;padding:1.25rem 1.5rem;list-style:none;display:none;position:absolute;left:0;right:0;box-shadow:0 6px 20px #00000040}.nav-links.open{display:flex}.nav-link{font-family:var(--font-display);color:var(--white);transition:color var(--ease);padding-bottom:3px;font-size:1rem;text-decoration:none;position:relative}.nav-link:after{content:"";background-color:var(--accent);width:0;height:2px;transition:width var(--ease);position:absolute;bottom:-1px;left:0}.nav-link:hover,.nav-link.active{color:var(--accent)}.nav-link:hover:after,.nav-link.active:after{width:100%}.btn{font-family:var(--font-body), sans-serif;border-radius:var(--radius);border:2px solid var(--dark);background-color:var(--dark);color:var(--white);cursor:pointer;transition:color var(--ease);padding:.6em 1.4em;font-size:.88em;line-height:1.4;text-decoration:none;display:inline-block}.btn:hover{color:var(--accent)}.btn.active{background-color:var(--green);border-color:var(--green)}.btn.active:hover{color:#8b4513}.title{font-family:var(--font-display);color:var(--dark);text-align:center;margin-bottom:2rem;font-size:clamp(1.8rem,4vw,2.6rem)}.field{margin-bottom:1.1rem}.field input,.field textarea{width:100%;font-family:var(--font-body), sans-serif;background-color:var(--dark);border:1.5px solid var(--dark);border-radius:var(--radius);color:var(--white);outline:none;padding:.7em 1em;font-size:.9em}.field input::placeholder,.field textarea::placeholder{color:var(--white)}.field textarea{resize:none;min-height:130px}.error{color:var(--accent);min-height:1.1em;margin-top:.3rem;font-size:.78em;display:block}.actions{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.actions .btn{font-family:var(--font-display);flex:1}.split{grid-template-columns:1fr;gap:1.5rem;display:grid}.home{min-height:calc(100vh - var(--nav-h));justify-content:center;align-items:center;padding:1.5rem 1rem;display:flex}.home-content{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:1000px;display:flex}.home-content img{object-fit:contain;flex:1;max-width:82vw;height:auto}.about{min-height:calc(100vh - var(--nav-h));padding:1rem}.greeting{font-family:var(--font-display);color:var(--dark);text-align:center;padding:0 0;font-size:2em}.content{color:var(--dark);font-family:var(--font-body), sans-serif;padding:2em 1em;font-size:.93em;line-height:1.85}.content p{margin-bottom:1rem}.content>strong{margin-top:1.25rem;margin-bottom:.2rem;display:block}.content>strong:first-of-type{margin-top:0}.contact{min-height:calc(100vh - var(--nav-h));padding:1.5rem 1rem}.contact .split>img{display:none}.projects{min-height:calc(100vh - var(--nav-h));padding:1.5rem 1rem}.tabs{flex-flow:wrap;gap:.75rem;display:flex}.tabs .btn{flex:1}.panel{min-height:200px}.panel h2{font-family:var(--font-display);color:var(--dark);text-underline-offset:4px;margin-bottom:1.5rem;font-size:1.35rem;-webkit-text-decoration:underline #3e44374d;text-decoration:underline #3e44374d}.panel .btn{text-align:left;width:100%;margin-bottom:.75rem;display:block}#toasts{top:calc(var(--nav-h) + 1rem);z-index:200;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius);font-family:var(--font-body), sans-serif;box-shadow:var(--shadow);pointer-events:auto;white-space:nowrap;padding:.7em 1.5em;font-size:.88em;transition:opacity .35s}.toast-success{background-color:var(--dark);color:var(--white);border-left:4px solid var(--green)}.toast-error{background-color:var(--dark);color:var(--white);border-left:4px solid var(--accent)}.toast-out{opacity:0}.not-found{text-align:center;min-height:calc(100vh - var(--nav-h));flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.not-found h1{font-family:var(--font-display);font-size:clamp(2rem,6vw,4rem)}.not-found p{opacity:.7}@media (width>=641px){.navbar{padding:0 2rem}.nav-toggle{display:none}.nav-links{box-shadow:none;background:0 0;flex-direction:row;gap:2.5rem;padding:0;display:flex;position:static}.nav-link{font-size:.82rem}.home{padding:2.5rem 2rem}.home-content{flex-direction:row;gap:3rem}.home-content img{max-width:440px}.about{padding:2.5rem max(2rem,33.3333% - 253.333px)}.contact{padding:2.5rem max(2rem,33.3333% - 306.667px)}.projects{padding:2.5rem max(2rem,33.3333% - 286.667px)}.contact .split{grid-template-columns:1fr 1fr;align-items:start;gap:2.5rem}.contact .split>img{border-radius:var(--radius);place-self:start center;max-width:380px;height:auto;padding-top:.5rem;display:block}.projects .split{grid-template-columns:220px 1fr;align-items:start;gap:2rem}.tabs{flex-direction:column}.tabs .btn{text-align:left;flex:none;width:100%}.actions{flex-direction:row}}
