.hero-grid{padding-bottom:32px}
.works-carousel{position:relative;margin-bottom:34px;scroll-margin-top:110px}
.carousel-stage{position:relative;isolation:isolate;width:100%;min-width:0;aspect-ratio:2.3;min-height:400px;overflow:hidden;border:1px solid #81B6A94D;border-radius:16px;background:#17353F;box-shadow:0 16px 42px #051D2526;touch-action:pan-y pinch-zoom}
.carousel-slides,.carousel-slide{position:absolute;inset:0;margin:0}
.carousel-slide{opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s ease;pointer-events:none}
.carousel-slide.is-active{opacity:1;visibility:visible}
.carousel-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-focus,center);user-select:none;-webkit-user-drag:none}
.carousel-stage::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,#17353F12 0%,#17353F00 48%,#17353F66 73%,#102B34ED 100%);box-shadow:inset 0 0 48px 4px #17353F66}
.carousel-caption{position:absolute;z-index:2;bottom:25px;left:25px;max-width:min(530px,calc(100% - 295px));padding:17px 20px;background:#102D36C9;backdrop-filter:blur(8px);border:1px solid #FFFFFF20;border-radius:10px;pointer-events:none}
.carousel-caption::before{content:"";width:24px;height:2px;display:block;background:#6FD1BA;margin-bottom:10px}
.carousel-caption h2{font-size:21px;letter-spacing:-.03em;line-height:1.25;color:#F4FAF5;margin:0}
.carousel-caption p{font-size:12px;color:#D3E7DE;margin-top:8px;line-height:1.6}
.carousel-controls{position:absolute;right:26px;bottom:23px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.carousel-actions{display:flex;align-items:center;gap:10px}
.carousel-arrow,.carousel-play{display:inline-flex;justify-content:center;align-items:center;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid #83D9C0BF;background:#102D36C7;color:#D7F5E9;backdrop-filter:blur(8px);transition:background .18s,transform .18s;box-shadow:none}
.carousel-arrow:hover,.carousel-play:hover{background:#376E64E6;transform:translateY(-1px)}
.carousel-arrow svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.carousel-play{width:44px;height:44px;font-size:14px;border-color:#89C5B888}
.carousel-pagination{display:flex;align-items:center;gap:13px}
.carousel-dots{display:flex;align-items:center;gap:2px}
.carousel-dot{display:inline-flex;align-items:center;justify-content:center;width:27px;height:44px;padding:0;background:transparent;color:#8DCEC0;border-radius:4px}
.carousel-dot::before{content:"";display:block;height:3px;width:16px;border-radius:4px;background:#6AB6A870;transition:width .18s,background .18s}
.carousel-dot[aria-current=true]::before{width:22px;background:#86E2C8}
.carousel-dot:hover::before{background:#D4F3E3}
.carousel-count{font-size:11px;color:#D9EEE4;font-variant-numeric:tabular-nums;letter-spacing:.08em;white-space:nowrap}
.carousel-credit{font-size:9px;color:#C5DCD6;line-height:1.5;text-align:right}
.carousel-stage:focus-visible{outline:3px solid #77D8BC;outline-offset:5px}
@media(max-width:1100px){.carousel-stage{aspect-ratio:2;min-height:370px}.carousel-caption{left:22px;bottom:22px;max-width:calc(100% - 250px)}.carousel-caption h2{font-size:20px}.carousel-controls{right:22px;bottom:20px}.carousel-actions{gap:8px}}
@media(max-width:800px){.hero-grid{padding-bottom:25px}.works-carousel{margin-bottom:24px;scroll-margin-top:95px}.carousel-stage{aspect-ratio:1.6;min-height:385px}.carousel-caption{left:20px;bottom:113px;max-width:calc(100% - 40px);padding:15px 17px}.carousel-caption h2{font-size:22px;max-width:350px}.carousel-caption p{font-size:12px}.carousel-controls{left:20px;right:20px;bottom:13px;display:grid;grid-template-columns:1fr auto;gap:0 12px;align-items:center}.carousel-actions{grid-row:1;grid-column:2;gap:7px}.carousel-pagination{grid-row:1;grid-column:1;gap:10px}.carousel-credit{grid-column:1/-1;text-align:right;margin-top:8px}.carousel-arrow{width:44px;height:44px}.carousel-play{width:40px;height:44px;border:0;background:transparent;border-radius:4px}.carousel-dot{width:25px}.carousel-count{font-size:10px}}
@media(max-width:580px){.carousel-stage{aspect-ratio:.93;min-height:365px}.carousel-caption{bottom:123px;left:17px;max-width:calc(100% - 34px);padding:14px 15px}.carousel-caption h2{font-size:20px}.carousel-caption p{font-size:11px}.carousel-controls{left:17px;right:17px;bottom:14px;gap:3px 5px}.carousel-actions{gap:4px}.carousel-pagination{gap:7px}.carousel-dot{width:21px}.carousel-dot::before{width:12px}.carousel-dot[aria-current=true]::before{width:17px}.carousel-count{font-size:9px}.carousel-credit{font-size:9px;margin-top:8px}}
@media(max-width:360px){.carousel-stage{min-height:375px}.carousel-controls{left:13px;right:13px}.carousel-actions{gap:2px}.carousel-arrow{width:42px;height:44px}.carousel-play{width:30px}.carousel-pagination{gap:6px}.carousel-dot{width:20px}.carousel-caption{left:14px;max-width:calc(100% - 28px)}}
@media(max-width:580px){.carousel-controls,.carousel-actions{display:contents}.carousel-caption{bottom:96px}.carousel-arrow{position:absolute;z-index:3;top:37%;width:44px;height:44px}.carousel-prev{left:12px}.carousel-next{right:12px}.carousel-play{position:absolute;z-index:3;right:17px;top:17px;width:44px;height:44px;border:1px solid #89C5B888;background:#102D36C7;border-radius:50%}.carousel-pagination{position:absolute;z-index:3;bottom:30px;left:17px;right:17px;display:flex;justify-content:space-between;gap:10px}.carousel-dot{width:36px;height:44px}.carousel-dot::before{width:17px}.carousel-dot[aria-current=true]::before{width:24px}.carousel-count{font-size:10px}.carousel-credit{position:absolute;z-index:3;right:17px;bottom:13px;margin:0;font-size:9px}}
@media(prefers-reduced-motion:reduce){.carousel-slide,.carousel-arrow,.carousel-play,.carousel-dot::before{transition:none}.carousel-arrow:hover,.carousel-play:hover{transform:none}}
