:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:auto}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}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}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}body{background-color:#1f1f1f;color:#fff;font-family:Lato,sans-serif;font-weight:lighter;font-style:normal;font-size:.9375rem;padding:4rem}.page-header{text-align:center;font-weight:700;font-size:2em}.overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#1f1f1f;opacity:.8;z-index:1;display:none}.overlay:hover{cursor:pointer}.search-toggle-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.search-bar{flex:0 1 40%;margin:0;border-radius:25px;background-color:#1f1f1f;display:block;padding-left:1em;color:#fff}.book-card-grid{width:100%}.book_card{width:12%;box-shadow:0 4px 12px #ffffff0d;border:solid 2px #000;border-radius:25px;margin:2rem 3rem;text-align:center;height:15rem;background-color:#292929}.book_card:hover{cursor:pointer;border-color:#fff}.book-card_details{box-shadow:0 4px 12px #ffffff0d;border-radius:25px;width:40%;text-align:center;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-height:50%;padding-top:9rem;background-color:#292929;display:none;z-index:2;margin:0}.book-title{font-size:20px}.book-author{font-size:14px;font-weight:400;font-style:italic}.book-plot{font-size:12px}.container{width:100%;margin:auto}.switch{position:relative;display:block;width:60px;height:1rem}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:"";height:1rem;width:26px;left:4px;bottom:0;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translate(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}@media (max-width: 600px){.search-toggle-row{display:none}}.job-card{display:grid;grid-template-columns:10rem 1fr;gap:1rem}.job-card-logo{width:10rem;height:10rem;object-fit:contain;margin-right:15px}.job-card-logo-link{text-decoration:none}.job-card-logo-link:hover{cursor:pointer}@media (max-width: 600px){.job-card{grid-template-columns:1fr;align-items:center}.job-card-logo{margin:0 auto .5rem}.job-card-title{font-size:1rem;text-align:center}.job-card-info{padding:0 .25rem}}.bold{font-weight:700}.block{display:block;margin:1rem 0}.center,.education,.skills,.links,.references{text-align:center}.skills ul,.education ul{list-style:none}.skills li{display:inline-block;margin:0 .5rem}.projects{display:block;text-align:center}.bookshelf-image{width:6rem;height:25rem}.bookshelf-silhouette-image{width:5rem;height:29rem;visibility:hidden}.bookshelf-hover-container{position:relative;width:6rem;height:25rem;display:inline-block}.bookshelf-hover-container .bookshelf-image{position:absolute;top:0;left:0;transition:transform .5s cubic-bezier(.77,0,.18,1);object-fit:cover;cursor:pointer;z-index:2}.bookshelf-hover-container .bookshelf-silhouette-image{position:absolute;top:-26px;left:8px;opacity:0;visibility:visible;transition:opacity .5s cubic-bezier(.77,0,.18,1);object-fit:cover;cursor:pointer;z-index:2}.bookshelf-hover-container .bookshelf-silhouette-image{z-index:1}.bookshelf-hover-container:hover .bookshelf-image{transform:translate(-95%)}.bookshelf-hover-container:hover .bookshelf-silhouette-image{opacity:1}.project-icon{width:1rem;height:1rem;margin:0 .5rem;object-fit:contain;margin-right:15px;color:#fff}.education-skills{display:grid;grid-template-columns:1fr 1fr;gap:0}.links a{display:inline-block;margin:0 .5rem;color:#fff;font-size:1.25rem;font-weight:600;padding:.25rem .4rem;text-decoration:none;transition:color .2s ease,transform .16s ease}.links a:hover,.links a:focus{color:#ccc;transform:translateY(-2px);outline:none}.section-toggle-row{display:flex;gap:1rem;justify-content:center;margin:1rem 0;flex-wrap:wrap}.toggle-btn{background:#2b2b2b;color:#fff;border:1px solid #444;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:background .2s,transform .1s;flex:1 1 140px;min-width:120px}.toggle-btn:hover{background:#3a3a3a}.toggle-btn.active{background:#6fa8dc;color:#000}.collapsible{max-height:0;overflow:hidden;opacity:0;transition:opacity .4s ease,padding .3s ease;padding:0 1rem}.collapsible.open{max-height:none;overflow:visible;opacity:1;padding:1rem}.centered-section{position:fixed;top:50%;left:50%;transform:translate(-50%,-45%) scale(.98);width:min(90%,640px);z-index:50;background:#292929;padding:1.25rem 1.5rem;border-radius:12px;box-shadow:0 10px 30px #0009;opacity:0;pointer-events:none;max-height:none;overflow:visible;transition:opacity .3s ease,transform .3s ease}.centered-section.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}@media (max-width: 420px){.centered-section{width:calc(100% - 2rem);padding:1rem;border-radius:8px}}.portfolio-home{position:relative;padding-top:6rem}.helicopter{position:fixed;top:3rem;left:0;width:40px;height:24px;transform:translate(-20vw);pointer-events:none;z-index:60;animation:helicopter-flight 8s linear infinite;will-change:transform;opacity:.95}@keyframes helicopter-flight{0%{transform:translate(-20vw) rotate(-6deg)}20%{transform:translate(10vw,-8vh) rotate(12deg)}40%{transform:translate(45vw,6vh) rotate(6deg)}60%{transform:translate(75vw,-10vh) rotate(-6deg)}80%{transform:translate(105vw,8vh) rotate(4deg)}to{transform:translate(120vw) rotate(-6deg)}}@keyframes rotor-spin{0%{transform:translate(-50%) rotate(0)}to{transform:translate(-50%) rotate(360deg)}}.helicopter-body{width:40px;height:24px;background:linear-gradient(180deg,#6fa8dc,#3a8fcc);border-radius:6px;position:relative;box-shadow:0 6px 16px #00000059;transform-origin:center;pointer-events:none}.helicopter-rotor{position:absolute;top:-7px;left:50%;transform:translate(-50%);width:60px;height:5px;background:#e6e6e6;border-radius:4px;box-shadow:0 2px 6px #00000040;animation:rotor-spin .35s linear infinite;transform-origin:50% 50%;pointer-events:none}.helicopter-rotor:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);background:#444;border-radius:50%;box-shadow:inset 0 1px #ffffff0d}@media (max-width: 600px){.helicopter{width:32px;height:18px;top:3.5rem;animation-duration:6s;transform:translate(-20vw)}.helicopter-rotor{width:48px;height:4px;top:-5px;animation-duration:.4s}.helicopter-body{width:32px;height:18px}.section-toggle-row{gap:.5rem}.toggle-btn{width:calc(50% - .5rem);padding:.65rem .8rem;font-size:.95rem}.portfolio-home{padding-top:5rem}.links a{font-size:1rem}.collapsible.open{max-height:none;overflow:visible;padding:.75rem}}@media (max-width: 420px){.toggle-btn{width:100%}.helicopter{display:none}}.skills{font-size:1rem;line-height:1.35;font-weight:600;letter-spacing:.2px;text-align:center}.skills>div{font-size:inherit}@media (max-width: 600px){.skills{font-size:1.1rem}}.education{font-size:1rem;line-height:1.35;font-weight:600;letter-spacing:.2px;text-align:center}@media (max-width: 600px){.education{font-size:1.1rem}}.about-me{font-size:1rem;line-height:1.6;padding:1rem 1.25rem;margin:.75rem auto;text-align:center;font-weight:500}.about-me .about-me-message{margin:0;font-size:inherit}@media (max-width: 600px){.about-me{font-size:1rem;padding:.75rem 1rem}}.contact{text-align:center;font-size:1.05rem;line-height:1.5;font-weight:600}.contact a{color:#6fa8dc;font-weight:700;font-size:1.05rem;text-decoration:none;margin:0 .4rem}.contact a:hover,.contact a:focus{color:#3a8fcc;text-decoration:underline}@media (max-width: 600px){.project-card-column{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.project-card h2{font-size:1.05rem;line-height:1.4}.project-card-subtitle{font-size:.95rem}}.project-card{border:1px solid #ddd;border-radius:8px;padding:16px;margin:12px;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease;word-wrap:break-word;overflow-wrap:anywhere}.project-icon{width:24px;height:24px;margin-right:8px;vertical-align:middle}.project-card-column{display:grid;grid-template-columns:repeat(auto-fill,minmax(500px,1fr));align-items:stretch}.project-card-subtitle{display:inline}.project-card a{color:#6fa8dc;font-weight:700;text-decoration:none}.project-card a:hover,.project-card a:focus{color:#3a8fcc;text-decoration:underline}@media (max-width: 600px){.project-card h2{font-size:1.05rem;line-height:1.4}.project-card a{font-size:1rem;display:inline-block;margin-top:2px}}.headshot{width:8rem;height:150px;border:solid 1px #ccc;border-radius:50%;object-fit:cover;margin:20px auto;display:block;position:fixed;top:1rem;right:2rem;z-index:1000}@media (max-width: 600px){.headshot{width:4rem;height:75px;top:.5rem;right:.5rem}}@media (max-width: 380px){.headshot{display:none}}.book-cover{width:10rem;height:15rem}.book-card-row{width:90rem;box-sizing:border-box;display:flex;flex-wrap:wrap;border-bottom:solid 1px #fff;padding-bottom:2rem;margin:2rem 0;text-align:center}.book-card-row:hover{cursor:pointer;background-color:#1f1f1f}.book-card-row-image{height:100%;width:7rem}.book-card-row-title{width:16rem;text-align:center;padding-top:4rem}.book-card-row-author{width:16rem;padding-top:4rem}.book-card-row-description{width:50rem;padding-top:3rem}@media (max-width: 600px){.book-card-row{width:100%;box-sizing:border-box;display:block;border-bottom:solid 1px #fff;padding-bottom:2rem;margin:3rem 0;text-align:center}.book-card-row-image{display:block;width:100%;margin-bottom:2rem}}
