@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap";:root{--bg: #f4f6fa;--text: #333;--text-muted: #444;--link: #3366cc;--container: 1000px;--radius-md: 12px;--radius-sm: 8px;--shadow-sm: 0 6px 14px rgba(0, 0, 0, .08);--shadow-md: 0 8px 20px rgba(0, 0, 0, .1);--shadow-img: 0 4px 12px rgba(0, 0, 0, .2);--pad-page: 2rem}*{box-sizing:border-box}#root{width:100%}html,body{margin:0;padding:0;width:100%;min-height:100vh;font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg);color:var(--text);overflow-x:hidden}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.App{width:100%;display:flex;flex-direction:column;min-height:100vh}.content{width:100%;max-width:var(--container);margin:0 auto;padding:var(--pad-page) var(--pad-page) 0}section{margin-bottom:3rem;scroll-margin-top:5rem}h1{font-size:2.5rem;margin:0 0 1rem}h2{color:var(--text);font-size:2rem;margin:0 0 1.25rem}h3{margin:2rem 0 .75rem;color:var(--text)}.about-me p{line-height:1.7;color:var(--text-muted);margin:0 0 1rem}.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:.75rem 1rem;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .18s ease}.site-nav.is-scrolled{box-shadow:var(--shadow-sm)}.site-nav__inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.site-nav__brand{color:var(--text);font-weight:700;letter-spacing:.02em;white-space:nowrap}.site-nav__links{display:flex;gap:1rem;flex-wrap:nowrap;justify-content:flex-end}.site-nav__links a{color:var(--text);font-weight:600;opacity:.95}.site-nav__toggle{display:none;border:0;background:transparent;color:var(--text);font-size:1.35rem;line-height:1;padding:.35rem .5rem;border-radius:10px;cursor:pointer}.site-nav__toggle:hover{background:#0000000f}@media (max-width: 900px){.site-nav{padding:.6rem .75rem}.site-nav__toggle{display:inline-flex;align-items:center;justify-content:center}.site-nav__inner{position:relative}.site-nav__links{display:none;position:absolute;top:calc(100% + .5rem);left:0;right:0;flex-direction:column;gap:.25rem;background:#fffffffa;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:.6rem;box-shadow:var(--shadow-sm)}.site-nav.is-open .site-nav__links{display:flex}.site-nav__links a{padding:.65rem .6rem;border-radius:12px}.site-nav__links a:hover{background:#0000000d;text-decoration:none}}.hero-background{position:relative;width:100%;text-align:center;color:#fff;overflow:hidden}.hero-background:before{content:"";position:absolute;inset:0;background:url(/mountains_from_drone.jpg) center/cover no-repeat;filter:blur(10px) brightness(1.3);transform:scale(1.05);z-index:0}.profile{position:relative;z-index:1;padding:4rem 1rem 2rem}.profile-pic{width:200px;height:200px;border-radius:50%;object-fit:cover;margin-bottom:1.5rem;border:4px solid white;box-shadow:0 0 16px #00000040}.hero-divider{position:absolute;left:0;right:0;bottom:-1px;height:90px;pointer-events:none;z-index:2;color:var(--bg);overflow:hidden}.hero-divider__back,.hero-divider__front{position:absolute;left:-2%;width:104%;height:90px}.hero-divider__back{bottom:8px;animation:heroDriftBack 14s ease-in-out infinite alternate}.hero-divider__front{bottom:0;animation:heroDriftFront 9s ease-in-out infinite alternate;filter:drop-shadow(0 -6px 12px rgba(0,0,0,.1))}.hero-divider__shape{fill:currentColor}.hero-divider__shape--back{opacity:.45}.hero-divider__shape--front{opacity:1}@keyframes heroDriftBack{0%{transform:translate(-1.5%)}to{transform:translate(1.5%)}}@keyframes heroDriftFront{0%{transform:translate(1.25%)}to{transform:translate(-1.25%)}}.full-resume a{display:inline-block;padding:.75rem 1rem;border-radius:10px;background:#fff;box-shadow:var(--shadow-sm)}.credentials ul{padding:0;margin:0}.credentials li{list-style:none;margin:.5rem 0;color:var(--text-muted)}.credentials .spacer{margin:.75rem 0 .25rem;height:.75rem}.projects{padding:4rem 0 2rem}.projects h2{font-size:2rem;margin:0 0 1rem;text-align:center;color:var(--text)}.projects p{font-size:1.05rem;line-height:1.7;color:var(--text-muted);text-align:left}.image-float-right,.image-float-left{max-width:300px;margin:1rem}.image-float-right{float:right;margin-left:1.5rem}.image-float-left{float:left;margin-right:1.5rem}.image-float-right img,.image-float-left img{width:100%;height:auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-img)}.projects:after{content:"";display:table;clear:both}.before-text{white-space:pre-line;line-height:1.7;color:var(--text-muted);margin:0}.inline-image{display:block;width:100%;max-width:700px;height:auto;margin:1rem auto 1.25rem;border-radius:var(--radius-md);box-shadow:0 8px 20px #0000001f}.float-clear{clear:both}.ent-image{width:100%;max-width:850px;height:auto;display:block;margin:1rem auto;border-radius:var(--radius-md);box-shadow:var(--shadow-img)}.before-software{position:relative;padding:2rem;border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden;background:#f4f6fa}.before-software:before{content:"";position:absolute;inset:0;background-image:url(/ent_hq.png),url(/degrees.jpg);background-position:left center,right center;background-size:cover,cover;background-repeat:no-repeat;opacity:.12;filter:blur(6px);z-index:0}.before-software>*{position:relative;z-index:1}.sat-demo{margin:1.25rem 0 1.75rem;background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 10px 24px #00000014;border:1px solid rgba(0,0,0,.06)}.sat-demo__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.sat-demo__title{margin:0;font-size:1.15rem;color:#111}.sat-demo__sub{margin:.25rem 0 0;color:#444;line-height:1.45;font-size:.95rem;max-width:58ch}.sat-demo__badge{font-weight:700;font-size:.85rem;padding:.35rem .6rem;border-radius:999px;border:1px solid rgba(0,0,0,.12);color:#111;background:#ffffffe6;white-space:nowrap}.sat-demo__controls{display:flex;flex-direction:column;gap:.6rem;margin:.75rem 0}.sat-demo__inputs{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.sat-demo__btn{appearance:none;border:0;border-radius:12px;padding:.65rem .9rem;font-weight:800;cursor:pointer;background:#111;color:#fff;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;transition:transform 90ms ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.sat-demo__btn:hover{box-shadow:0 10px 22px #0000001f}.sat-demo__btn:active{transform:translateY(1px)}.sat-demo__btn:focus-visible{outline:3px solid rgba(51,102,204,.35);outline-offset:2px}.sat-demo__btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.sat-demo__btn--ghost{background:#fff;color:#111;border:1px solid rgba(0,0,0,.14)}.sat-demo__btn--ghost:hover{background:#00000008}.sat-demo__inputs input{width:140px;min-height:42px;padding:.55rem .6rem;border-radius:12px;border:1px solid rgba(0,0,0,.14);outline:none;transition:box-shadow .18s ease,border-color .18s ease}.sat-demo__inputs input:focus{border-color:#3366cc73;box-shadow:0 0 0 4px #3366cc24}.sat-demo__inputs label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:#333}.sat-demo__inputs input,.sat-demo__inputs select{width:140px;padding:.55rem .6rem;border-radius:12px;border:1px solid rgba(0,0,0,.14);outline:none}.sat-demo__inputs .sat-demo__city{width:220px}.sat-demo__note{margin:.5rem 0 .75rem;padding:.6rem .75rem;border-radius:12px;background:#0000000a;color:#333;font-size:.9rem}.sat-demo__grid{display:grid;grid-template-columns:1fr 190px;gap:1rem;align-items:center}.sat-demo__kicker{font-size:.8rem;font-weight:700;color:#555;text-transform:uppercase;letter-spacing:.06em}.sat-demo__name{font-size:1.25rem;font-weight:800;color:#111;margin:.25rem 0 .5rem}.sat-demo__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:.75rem 0 .5rem}.sat-demo__label{display:block;font-size:.8rem;color:#666;font-weight:700}.sat-demo__value{display:block;font-size:1.05rem;font-weight:800;color:#111;margin-top:.1rem}.sat-demo__meta{font-size:.85rem;color:#555;margin-top:.4rem}.sat-demo__top{margin-top:.9rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.08)}.sat-demo__topTitle{font-weight:800;color:#111;margin-bottom:.4rem;font-size:.95rem}.sat-demo__topRow{display:flex;justify-content:space-between;gap:.75rem;padding:.25rem 0;color:#333;font-size:.9rem}.sat-demo__topName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sat-demo__topDist{font-weight:800;color:#111;white-space:nowrap}.sat-demo__viz{display:flex;flex-direction:column;align-items:center;justify-content:center}.sat-demo__radar{width:150px;height:150px;border-radius:999px;position:relative;background:radial-gradient(circle at center,#00000008,#0000);border:1px solid rgba(0,0,0,.1)}.sat-demo__ring{position:absolute;inset:0;border-radius:999px;border:1px dashed rgba(0,0,0,.1);transform:scale(.33)}.sat-demo__ring--2{transform:scale(.66)}.sat-demo__ring--3{transform:scale(.99)}.sat-demo__center{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:999px;background:#111;transform:translate(-50%,-50%);opacity:.35}.sat-demo__dot{position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:999px;background:#111}@media (max-width: 720px){.sat-demo__grid,.sat-demo__stats{grid-template-columns:1fr}.sat-demo__inputs input{width:130px}}.sat-demo__cityField{min-width:240px}.sat-demo__cityWrap{position:relative}.sat-demo__city{width:220px}.sat-demo__dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:220px;overflow:auto;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 12px 26px #0000001f;padding:.35rem;z-index:10}.sat-demo__option{width:100%;text-align:left;border:0;background:transparent;color:#111;padding:.55rem .6rem;border-radius:10px;cursor:pointer}.sat-demo__option:hover{background:#0000000f}.sat-demo__location{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.55rem .7rem;border-radius:14px;background:#0000000a;border:1px solid rgba(0,0,0,.08)}.sat-demo__locationTag{font-weight:900;font-size:.8rem;padding:.2rem .55rem;border-radius:999px;background:#0000000f;border:1px solid rgba(0,0,0,.1);color:#111}.sat-demo__locationText{font-weight:800;color:#111}.sat-demo__locationCoords{color:#444;font-weight:700}.sat-demo__location.is-flash{animation:satGlow .9s ease-out}@keyframes satGlow{0%{box-shadow:0 0 #3366cc59;background:#3366cc1a}to{box-shadow:0 0 0 12px #36c0;background:#0000000a}}.sat-demo__dot:after{content:"";position:absolute;inset:-10px;border-radius:999px;border:2px solid rgba(0,0,0,.18);opacity:0;transform:scale(.6);pointer-events:none}.sat-demo__dot.is-pulse:after{animation:satPulse .9s ease-out}@keyframes satPulse{0%{opacity:0;transform:scale(.6)}25%{opacity:.35}to{opacity:0;transform:scale(1.25)}}@media (max-width: 720px){:root{--pad-page: 1.25rem}.projects{padding:2.5rem 1.25rem}.image-float-right,.image-float-left{float:none;margin:1rem auto;max-width:420px}}.intro-video{padding:1rem;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);text-align:left;background:linear-gradient(to bottom,#f4f6fa,#d4e6d4 25% 75%,#f4f6fa)}.video-wrapper{position:relative;max-width:938px;margin:0 auto;aspect-ratio:16 / 9}.video-wrapper iframe{width:100%;height:100%;border-radius:12px}.intro-video h2{max-width:930px;margin:0 auto 1rem;text-align:left}.full-resume__row{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1rem}.full-resume a.full-resume__chatbot-btn{display:inline-block;padding:.75rem 1.25rem;border-radius:10px;background:#4a9e6b;color:#fff!important;font-weight:600;text-decoration:none;box-shadow:0 4px 12px #2d7a504d}.full-resume__chatbot-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2d7a5066;text-decoration:none}.tan-band{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding:0 0 3rem;background:linear-gradient(to bottom,#f4f6fa,#e8dcc8 8% 100%)}.tan-band__inner{max-width:var(--container);margin:0 auto;padding:0 var(--pad-page)}.green-band{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-bottom:3rem;background:#0f3524}.green-band__inner{max-width:var(--container);margin:0 auto;padding:7rem var(--pad-page) 0}.green-band h2,.green-band h3,.green-band p,.green-band li,.green-band a,.green-band summary{color:#e8dcc8}.green-band .before-text{color:#e8dcc8}.green-band .before-software{background:transparent;box-shadow:none}.green-band .before-software:before{opacity:.06}.site-footer{width:100%;background:#2e3440;padding:3rem 1rem;margin-top:-1px}.site-footer__inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.site-footer__info{display:flex;flex-direction:column;gap:.4rem}.site-footer__name{color:#e8dcc8;font-weight:700;font-size:1rem}.site-footer__contact{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem}.site-footer__contact a{color:#a8b8c8}.site-footer__contact a:hover{color:#e8dcc8;text-decoration:underline}.site-footer__sep{color:#555e6e}.site-footer__top{color:#a8b8c8;font-weight:600;font-size:.9rem;text-decoration:none}.site-footer__top:hover{color:#e8dcc8;text-decoration:none}.image-gallery-icon{color:#fff;transition:all .3s ease-out;appearance:none;background-color:#0000;border:0;cursor:pointer;outline:none;position:absolute;z-index:4;filter:drop-shadow(0 2px 2px rgb(25.5,25.5,25.5))}@media (hover: hover)and (pointer: fine){.image-gallery-icon:hover{color:#337ab7}.image-gallery-icon:hover .image-gallery-svg{transform:scale(1.1)}}.image-gallery-icon:focus{outline:2px solid #337ab7}.image-gallery-using-mouse .image-gallery-icon:focus{outline:none}.image-gallery-fullscreen-button,.image-gallery-play-button{bottom:0;padding:20px}.image-gallery-fullscreen-button .image-gallery-svg,.image-gallery-play-button .image-gallery-svg{height:28px;width:28px}@media (max-width: 768px){.image-gallery-fullscreen-button,.image-gallery-play-button{padding:15px}.image-gallery-fullscreen-button .image-gallery-svg,.image-gallery-play-button .image-gallery-svg{height:24px;width:24px}}@media (max-width: 480px){.image-gallery-fullscreen-button,.image-gallery-play-button{padding:10px}.image-gallery-fullscreen-button .image-gallery-svg,.image-gallery-play-button .image-gallery-svg{height:16px;width:16px}}.image-gallery-fullscreen-button{right:0}.image-gallery-play-button{left:0}.image-gallery-top-nav,.image-gallery-bottom-nav{padding:10px;left:50%;transform:translate(-50%)}.image-gallery-top-nav .image-gallery-svg,.image-gallery-bottom-nav .image-gallery-svg{height:120px;width:90px}@media (max-width: 768px){.image-gallery-top-nav .image-gallery-svg,.image-gallery-bottom-nav .image-gallery-svg{height:72px;width:48px}}@media (max-width: 480px){.image-gallery-top-nav .image-gallery-svg,.image-gallery-bottom-nav .image-gallery-svg{height:48px;width:36px}}.image-gallery-top-nav[disabled],.image-gallery-bottom-nav[disabled]{cursor:disabled;opacity:.6;pointer-events:none}.image-gallery-top-nav{top:0}.image-gallery-bottom-nav{bottom:0}.image-gallery-left-nav,.image-gallery-right-nav{padding:50px 10px;top:50%;transform:translateY(-50%)}.image-gallery-left-nav .image-gallery-svg,.image-gallery-right-nav .image-gallery-svg{height:120px;width:60px}@media (max-width: 768px){.image-gallery-left-nav .image-gallery-svg,.image-gallery-right-nav .image-gallery-svg{height:72px;width:36px}}@media (max-width: 480px){.image-gallery-left-nav .image-gallery-svg,.image-gallery-right-nav .image-gallery-svg{height:48px;width:24px}}.image-gallery-left-nav[disabled],.image-gallery-right-nav[disabled]{cursor:disabled;opacity:.6;pointer-events:none}.image-gallery-left-nav{left:0}.image-gallery-right-nav{right:0}.image-gallery{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}.image-gallery.fullscreen-modal{background:#000;height:100%;inset:0;position:fixed;width:100%;z-index:5}.image-gallery.fullscreen-modal .image-gallery-content{top:50%;transform:translateY(-50%)}.image-gallery-content{position:relative;line-height:0;top:0}.image-gallery-content.fullscreen{background:#000}.image-gallery-content .image-gallery-slide .image-gallery-image{max-height:calc(100vh - 80px)}.image-gallery-content.image-gallery-thumbnails-left .image-gallery-slide .image-gallery-image,.image-gallery-content.image-gallery-thumbnails-right .image-gallery-slide .image-gallery-image{max-height:100vh}.image-gallery-slide-wrapper{position:relative}.image-gallery-slide-wrapper.image-gallery-thumbnails-left,.image-gallery-slide-wrapper.image-gallery-thumbnails-right{display:inline-block;width:calc(100% - 110px)}@media (max-width: 768px){.image-gallery-slide-wrapper.image-gallery-thumbnails-left,.image-gallery-slide-wrapper.image-gallery-thumbnails-right{width:calc(100% - 87px)}}.image-gallery-slide-wrapper.image-gallery-rtl{direction:rtl}.image-gallery-slides{line-height:0;overflow:hidden;position:relative;white-space:nowrap;text-align:center;touch-action:none}.image-gallery-slide{left:0;position:absolute;top:0;width:100%}.image-gallery-slide.image-gallery-center{position:relative}.image-gallery-slide .image-gallery-image{width:100%;object-fit:contain}.image-gallery-slide .image-gallery-description{background:#0006;bottom:70px;color:#fff;left:0;line-height:1;padding:10px 20px;position:absolute;white-space:normal}@media (max-width: 768px){.image-gallery-slide .image-gallery-description{bottom:45px;font-size:.8em;padding:8px 15px}}.image-gallery-bullets{bottom:20px;left:0;margin:0 auto;position:absolute;right:0;width:80%;z-index:4}.image-gallery-bullets .image-gallery-bullets-container{margin:0;padding:0;text-align:center}.image-gallery-bullets .image-gallery-bullet{appearance:none;background-color:#0000;border:1px solid #fff;border-radius:50%;box-shadow:0 2px 2px #1a1a1a;cursor:pointer;display:inline-block;margin:0 5px;outline:none;padding:5px;transition:all .2s ease-out}@media (max-width: 768px){.image-gallery-bullets .image-gallery-bullet{margin:0 3px;padding:3px}}@media (max-width: 480px){.image-gallery-bullets .image-gallery-bullet{padding:2.7px}}.image-gallery-bullets .image-gallery-bullet:focus{transform:scale(1.2);background:#337ab7;border:1px solid #337ab7}.image-gallery-bullets .image-gallery-bullet.active{transform:scale(1.2);border:1px solid #fff;background:#fff}@media (hover: hover)and (pointer: fine){.image-gallery-bullets .image-gallery-bullet:hover{background:#337ab7;border:1px solid #337ab7}.image-gallery-bullets .image-gallery-bullet.active:hover{background:#337ab7}}.image-gallery-bullets.image-gallery-bullets-vertical{inset:50% auto auto 20px;width:auto;transform:translateY(-50%)}.image-gallery-bullets.image-gallery-bullets-vertical .image-gallery-bullet{display:block;margin:12px 0}@media (max-width: 768px){.image-gallery-bullets.image-gallery-bullets-vertical .image-gallery-bullet{margin:6px 0;padding:3px}}@media (max-width: 480px){.image-gallery-bullets.image-gallery-bullets-vertical .image-gallery-bullet{padding:2.7px}}.image-gallery-thumbnails-wrapper{position:relative}.image-gallery-thumbnails-wrapper.thumbnails-swipe-horizontal{touch-action:pan-y}.image-gallery-thumbnails-wrapper.thumbnails-swipe-vertical{touch-action:pan-x}.image-gallery-thumbnails-wrapper.thumbnails-wrapper-rtl{direction:rtl}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{display:inline-block;vertical-align:top;width:100px}@media (max-width: 768px){.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{width:81px}}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left .image-gallery-thumbnails,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right .image-gallery-thumbnails{height:100%;width:100%;left:0;padding:0;position:absolute;top:0}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left .image-gallery-thumbnails .image-gallery-thumbnail,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right .image-gallery-thumbnails .image-gallery-thumbnail{display:block;margin-right:0;padding:0}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left .image-gallery-thumbnails .image-gallery-thumbnail+.image-gallery-thumbnail,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right .image-gallery-thumbnails .image-gallery-thumbnail+.image-gallery-thumbnail{margin-left:0;margin-top:2px}.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{margin:0 5px}@media (max-width: 768px){.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-left,.image-gallery-thumbnails-wrapper.image-gallery-thumbnails-right{margin:0 3px}}.image-gallery-thumbnails{overflow:hidden;padding:5px 0}@media (max-width: 768px){.image-gallery-thumbnails{padding:3px 0}}.image-gallery-thumbnails .image-gallery-thumbnails-container{cursor:pointer;text-align:center;white-space:nowrap}.image-gallery-thumbnail{display:inline-block;border:4px solid rgba(0,0,0,0);transition:border .3s ease-out;width:100px;background:#0000;padding:0}@media (max-width: 768px){.image-gallery-thumbnail{border:3px solid rgba(0,0,0,0);width:81px}}.image-gallery-thumbnail+.image-gallery-thumbnail{margin-left:2px}.image-gallery-thumbnail .image-gallery-thumbnail-inner{display:block;position:relative}.image-gallery-thumbnail .image-gallery-thumbnail-image{vertical-align:middle;width:100%;line-height:0}.image-gallery-thumbnail.active,.image-gallery-thumbnail:focus{outline:none;border:4px solid #337ab7}@media (max-width: 768px){.image-gallery-thumbnail.active,.image-gallery-thumbnail:focus{border:3px solid #337ab7}}@media (hover: hover)and (pointer: fine){.image-gallery-thumbnail:hover{outline:none;border:4px solid #337ab7}}@media (hover: hover)and (pointer: fine)and (max-width: 768px){.image-gallery-thumbnail:hover{border:3px solid #337ab7}}.image-gallery-thumbnail-label{box-sizing:border-box;color:#fff;font-size:1em;left:0;line-height:1em;padding:5%;position:absolute;top:50%;text-shadow:0 2px 2px hsl(0,0%,10%);transform:translateY(-50%);white-space:normal;width:100%}@media (max-width: 768px){.image-gallery-thumbnail-label{font-size:.8em;line-height:.8em}}.image-gallery-index{background:#0006;color:#fff;line-height:1;padding:10px 20px;position:absolute;right:0;top:0;z-index:4}@media (max-width: 768px){.image-gallery-index{font-size:.8em;padding:5px 10px}}.chatbot-section{padding:.5rem 0}.chatbot-section h2{margin-bottom:.25rem}.chatbot-subtitle{margin-bottom:1.5rem;opacity:.7;font-size:.95rem}.chatbot-container{border:1px solid rgba(0,0,0,.12);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;background:#fff;box-shadow:0 2px 16px #00000012}.chatbot-messages{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;min-height:260px;max-height:380px;overflow-y:auto}.chatbot-message{display:flex}.chatbot-message--user{justify-content:flex-end}.chatbot-message--assistant{justify-content:flex-start}.chatbot-bubble{padding:.65rem 1rem;border-radius:16px;max-width:80%;font-size:.93rem;line-height:1.5;white-space:pre-wrap}.chatbot-message--user .chatbot-bubble{background:#06c;color:#fff;border-bottom-right-radius:4px}.chatbot-message--assistant .chatbot-bubble{background:#f1f1f1;color:#222;border-bottom-left-radius:4px}.chatbot-bubble--typing{display:flex;align-items:center;gap:4px;padding:.75rem 1rem}.typing-dot{width:7px;height:7px;border-radius:50%;background:#999;animation:typing-bounce 1.2s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.1);opacity:1}}.chatbot-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid rgba(0,0,0,.07);background:#fafafa}.chatbot-suggestion{font-size:.8rem;padding:.35rem .75rem;border-radius:20px;border:1px solid rgba(0,102,204,.35);background:transparent;color:#06c;cursor:pointer;transition:background .15s,color .15s}.chatbot-suggestion:hover:not(:disabled){background:#06c;color:#fff}.chatbot-suggestion:disabled{opacity:.4;cursor:not-allowed}.chatbot-input-row{display:flex;align-items:flex-end;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid rgba(0,0,0,.1)}.chatbot-input{flex:1;resize:none;border:1px solid rgba(0,0,0,.2);border-radius:8px;padding:.6rem .85rem;font-size:.93rem;font-family:inherit;outline:none;transition:border-color .15s;line-height:1.4}.chatbot-input:focus{border-color:#06c}.chatbot-send{padding:.6rem 1.25rem;background:#06c;color:#fff;border:none;border-radius:8px;font-size:.93rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.chatbot-send:hover:not(:disabled){background:#0052a3}.chatbot-send:disabled{opacity:.45;cursor:not-allowed}
