@keyframes pd-spin{to{transform:rotate(360deg)}}.project-detail{font-family:Inter,sans-serif}.project-detail .pd-hero{min-height:60vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;padding:4rem 10%;box-sizing:border-box}.project-detail .pd-hero.pd-hero-weather{background:linear-gradient(#00001e8c,#000a32b3),url(https://cdn.pixabay.com/photo/2018/09/03/13/11/vienna-3651186_1280.jpg);background-size:cover;background-position:center}.project-detail .pd-hero h1{color:#fff;font-size:2.5rem;margin:0 0 .8rem}.project-detail .pd-hero h1 span{font-size:1.1rem;font-weight:400;opacity:.65}.project-detail .pd-hero p{color:#ffffffd9;font-size:1.1rem;margin:0 0 2rem;max-width:38rem}.project-detail .pd-hero .pd-hero-btn{display:inline-block;border:2px solid white;color:#fff;text-decoration:none;padding:.65rem 2rem;border-radius:8px;font-weight:600;transition:.2s ease}.project-detail .pd-hero .pd-hero-btn:hover{background-color:#fff;color:#141414}.project-detail .pd-section{padding:5rem 10%;box-sizing:border-box}.project-detail .pd-section.pd-dark{background-color:#141414}.project-detail .pd-section.pd-dark h2,.project-detail .pd-section.pd-dark h3{color:#fff}.project-detail .pd-section.pd-dark .pd-list li{color:#fff;background-color:#ffffff0f}.project-detail .pd-section h2{font-size:2rem;margin:0 0 2.5rem}.project-detail .pd-section h3{font-size:1.2rem;margin:0 0 1.2rem}.project-detail .pd-tabs{display:flex;gap:.7rem;margin-bottom:2rem}.project-detail .pd-tabs button{border:2px solid #cbd5e1;background:transparent;padding:.4rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.9rem;transition:.2s ease}.project-detail .pd-tabs button.active{background-color:#141414;border-color:#141414;color:#fff}.project-detail .pd-dark .pd-tabs button{border-color:#ffffff59;color:#ffffffb3}.project-detail .pd-dark .pd-tabs button.active{background-color:#fff;border-color:#fff;color:#141414}.project-detail .pd-tabs-content{display:grid}.project-detail .pd-tabs-content .pd-list{grid-area:1/1}.project-detail .pd-tabs-content .pd-list-inactive{visibility:hidden;pointer-events:none}.project-detail .pd-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.7rem}.project-detail .pd-list li{padding:.55rem 1rem;border-left:3px solid rgb(98,161,255);background-color:#00000008;border-radius:0 6px 6px 0}.project-detail .pd-features{display:flex;gap:5rem}.project-detail .pd-features>div{flex:1}.project-detail .pd-db{text-align:center}.project-detail .pd-db .pd-list{max-width:18rem;margin:0 auto}.project-detail .pd-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.project-detail .pd-gallery .pd-gallery-item{aspect-ratio:9/16;background-color:#0000000a;border:2px dashed rgba(0,0,0,.12);border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.project-detail .pd-gallery .pd-gallery-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:14px;transition:transform .4s ease}.project-detail .pd-gallery .pd-gallery-item span{color:#00000040;font-size:.85rem}.project-detail .pd-gallery .pd-gallery-item.pd-gallery-photo{background-color:#0d0d0d;border-color:transparent;cursor:pointer}.project-detail .pd-gallery .pd-gallery-item.pd-gallery-photo img{transform:scale(1.04)}.project-detail .pd-gallery .pd-gallery-item.pd-gallery-photo:hover img{-o-object-fit:contain;object-fit:contain;transform:scale(1)}.project-detail .pd-lightbox{position:fixed;inset:0;background-color:#000000ed;z-index:1000;display:flex;align-items:center;justify-content:center;gap:1.5rem}.project-detail .pd-lightbox .pd-lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer;opacity:.7;line-height:1}.project-detail .pd-lightbox .pd-lightbox-close:hover{opacity:1}.project-detail .pd-lightbox .pd-lightbox-prev,.project-detail .pd-lightbox .pd-lightbox-next{background:#ffffff1a;border:none;color:#fff;font-size:1rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease}.project-detail .pd-lightbox .pd-lightbox-prev:hover,.project-detail .pd-lightbox .pd-lightbox-next:hover{background:#fff3}.project-detail .pd-lightbox .pd-lightbox-img-wrap{max-height:85vh;display:flex;align-items:center;justify-content:center}.project-detail .pd-lightbox .pd-lightbox-img-wrap img{max-height:85vh;max-width:min(420px,80vw);width:auto;height:auto;-o-object-fit:contain;object-fit:contain;border-radius:16px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.project-detail .pd-lightbox .pd-lightbox-dots{position:absolute;bottom:1.8rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem}.project-detail .pd-lightbox .pd-lightbox-dots .pd-lightbox-dot{width:8px;height:8px;border-radius:50%;border:none;background-color:#ffffff4d;cursor:pointer;padding:0;transition:background .2s ease}.project-detail .pd-lightbox .pd-lightbox-dots .pd-lightbox-dot.active{background-color:#fff}.project-detail .pd-private-notice{background-color:#62a1ff12;border-left:4px solid rgb(98,161,255);padding-top:2rem!important;padding-bottom:2rem!important}.project-detail .pd-private-notice strong{font-size:1rem;display:block;margin-bottom:.6rem;color:#62a1ff}.project-detail .pd-private-notice p{margin:0;color:#000000a6;font-size:.95rem;line-height:1.6;max-width:48rem}.project-detail .github-private-wrap{position:relative;display:inline-block}.project-detail .github-private-wrap .github-private-btn{cursor:not-allowed;transition:opacity .2s ease,filter .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.project-detail .github-private-wrap .github-tooltip{position:absolute;bottom:calc(100% + .6rem);left:50%;transform:translate(-50%);background-color:#191919;color:#fff;font-size:.78rem;padding:.6rem .85rem;border-radius:8px;width:13rem;line-height:1.45;pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:100;text-align:center;box-shadow:0 4px 16px #00000040}.project-detail .github-private-wrap .github-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#191919}.project-detail .github-private-wrap:hover .github-private-btn{opacity:.35;filter:grayscale(1)}.project-detail .github-private-wrap:hover .github-tooltip{opacity:1}.project-detail .pd-hero .github-private-wrap .github-private-btn{display:inline-block;background-color:#90cfff;color:#000;padding:.6rem 1.5rem;border-radius:.5rem;font-weight:600}.project-detail .pd-page-links .github-private-wrap .github-private-btn{background-color:#90cfff;text-decoration:none;padding:.6rem 1.5rem;border-radius:.5rem;color:#000;font-weight:600;display:block}.project-detail .pd-gallery-spinner{display:flex;justify-content:center;padding:4rem 0}.project-detail .pd-gallery-spinner .pd-spinner-ring{width:2.2rem;height:2.2rem;border-radius:50%;border:3px solid rgba(0,15,66,.12);border-top-color:#000f42;animation:pd-spin .7s linear infinite}.project-detail .pd-dark .pd-gallery-spinner .pd-spinner-ring{border-color:#ffffff1f;border-top-color:#62a1ff}.project-detail .pd-page-links{display:flex;gap:1rem;justify-content:center;padding:3rem 10%}.project-detail .pd-page-links a{background-color:#90cfff;text-decoration:none;padding:.6rem 1.5rem;border-radius:.5rem;color:#000;font-weight:600}@media (max-width: 900px){.project-detail{margin-top:5rem}.project-detail .pd-hero{padding:3rem 6%;min-height:50vh}.project-detail .pd-hero h1{font-size:1.8rem}.project-detail .pd-section{padding:3rem 6%}.project-detail .pd-features{flex-direction:column;gap:2.5rem}.project-detail .pd-gallery{grid-template-columns:repeat(2,1fr)}.project-detail .pd-gallery .pd-gallery-item.pd-gallery-photo:hover img{-o-object-fit:cover;object-fit:cover;transform:scale(1.04)}.project-detail .pd-lightbox .pd-lightbox-prev,.project-detail .pd-lightbox .pd-lightbox-next{display:none}.project-detail .pd-hero .github-private-wrap .github-tooltip{left:0;transform:none}.project-detail .pd-hero .github-private-wrap .github-tooltip:after{left:3.2rem;transform:translate(-50%)}.project-detail .pd-tabs{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.3rem;scrollbar-width:none}.project-detail .pd-tabs::-webkit-scrollbar{display:none}.project-detail .pd-tabs button{flex-shrink:0;white-space:nowrap}}
