/* Ghost Boat — ghostboatfilm.com
   Tokens mirror the Ghost Boat Design System (tokens/*.css). Fonts are self-hosted (latin subset). */

@font-face{font-family:"Saira Condensed";font-style:normal;font-weight:300;font-display:swap;src:url("assets/fonts/SairaCondensed-300.woff2") format("woff2")}
@font-face{font-family:"Saira Condensed";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/SairaCondensed-400.woff2") format("woff2")}
@font-face{font-family:"Saira Condensed";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/SairaCondensed-500.woff2") format("woff2")}
@font-face{font-family:"Saira Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/SairaCondensed-600.woff2") format("woff2")}
@font-face{font-family:"Mukta";font-style:normal;font-weight:300;font-display:swap;src:url("assets/fonts/Mukta-300.woff2") format("woff2")}
@font-face{font-family:"Mukta";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Mukta-400.woff2") format("woff2")}
@font-face{font-family:"Mukta";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/Mukta-500.woff2") format("woff2")}
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/CourierPrime-400.woff2") format("woff2")}

:root{
--black:#0B0C0C;--black-800:#161817;--grey-700:#2C302F;--grey-600:#3D4241;--grey-400:#878C8B;--grey-300:#B4B6B1;
--fog:#F3F1EC;--teal:#6E8A84;--teal-haze:#8AA39D;--sea:#58726B;--red:#A44D4D;
--hair:rgba(243,241,236,.14);
--font-display:"Saira Condensed","Arial Narrow",sans-serif;
--font-body:"Mukta",system-ui,-apple-system,"Segoe UI",sans-serif;
--font-mono:"Courier Prime","Courier New",monospace;
--ls-overline:.22em;--ls-wide:.34em;
--gutter:clamp(1.25rem,5vw,4rem);
--section-y:clamp(6rem,14vw,12rem);
--measure:38rem;--content-max:1280px;
--ease-emerge:cubic-bezier(.16,.84,.44,1);--ease-fade:cubic-bezier(.22,.61,.36,1);
--dur-fast:240ms;--dur-slow:1200ms;--dur-tide:2400ms;
--img-grade:saturate(.86) contrast(.94) brightness(1.02);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4rem}
body{margin:0;background:var(--black);color:var(--fog);font-family:var(--font-body);font-weight:300;font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
h1,h2,p,dl,dd,figure,ul{margin:0}
ul{padding:0;list-style:none}
em{font-style:italic}
a{color:inherit;text-decoration:none;transition:color var(--dur-fast) var(--ease-fade),opacity var(--dur-fast) var(--ease-fade),border-color var(--dur-fast) var(--ease-fade)}
a:hover{color:var(--teal-haze)}
:focus-visible{outline:2px solid var(--teal-haze);outline-offset:4px;border-radius:2px}
::selection{background:var(--sea);color:var(--fog)}

.skip{position:absolute;left:var(--gutter);top:-100px;z-index:100;padding:.75rem 1rem;background:var(--fog);color:var(--black);font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.04em}
.skip:focus{top:1rem;color:var(--black)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}

.icon{width:1.125rem;height:1.125rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.icon .fill{fill:currentColor;stroke:none}

/* Header */
.site-header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem var(--gutter);padding-top:max(1.25rem,env(safe-area-inset-top));transition:background-color var(--dur-slow) var(--ease-fade),padding var(--dur-slow) var(--ease-fade)}
.site-header::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--hair);opacity:0;transition:opacity var(--dur-slow) var(--ease-fade)}
.site-header.is-scrolled{background:rgba(11,12,12,.88);padding-block:.875rem}
.site-header.is-scrolled::after{opacity:1}
.site-header__mark{font-family:var(--font-display);font-weight:400;font-size:1.25rem;letter-spacing:.02em;line-height:1;opacity:0;transform:translateY(4px);transition:opacity var(--dur-slow) var(--ease-fade),transform var(--dur-slow) var(--ease-emerge),color var(--dur-fast) var(--ease-fade)}
.site-header.is-scrolled .site-header__mark{opacity:1;transform:none}
.site-nav{display:flex;gap:clamp(1.25rem,3vw,2.5rem)}
.site-nav a{display:inline-block;padding-block:.5rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--grey-300)}
.site-nav a:hover{color:var(--fog)}
@media (max-width:30rem){body:not(.page-legal) .site-header__mark{display:none}body:not(.page-legal) .site-header{justify-content:flex-end}.site-nav{gap:1.25rem}.site-nav a{font-size:.6875rem;letter-spacing:.16em}}

/* Hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:var(--black)}
.hero__media,.hero__media img{position:absolute;inset:0;width:100%;height:100%}
.hero__media img{object-fit:cover;object-position:50% 50%;filter:var(--img-grade);transform-origin:50% 60%}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(11,12,12,.55) 0%,rgba(11,12,12,.12) 22%,rgba(11,12,12,.18) 45%,rgba(11,12,12,.62) 72%,rgba(11,12,12,.94) 100%)}
.hero__content{position:relative;z-index:1;align-self:end;width:100%;padding:0 var(--gutter) clamp(5.5rem,13vh,9rem);text-align:center}
.hero__title{font-family:var(--font-display);font-weight:600;text-transform:uppercase;font-size:clamp(4rem,min(14vw,20vh),12.5rem);line-height:.9;letter-spacing:.01em;color:var(--fog)}
.hero__credit{margin-top:clamp(1rem,2.4vw,1.75rem);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.5;color:var(--fog);text-wrap:balance}
.hero__status{position:absolute;z-index:1;left:0;right:0;bottom:max(2.25rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:.875rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:var(--ls-wide);color:var(--grey-300);padding-left:var(--ls-wide)}
.tick{width:1.5rem;height:1px;background:var(--red)}

.js .hero__media img{animation:drift 26s var(--ease-fade) both}
.js .hero__content,.js .hero__status{animation:surface var(--dur-tide) var(--ease-emerge) both}
.js .hero__credit{animation:surface var(--dur-tide) var(--ease-emerge) .5s both}
.js .hero__status{animation-delay:1.1s}
@keyframes drift{from{transform:scale(1.09)}to{transform:scale(1)}}
@keyframes surface{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Sections */
.section{padding-block:var(--section-y)}
.grid{display:grid;gap:2.5rem}
.section__label{display:flex;align-items:center;gap:.875rem;font-family:var(--font-mono);font-weight:400;font-size:.8125rem;line-height:1.4;letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--grey-400)}
.section__label::before{content:"";width:1.5rem;height:1px;background:var(--teal)}
@media (min-width:56rem){
.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem}
.section__label{grid-column:1 / span 3;align-self:start;margin-top:.9rem}
}

/* The Film */
.film__text{max-width:var(--measure);display:grid;gap:1.5rem}
.film__text p{font-size:clamp(1.0625rem,1.3vw,1.1875rem);line-height:1.85;color:var(--grey-300);text-wrap:pretty}
.film__text .lead{margin-bottom:1.25rem;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.38;color:var(--fog);text-wrap:balance}
@media (min-width:56rem){.film__text{grid-column:5 / span 7}}

/* Still */
.still{position:relative;overflow:hidden;background:var(--black-800);aspect-ratio:16 / 9}
.still img{width:100%;height:100%;object-fit:cover;filter:var(--img-grade)}
@media (max-width:40rem){.still{aspect-ratio:4 / 5}.still--amena img{object-position:52% 50%}.still--beach img{object-position:38% 50%}}
.js .still.reveal img{transform:scale(1.06);transition:transform 3.2s var(--ease-emerge)}
.js .still.reveal.is-visible img{transform:none}

/* Credits */
.credits{text-align:center}
.credits__inner{display:flex;flex-direction:column;align-items:center}
.credits__title{font-family:var(--font-display);font-weight:300;font-size:clamp(3rem,7vw,5.5rem);line-height:.95;letter-spacing:.005em}
.credits__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.75rem;margin-top:1.75rem;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--grey-400)}
.credits__list{display:grid;gap:2.5rem;margin-top:clamp(3.5rem,7vw,5.5rem);padding-top:clamp(3.5rem,7vw,5.5rem);border-top:1px solid var(--hair);width:min(100%,36rem)}
.credits__list dt{font-family:var(--font-mono);font-size:.75rem;letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--grey-400)}
.credits__list dd{margin-top:.5rem;font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,3vw,2.125rem);line-height:1.2;letter-spacing:.01em;text-wrap:balance}
.credits__company{margin-top:clamp(3rem,6vw,4.5rem);font-size:1rem;color:var(--grey-300)}

/* Contact */
.contact{}
.contact__body{display:grid;gap:1.25rem}
.contact__intro{color:var(--grey-300);max-width:30rem}
.contact__email{display:inline-block;font-family:var(--font-display);font-weight:300;font-size:clamp(1.875rem,5.4vw,4rem);line-height:1.1;letter-spacing:.005em;overflow-wrap:anywhere;padding-bottom:.25rem;border-bottom:1px solid var(--hair)}
.contact__email:hover{border-color:var(--teal-haze)}
.social{display:flex;flex-wrap:wrap;gap:.75rem 2.5rem;margin-top:2rem}
.social a{display:inline-flex;align-items:center;gap:.75rem;min-height:44px;font-family:var(--font-mono);font-size:.875rem;letter-spacing:.04em;color:var(--grey-300)}
.social a:hover{color:var(--teal-haze)}
@media (min-width:56rem){.contact__body{grid-column:5 / span 8}}

/* Footer */
.site-footer{border-top:1px solid var(--hair);padding-block:2rem max(2rem,env(safe-area-inset-bottom))}
.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem}
.site-footer p{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.04em;color:var(--grey-400)}
.site-footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 2rem}
.site-footer__legal ul{display:flex;gap:1.5rem}
.site-footer__legal a{display:inline-block;padding-block:.75rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.04em;color:var(--grey-400)}
.site-footer__legal a:hover{color:var(--fog)}
.site-footer__links{display:flex;gap:.5rem;margin-right:-.75rem}
.site-footer__links a{display:inline-grid;place-items:center;width:44px;height:44px;color:var(--grey-400)}
.site-footer__links a:hover{color:var(--fog)}

/* Legal pages */
.page-legal .site-header__mark{display:block}
.legal{padding-block:clamp(8rem,16vw,11rem) var(--section-y)}
.legal__body{max-width:var(--measure);color:var(--grey-300);text-wrap:pretty}
.legal__body h1{margin:0;font-family:var(--font-display);font-weight:300;font-size:clamp(2.75rem,7vw,4.5rem);line-height:1;color:var(--fog)}
.legal__eyebrow,.legal__date{font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.04em;color:var(--grey-400)}
.legal__eyebrow{margin-bottom:1.25rem;letter-spacing:var(--ls-overline);text-transform:uppercase}
.legal__date{margin:1.25rem 0 3.5rem}
.legal__body h2{margin:3.5rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--hair);font-family:var(--font-display);font-weight:400;font-size:1.625rem;line-height:1.2;color:var(--fog)}
.legal__body h3{margin:2rem 0 .5rem;font-family:var(--font-body);font-weight:500;font-size:1.0625rem;color:var(--fog)}
.legal__body p+p,.legal__body p+ul,.legal__body ul+p,.legal__body p+dl,.legal__body dl+p,.legal__body p+.legal__address,.legal__address+p{margin-top:1rem}
.legal__body a{color:var(--fog);border-bottom:1px solid var(--hair);overflow-wrap:anywhere}
.legal__body a:hover{color:var(--teal-haze);border-color:var(--teal-haze)}
.legal__address{color:var(--fog)}
.legal__list{display:grid;gap:.25rem}
.legal__rights{display:grid;gap:1rem}
.legal__rights dt{display:inline;font-weight:500;color:var(--fog)}
.legal__rights dd{display:inline;margin:0 0 0 .25rem}
.legal__rights div{margin:0}
.notfound{min-height:calc(100vh - 7rem);min-height:calc(100svh - 7rem);display:flex;align-items:center}
.legal__body .notfound__text{margin-top:1.75rem;max-width:30rem}
.legal__body .notfound__link{display:inline-block;margin-top:1.5rem;padding-block:.5rem;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:var(--ls-overline);text-transform:uppercase}

/* Reveal on scroll (only when JS is running) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dur-slow) var(--ease-fade),transform var(--dur-slow) var(--ease-emerge)}
.js .reveal.is-visible{opacity:1;transform:none}
.js .still.reveal{transform:none}

@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
.js .reveal,.js .still.reveal img{opacity:1;transform:none}
}
