body,html{width:100%;height:100%;overflow-x:hidden}.album-data-hotspot{white-space:nowrap;overflow:visible}.album-data-hotspot.marquee{max-width:none;overflow:hidden;position:relative;white-space:nowrap}.album-data-hotspot.marquee:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.curtain-container.marquee.title-marquee{width:200px;position:relative;overflow:hidden}@media (min-width: 1025px){.artist-marquee{width:200px}}.curtain-container.marquee.title-marquee:before{content:"";position:absolute;top:0;left:150px;right:150px;bottom:0;background:transparent;pointer-events:none;z-index:1}.curtain-container.marquee.artist-marquee{overflow:hidden!important}.curtain-container .animated-text{animation:title-marquee-simple var(--duration, 6s) linear infinite;text-align:left;width:100%}@keyframes title-marquee-simple{0%{transform:translate(var(--startX, 120px))}to{transform:translate(var(--endX, -100px))}}.curtain-container{overflow:hidden!important;contain:layout style paint}.album-data-hotspot.marquee.source-marquee{animation:source-marquee 8s linear infinite;clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%)}@keyframes source-marquee{0%{transform:translate(-50%,-50%) translate(50px)}to{transform:translate(-50%,-50%) translate(-50px)}}@media (max-width: 1024px){.curtain-container.marquee.title-marquee{width:150px}.curtain-container.marquee.title-marquee:before{left:110px;right:200px}.artist-marquee{width:150px}}@media (max-width: 768px){.curtain-container.marquee.title-marquee{width:100px}.curtain-container.marquee.title-marquee:before{left:75px;right:10px}.curtain-container.marquee.artist-marquee{clip-path:inset(0 calc(50% - 60px) 0 calc(50% - 60px))}.album-data-hotspot.marquee.source-marquee{animation:source-marquee-mobile 8s linear infinite}.album-data-hotspot.marquee.title-marquee .marquee-content{animation:title-curtain var(--titleDuration, 5s) linear infinite}.artist-marquee{width:100px}}@keyframes title-marquee-mobile{0%{transform:translate(-100%,-50%) translate(350px)}to{transform:translate(-100%,-50%) translate(-30px)}}@keyframes source-marquee-mobile{0%{transform:translate(-50%,-50%) translate(30px)}to{transform:translate(-50%,-50%) translate(-30px)}}#album-data-title{text-align:right!important}#album-data-artist{text-align:left!important}#album-data-source{font-size:8px!important;opacity:.8!important;text-align:right!important}body,h1,h2,h3,h4,h5,h6{font-family:Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700}dl ol ul{margin-top:0;margin-bottom:1rem}a{text-decoration:none}.section-heading-spacer{float:left;width:200px;border-top:3px solid #e7e7e7;border-top-width:3px;border-top-style:solid;border-top-color:#e7e7e7}.section-heading{margin-bottom:30px}.clearfix:after{display:block;clear:both;content:""}#education{padding-top:50px}.img-utsa{width:100%;max-width:200px;padding-bottom:50px}#education-text,#work-text,#projects-text{padding-bottom:50px}#experience,#collections{padding-top:50px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;background-color:#f8f8f8}#audiophile{padding-top:50px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;background-color:#fff}#lr,#coursera{font-size:25px;margin:0}.img-lr,.img-angular,.img-coursera{width:100%;max-width:200px}#projects{padding-top:50px}.img-personal-website{width:100%;max-width:200px;padding-bottom:50px;padding-top:0}.img-chu{width:100%;max-width:200px;padding-bottom:50px;padding-top:35px}#david-chu #personal-website{font-size:25px}#connect{padding-bottom:10px}.banner{padding:100px 0;color:#f8f8f8;background:url(./golden-gate-CAzNF_8F.jpeg) no-repeat;background-size:cover}#connect-row{padding-bottom:100px}.footer-social{text-align:center}.banner ul{margin-bottom:0}.banner-social-buttons{float:right;margin-top:0}.list-inline-items{padding-top:2px;padding-bottom:2px;margin-right:5px}.btn{background-color:#fff9;color:#000;border:0}.btn:hover{background-color:#fff;color:#000}.network-name{text-transform:uppercase;font-size:14px;font-weight:400px;letter-spacing:2px}.footer-social li{display:inline}.intro-header{padding-bottom:50px;text-align:center;color:#f8f8f8;background:url(./golden-gate-CAzNF_8F.jpeg) no-repeat center center;background-size:cover;min-height:100%}.intro-message{position:relative;padding-top:20%;padding-bottom:20%}.bio-pic{padding-bottom:12px}.img-top{width:100%;max-width:200px;border-radius:50%;border:5px solid #e7e7e7}.intro-message>h1{margin:0;text-shadow:2px 2px 3px rgb(0 0 0 / 30%);font-size:5em}.intro-divider{width:400px;border-top:1px solid #f8f8f8;border-bottom:1px solid rgba(0,0,0,.2)}.list-inline{padding-left:0;list-style:none}@media (max-width:767px){.intro-message{padding-bottom:15%}.intro-message>h1{font-size:3em}ul.intro-social-buttons>li{display:block;margin-bottom:20px;padding:0}ul.intro-social-buttons>li:last-child{margin-bottom:0}.intro-divider{width:100%}}@media (max-width:767px){.banner h2{margin:0;text-shadow:2px 2px 3px rgba(0,0,0,.6);font-size:3em}ul.banner-social-buttons>li{display:block;margin-bottom:20px;padding:0}ul.banner-social-buttons>li:last-child{margin-bottom:0}}@media (max-width:1199px){ul.banner-social-buttons{float:left;margin-top:15px}.img-right{display:none}}.nav7Img{width:315px;height:600px;position:absolute;left:0;z-index:15}#navFrame{position:absolute;width:313px;height:198px;z-index:17}#boxContainer7{position:relative;width:100%;height:100%;margin:0;border:0;padding:0}#boxNav7{top:27px;left:10px;width:315px;height:600px;background-image:url(./john-peel-asset-DNDNIOwU.png);z-index:11}.spotifty tr:nth-child(2n){background-color:#eee}.spotify td:first-child{font-weight:700}.spotify td{white-space:nowrap;padding:10px;margin-right:1rem}.spotify button{margin:1rem 1rem 0 0;border:0;border-radius:20px;padding:10px 3rem;font-size:.8rem;font-family:Arial,Helvetica,sans-serif;text-transform:uppercase;font-weight:700;background-color:#1ed760;color:#000}.spotify button:hover{background-color:#1fdf64}.spotify #logged-in{display:none}#navbox8{width:100%;height:100%;position:relative;overflow:hidden}canvas{display:block;width:100%!important;height:100%!important}@media (max-width: 768px){#navbox8{height:80vh}}@media (max-width: 480px){#navbox8{height:75vh;width:100vw}}#gridOverlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}#interactionLayer{position:absolute;top:0;left:0;width:100%;height:100%}#threeJS-bootstrap-combination{display:flex;flex-direction:column;padding-left:0!important}#navbox8{flex-grow:1;position:relative}#navbox8 canvas{width:100%;height:100%;display:block}#myLightbox{position:fixed;top:0;left:0;width:100%;height:100%;background-color:transparent;display:none;z-index:1000}#symbol-container{width:100%;height:100%;background-color:#000000b3;border-radius:8px;box-shadow:0 4px 8px #0003;position:relative}@media (max-width: 768px){.lightbox-content{width:95vw;height:80vh}}.hud-button{cursor:pointer;border-radius:5px;transition:transform .2s ease}.hud-button:hover{transform:scale(1.1);box-shadow:0 0 5px #fff}.hud-button:active{transform:scale(.9)}#symbol-1 path{fill:#fff}.spotify-open-btn{display:inline-flex;align-items:center;gap:8px;background:#1ed760;color:#191414;border:none;border-radius:999px;padding:8px 24px;font-size:1rem;font-weight:700;font-family:Arial,Helvetica,sans-serif;text-transform:none;box-shadow:0 2px 8px #1ed7601a;transition:background .2s,box-shadow .2s;margin-top:16px;margin-bottom:8px;cursor:pointer}.spotify-open-btn svg{margin-right:8px}.spotify-open-btn:hover,.spotify-open-btn:focus{background:#1fdf64;color:#191414;text-decoration:none;box-shadow:0 4px 16px #1ed7602e}.spotify-logo{width:22px;height:22px;display:inline-block;vertical-align:middle;margin-right:8px}.lightbox-content{background:transparent!important}.album-data-overlay{position:absolute;z-index:1000;pointer-events:none;background:transparent;border-radius:12px;padding:0;box-shadow:0 8px 24px #0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#fff;font-family:Monaco}.info-content{display:flex;flex-direction:column;gap:0px}.info-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--row-gap, 4px)}.info-col{flex:1;text-align:center;padding:var(--col-padding, 4px);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-data-hotspot{font-family:Monaco,Menlo,Consolas,monospace;font-weight:400;font-style:normal;text-align:center;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.8);letter-spacing:.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-col-left{text-align:left}.info-col-center{text-align:center}.info-col-right{text-align:right}.info-row-source{border-top:1px solid rgba(255,255,255,.2);margin-top:var(--source-margin, 8px);padding-top:var(--source-padding, 8px)}.info-row-source .info-col{color:#ffffffb3;font-style:italic}.album-data-content{display:flex;flex-direction:column;gap:8px}.album-title{font-family:Monaco,Menlo,Monaco,Courier New,monospace;font-size:14px;font-weight:700;color:#fff;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.8)}.album-artist{font-family:Monaco,Menlo,Monaco,Courier New,monospace;font-size:14px;color:#ffffffe6;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.8)}.album-date{font-family:Monaco,Menlo,Monaco,Courier New,monospace;font-size:14px;color:#ffffffb3;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.8);font-style:italic}.album-source{font-family:Monaco,Menlo,Monaco,Courier New,monospace;font-size:12px;color:#fff9;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.8);font-style:italic;opacity:.8}@media (max-width: 768px){.album-data-overlay{padding:12px 16px}.album-title,.album-artist,.album-date,.album-source{font-size:12px}}
