:root { --ink:#131313; --muted:#696969; --line:#ddddda; --paper:#fff; --soft:#f5f5f2; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; }
.footer-contact { grid-column:1 / -1; padding-bottom:36px; border-bottom:1px solid #555; margin-bottom:12px; }.footer-contact .contact-intro { font-size:clamp(1rem,1.6vw,1.5rem); text-transform:uppercase; text-align:center; line-height:1.5; }.contact-links { display:flex; justify-content:space-evenly; flex-wrap:wrap; gap:24px; margin-top:30px; }.contact-links a { display:inline-flex; align-items:center; gap:16px; min-height:44px; font-size:1.2rem; text-decoration:none; }.contact-links a:hover { text-decoration:underline; text-underline-offset:5px; }.contact-links svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.4; flex-shrink:0; }
.site-header { align-items:center; display:flex; justify-content:space-between; padding:22px clamp(20px,5vw,78px); border-bottom:1px solid var(--line); }
.brand,.footer-brand { font-family:Georgia, 'Times New Roman', serif; text-decoration:none; font-size:1.55rem; line-height:.85; letter-spacing:-.07em; }
.brand span,.footer-brand span { display:block; font:500 .53rem/1.2 Arial,sans-serif; letter-spacing:.25em; text-transform:uppercase; margin:7px 0 0 5px; }
nav { display:flex; gap:clamp(14px,2.8vw,40px); } nav a { font-size:.79rem; text-decoration:none; text-transform:uppercase; letter-spacing:.09em; } nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.hero { min-height:73vh; padding:clamp(80px,14vw,190px) clamp(20px,12vw,190px) 100px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.eyebrow { margin:0 0 18px; color:var(--muted); font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; }
h1,h2,h3 { font-family:Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.055em; }
h1 { font-size:clamp(3.4rem,8vw,8.3rem); line-height:.9; margin:0; max-width:1100px; }.hero-title { cursor:default; }.hero-line { display:block; }.hero-letter { display:inline-block; color:var(--ink); transition:transform .58s cubic-bezier(.2,.8,.2,1),color .18s ease,filter .45s ease; will-change:transform,color,filter; }.hero-title.is-photo-mode .hero-letter.is-revealed { -webkit-background-clip:text; background-clip:text; background-image:var(--letter-image); background-position:center; background-size:cover; color:transparent; -webkit-text-fill-color:transparent; filter:contrast(1.12) saturate(.92); transform:translateY(var(--letter-lift)) rotate(var(--letter-turn)) scale(1.045); }
.hero-copy { max-width:470px; font-size:1.05rem; margin:32px 0 22px; }.text-link { font-size:.85rem; text-underline-offset:5px; }.packages-link { align-items:center; display:inline-flex; gap:6px; margin:4px 0 0; text-decoration:none; transition:transform .2s ease; }.packages-link::after { background:var(--ink); content:""; display:block; height:1px; left:0; position:absolute; transform:scaleX(.55); transform-origin:left; transition:transform .25s ease; width:100%; }.packages-link { position:relative; padding-bottom:5px; }.packages-arrow { animation:packages-arrow 1.7s ease-in-out infinite; display:inline-block; }
@media (hover:hover) and (pointer:fine) { .packages-link:hover { transform:translateX(4px); }.packages-link:hover::after { transform:scaleX(1); } }
.about-hero { display:grid; grid-template-columns:minmax(300px, .92fr) 1.08fr; min-height:calc(100vh - 79px); }.about-image { background:var(--soft); overflow:hidden; }.about-image img { display:block; width:100%; height:100%; min-height:600px; object-fit:cover; object-position:center 30%; filter:grayscale(1); }.about-copy { align-self:end; padding:clamp(48px,9vw,150px); }.about-copy h1 { font-size:clamp(3.7rem,7vw,7.8rem); }.about-role { font-size:1.2rem; margin:30px 0 0; }.about-location { color:var(--muted); margin:8px 0 0; }.about-note { border-top:1px solid var(--line); padding:clamp(55px,9vw,140px) clamp(20px,12vw,190px); }.about-note p { font:400 clamp(2rem,4.1vw,4.8rem)/.98 Georgia,'Times New Roman',serif; letter-spacing:-.055em; max-width:950px; margin:0 0 35px; }
.section-intro { padding:0 clamp(20px,5vw,78px) 34px; }.section-intro h2,.booking h2 { margin:0; font-size:clamp(2.7rem,5vw,5.6rem); line-height:.9; }
.carousel-section { padding:92px 0 105px; border-top:1px solid var(--line); overflow:hidden; }.photo-rails { display:grid; gap:16px; }.viewport { overflow:hidden; }.track { display:flex; gap:16px; width:max-content; }.track img { display:block; width:260px; height:335px; object-fit:cover; filter:saturate(.88); }.track-left { animation:slide-left 56s linear infinite; }.track-right { animation:slide-right 64s linear infinite; }.photo-rails.is-paused .track { animation-play-state:paused; }.carousel-controls { display:flex; align-items:center; gap:8px; margin:22px clamp(20px,5vw,78px) 0; }.carousel-controls button { border:1px solid var(--ink); background:var(--paper); color:var(--ink); cursor:pointer; font:500 .76rem/1 Arial,sans-serif; letter-spacing:.06em; min-height:44px; padding:0 13px; }.carousel-controls button:hover { background:var(--ink); color:var(--paper); }.carousel-controls .carousel-toggle { min-width:104px; }
@media (hover:hover) and (pointer:fine) { .photo-rails:hover .track { animation-play-state:paused; } }
@keyframes slide-left { to { transform:translateX(calc(-50% - 8px)); } } @keyframes slide-right { from { transform:translateX(calc(-50% - 8px)); } to { transform:translateX(0); } }
@keyframes packages-arrow { 0%,100% { transform:translateY(0); } 50% { transform:translateY(4px); } }
.packages { padding:100px clamp(20px,5vw,78px); border-top:1px solid var(--line); }.packages .section-intro { padding:0 0 45px; }.package-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ink); }.package-card { min-height:400px; padding:20px 22px 28px; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); display:flex; flex-direction:column; }.package-card:first-child { border-left:1px solid var(--ink); }.package-card.featured { background:var(--ink); color:white; }.package-number { margin:0; font-size:.75rem; }.package-card h3 { font-size:2rem; line-height:.95; margin:45px 0 9px; }.package-type { color:var(--muted); font-size:.78rem; margin:0; }.featured .package-type { color:#bfbfba; }.price { font:400 2rem/1 Georgia,serif; margin:25px 0; }.package-card ul { list-style:none; padding:0; margin:auto 0 0; font-size:.78rem; }.package-card li { border-top:1px solid currentColor; padding:8px 0; }
.booking { background:var(--soft); padding:90px clamp(20px,10vw,170px); display:grid; grid-template-columns:1fr 1.35fr; gap:80px; }.booking ul { margin:0; padding:0; list-style:none; }.booking li { display:grid; grid-template-columns:minmax(140px,180px) minmax(0,1fr); gap:20px; border-top:1px solid var(--ink); padding:18px 0; }.booking li span { min-width:0; }.booking strong { font:400 1.25rem Georgia,serif; }.booking-terms-list li { color:#424242; font-size:.94rem; line-height:1.55; }.booking-terms-list strong { color:var(--ink); font-size:1rem; overflow-wrap:anywhere; }
footer { background:var(--ink); color:white; padding:60px clamp(20px,5vw,78px); display:grid; grid-template-columns:1.4fr 1fr 1fr; align-items:end; gap:28px; } footer p { margin:0; font-size:.78rem; color:#e5e5e2; }.footer-brand { color:white; font-size:2rem; }
@media (max-width:900px) { .about-hero { grid-template-columns:1fr 1fr; min-height:560px; }.about-image img { min-height:560px; }.package-grid { grid-template-columns:repeat(2,1fr); }.package-card:nth-child(3) { border-left:1px solid var(--ink); }.package-card { min-height:350px; }.booking { grid-template-columns:1fr; gap:45px; } }
@media (max-width:600px) { .site-header { padding-top:18px; padding-bottom:18px; } nav { gap:10px; } nav a { font-size:.61rem; }.hero { min-height:64vh; }.packages-cta { gap:12px; }.packages-preview { height:56px; width:112px; }.packages-preview img { height:54px; width:40px; }.packages-preview img:nth-child(2) { left:32px; }.packages-preview img:nth-child(3) { left:67px; }.about-hero { grid-template-columns:1fr; min-height:0; }.about-image img { min-height:430px; height:430px; }.about-copy { padding:52px 20px 58px; }.about-note { padding:70px 20px; }.track img { width:190px; height:245px; }.packages { padding-top:76px; padding-bottom:76px; }.package-grid { grid-template-columns:1fr; }.package-card { border-left:1px solid var(--ink); min-height:300px; }.package-card h3 { margin-top:32px; }.booking { padding-top:72px; padding-bottom:72px; }.booking li { grid-template-columns:minmax(118px,35%) minmax(0,1fr); gap:12px; } footer { grid-template-columns:1fr; gap:16px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.track,.packages-arrow { animation:none; } }
