:root{--color-primary: #1a1a1a;--color-text: #333333;--color-text-light: #666666;--color-background: #ffffff;--color-border: #e0e0e0;--font-family-nav: 'Special Elite', 'Courier New', monospace;--font-family-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base: 1rem;--font-size-nav: 1rem;--line-height-base: 1.6;--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--spacing-xl: 4rem;--spacing-xxl: 6rem;--container-max-width: 800px;--container-padding: 1rem;--header-padding-top: 80px;--gallery-height: 400px;--gallery-strip-gap: 4px;--z-gallery-back: 0;--z-gallery-strips: 1;--z-gallery-front: 2;--transition-fast: 150ms ease;--transition-base: 300ms ease;--transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);--transition-gallery: 600ms ease-in-out;--border-radius-sm: 4px;--border-radius-md: 8px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-background);margin:0;padding:0}.skip-link{position:absolute;top:0;left:0;transform:translateY(-100%);opacity:0;background:var(--color-primary);color:#fff;padding:var(--spacing-sm) var(--spacing-md);z-index:100;transition:transform var(--transition-fast),opacity var(--transition-fast)}.skip-link:focus{transform:translateY(0);opacity:1}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.site-header{padding-top:var(--header-padding-top);padding-bottom:var(--spacing-lg);text-align:center}.logo{display:inline-block}.logo-image{max-width:320px;width:100%;height:auto}.main-nav{padding:var(--spacing-lg) 0;padding-top:var(--spacing-md)}.nav-list{display:flex;justify-content:center;align-items:center;gap:var(--spacing-xl);list-style:none;margin:0;padding:0;flex-wrap:wrap}.nav-list li{margin:0}.nav-list a{font-family:var(--font-family-nav);font-size:var(--font-size-nav);color:var(--color-primary);text-decoration:none;transition:opacity var(--transition-fast);white-space:nowrap}.nav-list a:hover,.nav-list a:focus{opacity:0.6;text-decoration:none}.nav-list a[aria-current="page"]{opacity:0.5}.gallery-strip{padding:var(--spacing-xxl) 0}.gallery-container{position:relative;width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}.gallery-strips{display:flex;gap:0;height:var(--gallery-height);overflow:hidden;position:relative;z-index:var(--z-gallery-strips)}.gallery-strips.is-animating .strip{flex-grow:0}.gallery-strips.is-animating .strip.is-active{flex-grow:1}.gallery-strips.is-closing .strip{flex-grow:1}.strip{flex:1 1 0%;position:relative;border:none;padding:0;margin:0;cursor:pointer;overflow:hidden;background:transparent;transition:flex-grow var(--transition-gallery);border-right:var(--gallery-strip-gap) solid var(--color-background)}.strip:last-child{border-right:none}.gallery-strips:not(.is-animating):not(.is-closing) .strip:hover .strip-image,.gallery-strips:not(.is-animating):not(.is-closing) .strip:focus .strip-image{opacity:0.85}.strip-image{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;transition:opacity var(--transition-base)}.is-animating .strip.is-active .strip-image{opacity:0;transition:opacity var(--transition-base)}.is-closing .strip.is-active .strip-image{opacity:0}.mobile-caption{display:none}.gallery-expanded{position:absolute;top:0;left:var(--container-padding);right:var(--container-padding);height:var(--gallery-height);opacity:0;visibility:hidden;pointer-events:none;z-index:var(--z-gallery-strips)}.gallery-expanded.is-revealed{opacity:1;visibility:visible;pointer-events:none;z-index:var(--z-gallery-back)}.gallery-expanded.is-revealed .gallery-close,.gallery-expanded.is-revealed .gallery-caption{opacity:0;transition:none}.gallery-expanded.is-visible{opacity:1;visibility:visible;pointer-events:auto;z-index:var(--z-gallery-front)}.gallery-expanded.is-visible .gallery-close{opacity:1;transform:scale(1);transition-delay:100ms}.gallery-expanded.is-visible .gallery-caption{opacity:1;transform:translateY(0);transition-delay:200ms}.expanded-image{width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.gallery-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.9);border:none;border-radius:50%;cursor:pointer;opacity:0;transform:scale(0.8);transition:opacity var(--transition-base),transform var(--transition-base),background var(--transition-fast)}.gallery-close:hover,.gallery-close:focus{background:#fff}.gallery-close svg{width:20px;height:20px;color:var(--color-primary)}.gallery-caption{position:absolute;bottom:-50px;left:0;right:0;text-align:center;font-family:var(--font-family-nav);font-size:0.95rem;color:var(--color-text);margin:0;padding:var(--spacing-md) 0;opacity:0;transform:translateY(-10px);transition:opacity var(--transition-base),transform var(--transition-base)}.page-content{padding:var(--spacing-xl) 0}.page-content .container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}.page-content h1{font-family:var(--font-family-nav);font-size:1.5rem;font-weight:normal;color:var(--color-primary);margin-bottom:var(--spacing-lg)}.page-content p{color:var(--color-text-light)}.featured-image{display:flex;align-items:flex-end;gap:var(--spacing-lg);margin:var(--spacing-xl) 0;padding:0}.featured-image img{max-width:400px;width:100%;height:auto;display:block}.featured-image figcaption{font-family:var(--font-family-nav);font-size:0.85rem;color:var(--color-text-light);line-height:1.4;text-align:left;white-space:nowrap}@media (max-width: 600px){.featured-image{flex-direction:column;align-items:flex-start}.featured-image img{max-width:100%}.featured-image figcaption{margin-top:var(--spacing-sm);white-space:normal}}.form-message{display:none;max-width:600px;padding:16px 20px;margin-bottom:var(--spacing-lg);border-radius:var(--border-radius-sm);font-size:0.95rem;line-height:1.5;animation:slideDown 0.3s ease}.form-message-success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.form-message-error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}#contact-form{max-width:600px;margin-top:var(--spacing-xl)}.form-group{margin-bottom:var(--spacing-lg)}#contact-form label{display:block;font-family:var(--font-family-nav);font-size:0.9rem;color:var(--color-text);margin-bottom:var(--spacing-sm)}#contact-form input[type="text"],#contact-form input[type="tel"],#contact-form input[type="email"],#contact-form textarea{width:100%;padding:12px 16px;font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-background);border:2px solid var(--color-border);border-radius:var(--border-radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-appearance:none;appearance:none}#contact-form input[type="text"]:hover,#contact-form input[type="tel"]:hover,#contact-form input[type="email"]:hover,#contact-form textarea:hover{border-color:#bbb}#contact-form input[type="text"]:focus,#contact-form input[type="tel"]:focus,#contact-form input[type="email"]:focus,#contact-form textarea:focus{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(26,26,26,0.1)}#contact-form input[type="text"].is-invalid,#contact-form input[type="tel"].is-invalid,#contact-form input[type="email"].is-invalid,#contact-form textarea.is-invalid{border-color:#dc3545}#contact-form input[type="text"].is-invalid:focus,#contact-form input[type="tel"].is-invalid:focus,#contact-form input[type="email"].is-invalid:focus,#contact-form textarea.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 3px rgba(220,53,69,0.15)}#contact-form textarea{min-height:150px;resize:vertical}.field-error{display:none;color:#dc3545;font-size:0.875rem;margin-top:var(--spacing-sm);animation:fadeIn 0.2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}#contact-form button[type="submit"]{display:inline-block;padding:12px 32px;font-family:var(--font-family-nav);font-size:var(--font-size-base);color:var(--color-background);background-color:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);-webkit-appearance:none;appearance:none}#contact-form button[type="submit"]:hover{background-color:#333;border-color:#333;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,0.15)}#contact-form button[type="submit"]:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,0.1)}#contact-form button[type="submit"]:disabled{background-color:#999;border-color:#999;cursor:not-allowed;transform:none;opacity:0.6}#contact-form button[type="submit"]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.gallery-grid{column-count:3;column-gap:8px;margin-top:var(--spacing-lg)}.gallery-item{display:block;cursor:pointer;overflow:hidden;position:relative;background:#f5f5f5;margin-bottom:8px;break-inside:avoid}.gallery-item img{width:100%;height:auto;display:block;transition:transform var(--transition-base),opacity var(--transition-base)}.gallery-item:hover img{transform:scale(1.05);opacity:0.9}.gallery-item:hover .gallery-caption-overlay,.gallery-item:focus-within .gallery-caption-overlay{transform:translateY(0)}.gallery-caption-overlay{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,0.75);color:white;padding:12px;font-size:0.9rem;font-family:var(--font-family-nav);transform:translateY(100%);transition:transform var(--transition-base)}@media (max-width: 900px){.gallery-grid{column-count:2}}@media (max-width: 600px){.gallery-grid{column-count:1}}@media (max-width: 900px){:root{--gallery-height: 350px;--header-padding-top: 60px}.nav-list{gap:var(--spacing-lg)}.logo-image{max-width:280px}}@media (max-width: 600px){:root{--gallery-height: 280px;--header-padding-top: 24px;--font-size-nav: 1.1rem}.site-header{padding-bottom:var(--spacing-md)}.main-nav{padding:var(--spacing-md) 0 var(--spacing-lg)}html:has(.layout-home),.layout-home{overscroll-behavior-y:none}.layout-home{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.layout-home main,.layout-home .gallery-strip,.layout-home .gallery-container{display:flex;flex-direction:column;flex:1;min-height:0}.gallery-strip{padding:0}.gallery-strips{flex:1;height:auto;min-height:180px;max-height:420px}.nav-list{gap:var(--spacing-sm) var(--spacing-lg);padding:0 var(--spacing-lg)}.logo-image{max-width:240px}.gallery-strips{gap:2px;touch-action:pan-y pinch-zoom}.strip{flex:0 0 8%;min-width:0;transition:flex var(--transition-base)}.strip.is-featured{flex:0 0 60%;pointer-events:none}.strip.is-featured .strip-image{opacity:1}.strip:not(.is-featured){pointer-events:auto}.strip:not(.is-featured) .strip-image{opacity:0.7}.strip-image{width:100vw;left:50%;transform:translateX(-50%)}.mobile-caption{display:block;text-align:center;font-family:var(--font-family-nav);font-size:0.85rem;color:var(--color-text);padding:var(--spacing-md) var(--spacing-sm);margin:0;min-height:3rem;opacity:0;transition:opacity var(--transition-base)}.mobile-caption.is-visible{opacity:1}.gallery-expanded{display:none}.gallery-caption{display:none}}@media (max-width: 400px){.nav-list{gap:var(--spacing-sm) var(--spacing-md)}.nav-list a{font-size:1rem}}@media print{.gallery-strip{display:none}.site-header{padding-top:20px}}
