.ice-title-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.paint-page[data-paint-theme="ice"]{--page-paint:#b9e8f8;--page-secondary:#5d9bcc;--page-line:#426a80}
.ice-slideshow:after{background:linear-gradient(180deg,#061c3540,#07192c15 30%,#07192c50 70%,#0e0e19)}
.ice-title{width:min(82%,860px);padding:24px 0;filter:drop-shadow(0 4px 14px #062e4e99)}
.ice-title h1{margin:0;line-height:0}
.ice-title h1 img{display:block;width:100%;height:auto}
.ice-title .eyebrow{font-size:.65rem;letter-spacing:.24em;text-shadow:0 2px 8px #062e4e;margin-bottom:30px}
.cinematic-projects .ice-wordmark{width:min(95%,440px);margin-top:20px;filter:drop-shadow(0 3px 10px #062e4eaa)}
.project-cover .ice-card-lettering{position:static;display:block;width:100%;height:auto;object-fit:contain;transform:none!important;transition:none}
.ice-summary .project-cover:after{background:linear-gradient(180deg,#08243910,#08243925 40%,#181726)}
.ice-gallery{max-width:1280px;width:calc(100% - 150px);margin:0 auto 90px}
.ice-gallery .section-heading h2{font-size:clamp(2rem,4vw,3.4rem)}
.ice-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 24px}
.ice-gallery figure{margin:0;min-width:0}
.ice-gallery figure a{display:block;border-radius:8px;overflow:hidden;outline-offset:5px}
.ice-gallery img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}
.ice-gallery figcaption{font-size:.85rem;color:#b6cbd6;padding-top:12px;line-height:1.5}
@media(max-width:580px){.ice-title{width:88%}.ice-title .eyebrow{font-size:.5rem;letter-spacing:.16em;margin-bottom:24px}.ice-gallery{width:calc(100% - 40px);margin-bottom:55px}.ice-gallery-grid{grid-template-columns:1fr;gap:24px}.cinematic-projects .ice-wordmark{width:94%}}
.ice-title{position:relative}
.ice-title h1,.cinematic-projects .ice-wordmark{position:relative;isolation:isolate}
.ice-title h1 img,.ice-wordmark .ice-card-lettering{position:relative;z-index:1}
/* Snow sweeps the title into view; existing icicle silhouettes grow separately. */
.ice-title.is-animated h1{animation:ice-reveal 2.1s .25s both}
.ice-title h1 img.ice-freeze{position:absolute;inset:auto;pointer-events:none;transform-origin:50% 0;animation:ice-extend 1.65s var(--freeze-delay,1.5s) both}
@keyframes ice-extend{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ice-snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.ice-motion-control{position:absolute;right:24px;top:28px;z-index:5;background:#0b192dcc;color:#e2f5ff;border:1px solid #b7e6ff60;border-radius:20px;padding:9px 14px;font-size:.72rem}
.ice-title.is-paused h1,.ice-title.is-paused .ice-freeze,.ice-title.is-paused:after{animation-play-state:paused!important}
@keyframes ice-reveal{0%,10%{clip-path:inset(0 100% 0 0);filter:blur(12px);transform:translateX(-24px);opacity:0}35%{opacity:1}100%{clip-path:inset(-30% -30% -40% -30%);filter:blur(0);transform:translateX(0);opacity:1}}
@media(max-width:580px){.ice-motion-control{right:16px;top:24px;font-size:.62rem;padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.ice-title.is-animated h1,.ice-title.is-animated .ice-freeze,.ice-title.is-animated:after{animation:none!important}.ice-title.is-animated h1>img:first-of-type{mask-image:none;-webkit-mask-image:none}.ice-snow,.ice-motion-control{display:none!important}.ice-freeze{transform:none!important}}

.ice-title.is-loading h1{opacity:0}

/* Keep the title's snow scene free of paint overlays. */
.ice-slideshow .hero-paint{display:none}
