:root{--bg: #ffffff;--bg-secondary: #f9f9f9;--text: #111111;--muted: #777777;--border: #e5e5e5;--card-bg: #ffffff;--hover-bg: #f3f3f3}:root.dark{--bg: #121212;--bg-secondary: #1e1e1e;--text: #f0f0f0;--muted: #a0a0a0;--border: #333333;--card-bg: #1e1e1e;--hover-bg: #2a2a2a}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Quicksand,sans-serif;background:var(--bg);color:var(--text)}html{scroll-behavior:smooth}.section{scroll-margin-top:80px;padding:3rem 0}#home.section{padding-top:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:1100px;margin:0 auto;padding:0 1rem}main.container{padding-top:80px}.nav{border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0;width:100%;background:var(--bg);z-index:1000;box-shadow:0 1px 8px #0000000a}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.nav-brand{display:flex;flex-direction:row;align-items:center;gap:12px}.nav-social-icons{display:flex;justify-content:center;gap:8px}.nav-social-icons .social-icon{margin-left:0;padding:2px}.nav nav{display:flex;align-items:center}.nav a{margin-left:1rem;padding:.25rem .5rem;border-radius:.5rem}.nav a.active{background:var(--hover-bg)}.dark-mode-toggle{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:.5rem;padding:.4rem;margin-left:1rem;cursor:pointer;color:var(--text);transition:background-color .2s ease,border-color .2s ease}.dark-mode-toggle:hover{background:var(--hover-bg)}.footer{border-top:1px solid var(--border);margin-top:4rem;padding:2rem 0;color:var(--muted);font-size:.9rem}.footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-icons{display:flex;gap:1rem}.social-icon{color:var(--text);opacity:.7;transition:opacity .2s ease}.social-icon:hover{opacity:1}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card-bg)}.card-body{padding:.75rem .9rem}.card-title{font-weight:600;margin:0 0 .25rem}.card-meta{color:var(--muted);font-size:.9rem}.hero{padding:1rem 0 2rem}.hero h1{font-size:clamp(2rem,2vw + 1.5rem,3rem);margin:0 0 .5rem}.hero p{color:var(--muted);margin:0}.btn{display:inline-block;border:1px solid var(--border);padding:.6rem .9rem;border-radius:.6rem;transition:background .15s ease}.btn:hover{background:#f6f6f6}.gallery-grid{margin:2rem 0 3rem}.project-page{max-width:1100px;margin:0 auto;padding:1rem 1rem 3rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.95rem;margin-bottom:1.5rem;padding:.5rem 0;transition:color .2s ease}.back-link:hover{color:var(--text)}.project-header{margin-bottom:2rem;border-bottom:1px solid var(--border);padding-bottom:1.5rem}.project-header h1{font-size:2.25rem;margin:0 0 .5rem;font-weight:600}.project-count{color:var(--muted);margin:0}.project-video{margin-bottom:2.5rem}.project-video .card{max-width:900px;margin:0 auto}.project-gallery h2{font-size:1.5rem;margin:0 0 1.5rem;font-weight:600}.project-interactive-scroll{margin-top:2rem;margin-left:-1rem;margin-right:-1rem;width:calc(100% + 2rem)}.project-interactive-scroll h2{font-family:Quicksand,sans-serif}@media (min-width: 700px){.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-12{grid-column:span 12}}@media (max-width: 699px){.col-12{grid-column:span 12}.project-header h1{font-size:1.75rem}}.auto-preview{display:block;width:100vw;margin-left:calc(50% - 50vw);text-decoration:none}.media-wrap{width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:opacity .36s ease-in-out,transform .36s ease-in-out;opacity:0;transform:scale(.99)}.media-wrap.visible{opacity:1;transform:scale(1)}.media{width:100%;height:100%;object-fit:cover;display:block}.auto-preview:hover .media-wrap{box-shadow:0 6px 18px #0000001f;transform:translateY(-2px) scale(1.01)}.preview-container{position:relative}.preview-container .preview-text{position:absolute;top:12px;left:24px;z-index:20;pointer-events:none}.preview-container .preview-text h1,.preview-container .preview-text p{margin:0}.preview-container .preview-text h1{color:var(--text-color, #fff);text-shadow:0 2px 6px rgba(0,0,0,.45)}.preview-container .preview-text p{color:var(--muted-text-color, #fff);opacity:.92;text-shadow:0 1px 4px rgba(0,0,0,.35)}.pdf-layout{display:grid;grid-template-columns:1fr 380px;gap:3rem;max-width:1400px;margin:0 auto;padding:0 1.5rem;min-height:100vh}.pdf-media-column{display:flex;flex-direction:column;gap:1.5rem}.pdf-video-section{width:100%}.pdf-video-card{overflow:hidden;background:#000;box-shadow:0 8px 32px #0000001f}.pdf-video-card iframe,.pdf-video-card video{width:100%;aspect-ratio:16 / 9;display:block;border:none}.pdf-video-info{background:var(--card-bg);padding:1rem 1.25rem;border:1px solid var(--border);border-top:none}.pdf-video-title{font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.pdf-video-meta{color:var(--muted);font-size:.9rem}.pdf-hero-section{width:100%;margin-bottom:1.5rem}.pdf-hero-photo{overflow:hidden;background:#000;box-shadow:0 8px 32px #0000001f;cursor:pointer;transition:box-shadow .3s ease}.pdf-hero-photo:hover{box-shadow:0 12px 40px #0000002e}.pdf-hero-photo img{width:100%;height:auto;display:block}.pdf-hero-info{background:var(--card-bg);padding:1rem 1.25rem;border:1px solid var(--border);border-top:none}.pdf-hero-title{font-size:1.1rem;font-weight:600;margin:0}.pdf-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.pdf-photo-column{display:flex;flex-direction:column;gap:1rem}.pdf-photo-item{break-inside:avoid;margin-bottom:1rem;overflow:hidden;background:linear-gradient(145deg,var(--bg-secondary) 0%,var(--border) 100%);box-shadow:0 4px 16px #00000014;transition:transform .3s ease,box-shadow .3s ease;cursor:pointer}.pdf-photo-item:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.pdf-photo-item img{width:100%;height:auto;display:block}.pdf-photo-caption{padding:.75rem 1rem;background:var(--card-bg);font-size:.85rem;color:var(--muted);border-top:1px solid var(--border)}.pdf-text-column{padding-top:.5rem}.pdf-title{font-size:2rem;font-weight:600;margin:0 0 .5rem;line-height:1.2}.pdf-subtitle{color:var(--muted);font-size:.95rem;margin:0 0 2rem}.pdf-description{font-size:1.05rem;line-height:1.8;color:var(--text);margin:0 0 2rem}.pdf-plain-text{line-height:1.8}.pdf-process-text{font-size:1rem;line-height:1.8;color:var(--text);margin:0 0 1.25rem}.pdf-process-text strong{font-weight:600}.pdf-back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.95rem;padding:1rem 1.5rem;transition:color .2s ease}.pdf-back-link:hover{color:var(--text)}@media (max-width: 1000px){.pdf-layout{grid-template-columns:1fr;gap:2rem}.pdf-text-column{position:relative;top:0;max-height:none;order:-1}.pdf-photo-grid{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.pdf-layout{padding:0 1rem}.pdf-photo-grid{grid-template-columns:1fr}.pdf-title{font-size:1.5rem}}.lightbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:1000;display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-close{position:absolute;top:1rem;right:1.5rem;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;opacity:.7;transition:opacity .2s ease;z-index:1001}.lightbox-close:hover{opacity:1}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:4rem;cursor:pointer;opacity:.7;transition:opacity .2s ease;padding:1rem;z-index:1001}.lightbox-nav:hover{opacity:1}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-content{display:flex;flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;cursor:default}.lightbox-content img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:4px}.lightbox-caption{color:#fff;font-size:1rem;margin-top:1rem;text-align:center}.lightbox-counter{color:#fff9;font-size:.85rem;margin-top:.5rem}@media (max-width: 600px){.lightbox-nav{font-size:2.5rem;padding:.5rem}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}}.media-mosaic{padding:3rem 0;background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg) 100%)}.mosaic-title{text-align:center;font-size:2rem;margin:0 0 .5rem;font-weight:600}.mosaic-subtitle{text-align:center;color:var(--muted);margin:0 0 2rem}.mosaic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1100px;margin:0 auto}.mosaic-item{position:relative;overflow:hidden;aspect-ratio:4 / 3;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.mosaic-item:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.mosaic-item-0,.mosaic-item-1,.mosaic-item-2,.mosaic-item-3,.mosaic-item-4,.mosaic-item-5{aspect-ratio:4 / 3}.mosaic-image-wrapper{position:relative;width:100%;height:100%}.mosaic-image-wrapper img,.mosaic-image-wrapper video{display:block;width:100%;height:100%;min-width:100%;min-height:100%;object-fit:cover;object-position:center;background:transparent;transition:transform .5s ease,filter .3s ease}.mosaic-item:hover .mosaic-image-wrapper img,.mosaic-item:hover .mosaic-image-wrapper video{transform:scale(1.05);filter:brightness(.5)}.mosaic-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--border) 0%,var(--bg-secondary) 100%);display:flex;align-items:center;justify-content:center;font-size:3rem}.mosaic-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.7) 100%);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:1.5rem;transition:all .4s ease}.mosaic-item:hover .mosaic-overlay{background:#00000080;justify-content:center;align-items:center}.mosaic-item-title{color:#fff;font-size:1.1rem;font-weight:600;margin:0 0 .25rem;text-shadow:0 2px 4px rgba(0,0,0,.3);transition:all .4s ease;text-align:left}.mosaic-item:hover .mosaic-item-title{font-size:1.5rem;text-align:center;margin:0;text-shadow:0 2px 12px rgba(0,0,0,.6)}.mosaic-item-count{color:#ffffffd9;font-size:.85rem;transition:opacity .3s ease}.mosaic-item:hover .mosaic-item-count{opacity:0}@media (max-width: 900px){.mosaic-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.mosaic-grid{grid-template-columns:1fr;gap:.75rem}.mosaic-title{font-size:1.5rem}.mosaic-overlay{padding:1rem}.mosaic-item-title{font-size:1rem}}.mosaic-close-btn{display:inline-block;margin-top:8px;padding:.5rem .75rem;background:transparent;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:8px;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.media-mosaic .mosaic-close-btn{color:var(--text);border-color:var(--border);background:transparent}.mosaic-close-btn:hover{background:var(--hover-bg)}.dark .mosaic-close-btn{color:var(--text)!important;border-color:var(--border)!important;background:transparent!important}@media (prefers-color-scheme: dark){.mosaic-overlay{background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.6) 100%)}}.gallery-page{padding:2rem 0}.gallery-header{text-align:center;margin-bottom:2.5rem}.gallery-header h1{font-size:2.5rem;margin:0 0 .5rem;font-weight:600}.gallery-subtitle{color:var(--muted);margin:0;font-size:1.1rem}.gallery-collections{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:1100px;margin:0 auto;padding:0 1rem}.collection-card{display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--border);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;text-decoration:none}.collection-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px #0000001f}.collection-thumbnail{position:relative;aspect-ratio:16 / 10;overflow:hidden}.collection-thumbnail img,.collection-thumbnail video{display:block;width:100%;height:100%;min-width:100%;min-height:100%;object-fit:cover;object-position:center;background:transparent;transition:transform .5s ease,filter .3s ease}.collection-card:hover .collection-thumbnail img,.collection-card:hover .collection-thumbnail video{transform:scale(1.05);filter:brightness(.6)}.collection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.collection-card:hover .collection-overlay{opacity:1}.collection-overlay-title{color:#fff;font-size:1.5rem;font-weight:600;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.5);margin:0;padding:0 1rem}.collection-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--border) 0%,var(--bg-secondary) 100%);display:flex;align-items:center;justify-content:center;font-size:4rem}.collection-info{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.25rem}.collection-title{font-size:1.25rem;font-weight:600;margin:0;color:var(--text)}.collection-count{color:var(--muted);font-size:.9rem}.collection-cta{margin-top:.5rem;color:var(--text);font-weight:500;font-size:.9rem;opacity:0;transform:translate(-8px);transition:opacity .3s ease,transform .3s ease}.collection-card:hover .collection-cta{opacity:1;transform:translate(0)}@media (max-width: 768px){.gallery-collections{grid-template-columns:1fr}.gallery-header h1{font-size:2rem}.collection-info{padding:1rem 1.25rem}.collection-cta{opacity:1;transform:translate(0)}}.contact-page{padding:2rem 0;max-width:1000px;margin:0 auto}.contact-header{text-align:center;margin-bottom:3rem}.contact-header h1{font-size:2.5rem;font-weight:600;margin:0 0 .5rem}.contact-subtitle{color:var(--muted);font-size:1.1rem;margin:0}.contact-content{display:grid;grid-template-columns:1fr 2fr;gap:3rem;padding:0 1.5rem}.contact-info h2{font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.contact-info p{margin:0 0 1rem;line-height:1.6}.contact-info a{color:var(--text);text-decoration:underline}.contact-info a:hover{opacity:.7}.contact-note{color:var(--muted);font-size:.95rem}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;font-size:.95rem}.form-group input,.form-group textarea{padding:.75rem 1rem;border:1px solid var(--border);font-size:1rem;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease;background:var(--card-bg);color:var(--text)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--text);box-shadow:0 0 0 3px #0000000d}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--muted)}.form-group textarea{resize:vertical;min-height:120px}.submit-btn{padding:.875rem 2rem;background:var(--text);color:var(--bg);border:none;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s ease,transform .2s ease;align-self:flex-start}.submit-btn:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.form-status{padding:1rem;margin-top:.5rem;font-size:.95rem}.form-status.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.form-status.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}@media (max-width: 768px){.contact-content{grid-template-columns:1fr;gap:2rem}.contact-header h1{font-size:2rem}.contact-info{text-align:center}.submit-btn{width:100%}}
