:root{--bg:#ecfeff;--surface:#fff;--text:#0b1f3a;--muted:#5b6b7f;--primary:#2866cf;--primary-hover:#1b4494;--sky:#96d1f7;--sand:#e6c788;--brick:#b72818;--radius:4px;--font:"EB Garamond",Georgia,"Times New Roman",serif;--shadow:0 1px 4px #0b1f3a14}#root{width:100%;max-width:none;margin:0;padding:0}html{font-size:112.5%}body{background:var(--bg);color:var(--text);font-family:var(--font)}button,input,textarea{font-family:inherit}html,body{width:100%;margin:0;padding:0;overflow-x:hidden}*{box-sizing:border-box;max-width:100%}.homePage{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);padding:60px 20px}.about{text-align:center;max-width:800px;margin-bottom:100px;margin-left:auto;margin-right:auto;padding:0 20px 60px}.about h3{color:var(--muted);margin-bottom:25px;font-size:1.5rem;font-weight:400}.about p{color:var(--text);margin-bottom:40px;font-size:1.15rem;line-height:1.8}.socialButtons{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.socialButton{border:2px solid var(--primary);color:var(--primary);border-radius:var(--radius);z-index:1;background:0 0;align-items:center;gap:8px;padding:12px 24px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s;display:flex;position:relative;overflow:hidden}.socialButton:hover{color:#fff;background:var(--primary);transform:translateY(-1px)}.socialButton .icon{font-size:1.2rem;font-weight:700}.sectionHeading{color:var(--primary);margin-bottom:40px;font-size:2.5rem;font-weight:700;display:inline-block;position:relative}.sectionHeading:after{content:"";background:var(--sand);width:60%;height:3px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.endeavors{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);flex-direction:column;gap:0;max-width:1200px;margin:0 auto 30px;padding:40px;display:flex}.endeavors:has(.endeavorsImages){grid-template-columns:1fr 1fr;margin-bottom:30px}.endeavorsText{padding-right:20px}.endeavorsImages img{border-radius:var(--radius);width:100%;height:auto;box-shadow:var(--shadow);transition:transform .3s}.endeavorBlock{grid-template-columns:1fr;align-items:center;gap:40px;display:grid}.endeavorBlock:has(.endeavorsImages){grid-template-columns:1fr 1fr}.projects{text-align:center;max-width:1400px;margin:0 auto 100px;padding:40px 20px}.projects .sectionHeading{margin-bottom:20px}.viewAllProjectsButton{border:2px solid var(--primary);border-radius:var(--radius);cursor:pointer;background:0 0;margin-bottom:40px;padding:0;transition:all .3s;display:inline-block;position:relative;overflow:hidden}.viewAllProjectsButton a{z-index:1;color:var(--primary);padding:14px 35px;font-size:1.1rem;font-weight:600;text-decoration:none;transition:color .3s;display:block;position:relative}.viewAllProjectsButton:hover a{color:#fff;background:var(--primary)}.viewAllProjectsButton:hover{transform:translateY(-2px)}.projectsGrid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px;margin-top:40px;display:grid}.projectCard{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);box-shadow:var(--shadow);cursor:pointer;color:inherit;padding:35px;text-decoration:none;transition:all .3s;display:block;position:relative;overflow:hidden}.projectCard>*{z-index:1;position:relative}.projectCard:hover{border-color:var(--primary)}.projectButton{border:2px solid var(--primary);border-radius:var(--radius);cursor:pointer;width:100%;color:var(--primary);background:0 0;margin-top:20px;padding:12px 25px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s;position:relative;overflow:hidden}.projectButton:hover{color:#fff;background:var(--primary)}.viewAllProjectsButtonWrapper{justify-content:center;margin-top:40px;display:flex}.viewAllProjectsButton{border:2px solid var(--primary);border-radius:var(--radius);color:var(--primary);padding:14px 35px;font-size:1.1rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block;position:relative;overflow:hidden}.viewAllProjectsButton:hover{color:#fff;background:var(--primary);transform:translateY(-1px)}.hobbies{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);grid-template-columns:1fr 1fr;align-items:start;gap:60px;max-width:1200px;margin:0 auto 100px;padding:40px;display:grid}.hobbiestext{padding-right:20px}.activityHeading{color:var(--primary);margin-top:30px;margin-bottom:8px;font-size:1.6rem;font-weight:600}.activitySubheading{color:var(--primary);letter-spacing:.5px;margin-bottom:15px;font-size:1rem;font-weight:500}.activityBody{color:var(--text);margin-bottom:20px;font-size:1.05rem;line-height:1.7}.activityBody a{color:inherit;text-decoration:underline}.hobbiesCarousel{justify-content:center;align-items:center;height:100%;display:flex}.carouselWrapper{flex-direction:column;align-items:center;gap:15px;display:flex}.carouselContainer{border-radius:var(--radius);width:400px;height:920px;box-shadow:var(--shadow);border:2px solid var(--sky);position:relative;overflow:hidden}.carouselTrack{will-change:transform;flex-direction:column;gap:10px;display:flex}.carouselImageWrapper{flex-shrink:0;width:400px;height:300px}.carouselImage{object-fit:cover;width:100%;height:100%;display:block}.carouselButton{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:12px 30px;font-size:1.2rem;font-weight:700;transition:all .3s}.carouselButton:hover{transform:scale(1.02)}.carouselButton:active{transform:scale(.95)}@media (max-width:1024px){.endeavors,.endeavorBlock,.hobbies{grid-template-columns:1fr;gap:40px}.endeavorsText,.hobbiestext{padding-right:0}.projectsGrid{grid-template-columns:1fr}}@media (max-width:768px){.about h1{font-size:2.8rem}.about h3{font-size:1.2rem}.sectionHeading{font-size:2rem}.carouselContainer{width:300px;height:740px}.carouselImageWrapper{width:300px;height:240px}.endeavors,.hobbies,.projects{margin:0 auto 30px;padding:30px 20px}}@media (max-width:480px){.homePage{padding:40px 15px}.about h1{letter-spacing:-.5px;font-size:2.2rem}.about p{font-size:1rem}.socialButtons{flex-direction:column;align-items:center}.socialButton{justify-content:center;width:100%;max-width:250px}.carouselContainer{width:250px;height:620px}.carouselImageWrapper{width:250px;height:200px}.projectsGrid{grid-template-columns:1fr}}.carouselButton:hover{background:var(--primary-hover)}#root{text-align:center;background-color:#fff;justify-content:center;max-width:none;min-height:100vh;margin:0 auto}.funPageRoot{padding-top:var(--nav-bar-height,10%)}.smiles{justify-content:center;align-items:center;display:flex}.smileyFace{will-change:filter;height:clamp(5em,15vw,12em);padding:clamp(.8em,3vw,2em);transition:filter .3s;animation:20s linear infinite logo-spin}.upsideDownSmileyFace{will-change:filter;height:clamp(5em,15vw,12em);padding:clamp(.8em,3vw,2em);transition:filter .3s;animation:10s linear infinite logo-spin}.smileyFace:hover,.upsideDownSmileyFace:hover{animation:1s linear infinite logo-spin}h1{margin:clamp(.5em,2vw,1.5em) 0;font-size:clamp(1.8em,6vw,3.5em)}.rickRollButton{background:var(--primary);color:#fff;z-index:1100;border-radius:var(--radius);letter-spacing:.05em;cursor:pointer;text-transform:uppercase;border:none;padding:clamp(.6em,1.5vw,1em);font-size:clamp(.8em,1.5vw,1.1em);font-weight:600;transition:top .3s,left .4s,transform .2s,box-shadow .3s;position:absolute}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cookie{justify-content:center;align-items:center;padding:clamp(1em,3vw,3em);display:flex}.cookieButton{cursor:pointer;border-radius:var(--radius);background-color:bisque;border:clamp(.15em,.5vw,.3em) solid #6d4c00;outline:none;justify-content:center;align-items:center;min-width:clamp(6em,20vw,10em);min-height:clamp(6em,20vw,10em);padding:clamp(.8em,2vw,1.5em);font-size:clamp(.9em,2vw,1.3em);transition:all .3s;display:flex}.cookieButton:hover{transform:scale(1.02);border-color:#6d4c00!important}.cookieButton:focus,.cookieButton:focus-visible{border-color:#6d4c00!important;outline:none!important}.cookieImage{object-fit:contain;width:clamp(3.5em,12vw,6em);height:clamp(3.5em,12vw,6em);animation:.3s cookieAppear}.cookieText{font-size:clamp(.9em,2.5vw,1.5em);font-weight:700}@keyframes cookieAppear{0%{opacity:0}to{opacity:1}}.instructions{color:var(--muted);margin:clamp(.5em,1vw,1em) 0;font-size:clamp(1.2em,4vw,2em);font-weight:500}.projectsPage{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);padding:60px 20px}.about{text-align:center;margin-bottom:80px;padding:0 20px 40px}.about h1{color:var(--primary);letter-spacing:-.5px;margin-top:0;margin-bottom:10px;font-size:3.5rem;font-weight:700}.about p{color:var(--muted);margin-bottom:30px;font-size:1.2rem;font-style:italic}.socialButtons{justify-content:center;gap:20px;margin-top:20px;display:flex}.socialButtons button{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:12px 30px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s}.socialButtons button a{color:#fff;text-decoration:none}.socialButtons button:hover{transform:translateY(-2px)}.PokerCalc,.LionSwipe,.Zodoku,.FlappyBird,.PanicAtThePigPen,.VideoPoker,.TreeGame,.LocomotivesWebsite{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);max-width:900px;box-shadow:var(--shadow);margin:0 auto 60px;padding:40px;transition:all .3s}.PokerCalc:hover,.LionSwipe:hover,.Zodoku:hover,.FlappyBird:hover,.PanicAtThePigPen:hover,.VideoPoker:hover,.TreeGame:hover,LocomotivesWebsite:hover{border-color:var(--primary)}.imageContainer{justify-content:center;align-items:center;max-height:800px;margin-bottom:30px;display:flex;overflow:hidden}.PokerCalc img,.LionSwipe img,.FlappyBird img,.PanicAtThePigPen img,.VideoPoker img,.TreeGame img,.LocomotivesWebsite img,.Zodoku img{border-radius:var(--radius);max-width:100%;height:auto;max-height:100%;box-shadow:var(--shadow);object-fit:contain;transition:transform .3s;display:block}.activityHeading{color:var(--primary);text-align:center;margin-bottom:10px;font-size:2rem;font-weight:700}.activitySubheading{color:var(--primary);text-align:center;letter-spacing:1px;margin-bottom:25px;font-size:1.1rem;font-weight:500}.activityBody{color:var(--text);text-align:justify;margin-bottom:30px;font-size:1.05rem;line-height:1.8}.projectsPage div[class$=Buttons]{flex-wrap:wrap;justify-content:center;gap:20px;margin-top:30px;display:flex}.projectsPage button[type=button]{border:2px solid var(--primary);border-radius:var(--radius);cursor:pointer;background:0 0;padding:0;transition:all .3s;position:relative;overflow:hidden}.projectsPage button[type=button] a{z-index:1;color:var(--primary);padding:12px 25px;font-size:1rem;font-weight:600;text-decoration:none;transition:color .3s;display:block;position:relative}.projectsPage button[type=button]:hover a{color:#fff;background:var(--primary)}.projectsPage button[type=button]:hover{background:var(--primary)}@media (max-width:768px){.about h1{font-size:2.5rem}.PokerCalc,.LionSwipe,.Zodoku,.FlappyBird,.PanicAtThePigPen,.VideoPoker,.TreeGame,.LocomotivesWebsite{padding:30px 20px}.activityHeading{font-size:1.6rem}.activityBody{text-align:left;font-size:1rem}.activityBody a{color:inherit;text-decoration:underline}.imageContainer{max-height:300px}.projectsPage div[class$=Buttons]{flex-direction:column;align-items:center}.projectsPage button[type=button]{width:100%;max-width:300px}}@media (max-width:480px){.projectsPage{padding:40px 15px}.about h1{font-size:2rem}.about p{font-size:1rem}.imageContainer{max-height:250px}}.socialButtons button:hover{background:var(--primary-hover)}:root{--nav-bar-height:80px}nav{background:var(--surface);border-bottom:1px solid var(--sky);z-index:1000;min-height:var(--nav-bar-height);justify-content:space-between;align-items:center;width:100%;height:auto;padding:1.5rem 3rem;display:flex;position:sticky;top:0}#name{font-family:var(--font);color:var(--primary);white-space:nowrap;flex-shrink:0;margin:0;font-size:clamp(1.3rem,1rem + 1vw,1.8rem);font-weight:700}#navButtons{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(.5rem,2vw,2rem);margin:0;padding:0;list-style:none;display:flex}#navButtons li{margin:0}#navButtons a{color:var(--text);font-size:clamp(.95rem,.8rem + .4vw,1.1rem);font-weight:500;font-family:var(--font);border-radius:var(--radius);padding:clamp(.4rem,.5vw,.5rem) clamp(.8rem,1.5vw,1.2rem);text-decoration:none;transition:color .2s,background .2s;display:block;position:relative}#navButtons a:before{content:"";background:var(--primary);width:0;height:2px;transition:width .2s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}#navButtons a:hover{color:var(--primary)}#navButtons a:hover:before{width:80%}#navButtons a.active{color:var(--primary);background:#96d1f74d}#navButtons a.active:before{width:80%}@media (max-width:1200px){nav{flex-direction:column;gap:1.5rem;padding:1.2rem 2rem}}@media (max-width:480px){nav{padding:1rem}}.contactPage{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);padding:60px 20px}.contactContainer{max-width:1200px;margin:0 auto}.contactHeader{text-align:center;margin-bottom:80px;padding:0 20px 40px}.contactHeader h1{color:var(--primary);letter-spacing:-.5px;margin-top:0;margin-bottom:20px;font-size:3.5rem;font-weight:700}.contactSubtitle{color:var(--text);max-width:700px;margin:0 auto;font-size:1.2rem;line-height:1.8}.contactMethods{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin-bottom:80px;display:grid}.contactCard{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;padding:40px;transition:all .3s;display:flex}.contactCard:hover{border-color:var(--primary)}.contactIcon{background:var(--primary);border-radius:var(--radius);color:#fff;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:20px;font-size:2rem;font-weight:700;display:flex}.contactCard h3{color:var(--primary);margin-bottom:10px;font-size:1.8rem}.contactDescription{color:var(--muted);margin-bottom:20px;font-size:1rem;line-height:1.6}.contactLink{color:var(--primary);border:2px solid var(--primary);border-radius:var(--radius);z-index:1;padding:12px 24px;font-size:1.05rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block;position:relative;overflow:hidden}.contactLink:hover{color:#fff;background:var(--primary);transform:translateY(-1px)}.quickLinks{text-align:center;margin-bottom:80px}.quickLinks h2{color:var(--primary);text-align:center;margin-bottom:40px;font-size:2.5rem;font-weight:700;display:inline-block;position:relative}.quickLinks h2:after{content:"";background:var(--sand);width:60%;height:3px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.quickLinksGrid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;display:grid}.quickLinkCard{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);box-shadow:var(--shadow);text-align:center;color:inherit;cursor:pointer;flex-direction:column;align-items:center;padding:22px 40px;text-decoration:none;transition:all .3s;display:flex}.quickLinkCard:hover{border-color:var(--primary)}.quickLinkIcon{margin-bottom:15px;font-size:3rem;display:block}.quickLinkCard h4{color:var(--primary);margin-top:0;margin-bottom:6px;font-size:1.5rem}.quickLinkCard p{color:var(--muted);margin:0;font-size:1rem}.additionalInfo{margin-bottom:80px}.additionalInfo h2{color:var(--primary);text-align:center;margin-bottom:40px;font-size:2.5rem;font-weight:700;display:inline-block;position:relative;left:50%;transform:translate(-50%)}.additionalInfo h2:after{content:"";background:var(--sand);width:60%;height:3px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.interestsGrid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;display:grid}.interestItem{background:var(--surface);border-radius:var(--radius);border:1px solid var(--sky);box-shadow:var(--shadow);padding:35px;transition:all .3s}.interestItem:hover{border-color:var(--primary)}.interestIcon{margin-bottom:15px;font-size:2.5rem;display:block}.interestItem h4{color:var(--primary);margin-bottom:10px;font-size:1.4rem}.interestItem p{color:var(--text);margin:0;font-size:1rem;line-height:1.6}.responseTime{margin-bottom:60px}.responseCard{background:var(--sand);border-radius:var(--radius);border:1px solid var(--sky);text-align:center;max-width:1200px;margin:0 auto;padding:40px}.responseCard h3{color:var(--primary);margin-bottom:15px;font-size:1.8rem}.responseCard p{color:var(--text);margin:0;font-size:1.05rem;line-height:1.7}@media (max-width:768px){.contactHeader h1{font-size:2.8rem}.contactSubtitle{font-size:1.05rem}.contactMethods,.quickLinksGrid,.interestsGrid{grid-template-columns:1fr}.additionalInfo h2,.quickLinks h2{font-size:2rem}.contactCard,.interestItem,.responseCard{padding:30px 25px}}@media (max-width:480px){.contactPage{padding:40px 15px}.contactHeader h1{letter-spacing:-.5px;font-size:2.2rem}.contactSubtitle{font-size:1rem}.contactIcon{width:60px;height:60px;font-size:1.5rem}}.bookshelfPage{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);padding:60px 20px}.bookshelfPage>*{max-width:1000px;margin-left:auto;margin-right:auto}.bookshelfHeader{text-align:center;margin-bottom:60px}.bookshelfHeader h1{color:var(--primary);margin-top:0;margin-bottom:10px;font-size:3.5rem;font-weight:700}.bookshelfHeader p{color:var(--muted);font-size:1.1rem}.bookshelfHeader a:not(.button){color:var(--primary)}.bookshelfPage section{margin-bottom:70px}.bookshelfPage h2{color:var(--primary);margin-bottom:24px;font-size:1.8rem}.bookshelfPage .count{color:var(--muted);margin-left:8px;font-size:1rem;font-weight:400}.authBar{color:var(--muted);justify-content:center;align-items:center;gap:12px;margin-top:18px;font-size:.9rem;display:flex}.loginForm{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.bookshelfPage input,.bookshelfPage textarea{background:var(--surface);border:1px solid var(--sky);border-radius:var(--radius);color:var(--text);font:inherit;padding:8px 12px}.bookshelfPage textarea{resize:vertical;box-sizing:border-box;width:100%}.bookshelfPage button,.bookshelfPage a.button{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:var(--radius);font:inherit;cursor:pointer;padding:8px 16px;transition:background .2s,color .2s}.bookshelfPage button:hover,.bookshelfPage a.button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.bookshelfPage a.button{line-height:normal;text-decoration:none;display:inline-block}.bookshelfPage button:disabled{opacity:.6;cursor:default}.bookshelfPage button.ghost,.bookshelfPage a.button.ghost{border:1px solid var(--primary);color:var(--primary);background:0 0}.bookshelfPage button.ghost:hover,.bookshelfPage a.button.ghost:hover{background:var(--primary);border-color:var(--primary);color:#fff}.bookshelfPage button.small,.bookshelfPage a.button.small{padding:4px 12px;font-size:.85rem}.error{color:var(--brick);font-size:.9rem}.empty{text-align:center;color:var(--muted)}.readingList,.readList{gap:16px;display:grid}.readingList{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}.readList{scrollbar-color:var(--primary)var(--sky);scrollbar-width:thin;grid-template-columns:1fr;max-height:1830px;padding-right:14px;overflow-y:auto}@media (max-width:600px){.readList{max-height:1500px}}.bookCard{background:var(--surface);border:1px solid var(--sky);border-radius:var(--radius);gap:18px;padding:16px;display:flex;position:relative}.coverLink{flex:0 0 90px}.coverLink img,.noCover{object-fit:cover;border-radius:var(--radius);background:var(--sky);width:90px;height:135px;display:block}.bookBody{text-align:left;flex:1;min-width:0}.bookBody h3{color:var(--text);margin:0 0 2px;font-size:1.1rem}.author{color:var(--muted);margin:0 0 6px;font-size:.95rem}.stars{align-items:center;display:inline-flex}.starsGlyphs{letter-spacing:2px;line-height:1;display:inline-block;position:relative}.starsEmpty{color:var(--sky)}.starsFilled{white-space:nowrap;color:var(--sand);position:absolute;top:0;left:0;overflow:hidden}.starsValue{color:var(--muted);letter-spacing:0;margin-left:8px;font-size:.85rem}.unrated{color:var(--muted);font-size:.85rem}.note p{color:var(--text);white-space:pre-wrap;margin:10px 0 8px;line-height:1.6}.note .placeholder{color:var(--muted);font-style:italic}.noteEditor{margin-top:10px}.noteActions{gap:8px;margin-top:8px;display:flex}.updated{text-align:center;color:var(--muted);font-size:.85rem}@media (max-width:600px){.readingList{grid-template-columns:1fr}.coverLink,.coverLink img,.noCover{flex-basis:70px;width:70px;height:105px}}.playlistPage{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);padding:60px 20px}.playlistPage>*{max-width:900px;margin-left:auto;margin-right:auto}.playlistHeader{text-align:center;margin-bottom:40px}.playlistHeader h1{color:var(--primary);margin-top:0;margin-bottom:10px;font-size:3.5rem;font-weight:700}.playlistHeader p{color:var(--muted);font-size:1.1rem}.playlistLink{border:1px solid var(--primary);border-radius:var(--radius);color:var(--primary);margin-top:14px;padding:4px 12px;font-size:.85rem;text-decoration:none;transition:background .2s,color .2s;display:inline-block}.playlistLink:hover{background:var(--primary);color:#fff}.playerFrame{aspect-ratio:16/9;border:1px solid var(--sky);border-radius:var(--radius);background:#000;width:100%;position:relative;overflow:hidden}.playerHost{position:absolute;inset:0}.playerHost iframe{border:0;width:100%;height:100%}.playlistEmpty{text-align:center;color:var(--muted)}.playerHint{text-align:center;color:var(--muted);margin-top:14px;font-size:.85rem}.unmuteButton{border-radius:var(--radius);cursor:pointer;font:inherit;color:#fff;background:var(--primary);border:0;margin:0 auto 18px;padding:8px 20px;transition:background .2s;display:block}.unmuteButton:hover{background:var(--primary-hover)}
