@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap');
:root{--bg:#101010;--ink:#ece8e1;--muted:#aaa5a0;--purple:#b3a0c2;--line:#353333}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}header{height:94px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.logo{font-size:23px;line-height:1;letter-spacing:3px}.logo span{display:block;font-size:10px;letter-spacing:6px;margin-top:8px}nav{display:flex;gap:36px;font-size:14px}.langs{display:flex;gap:9px;font-size:14px}.langs button{border:0;background:none;color:#777;padding:5px;cursor:pointer}.langs button.active{color:var(--ink)}.hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;min-height:850px;padding:64px 5% 118px;overflow:hidden;gap:6%}.eyebrow{font-size:12px;font-weight:600;letter-spacing:2px;margin:0 0 32px;color:var(--purple)}h1,h2,h3,p{margin-top:0}h1{font:normal clamp(64px,7.5vw,118px)/.99 Georgia,'Times New Roman',serif;letter-spacing:-4px;margin-bottom:30px}h2{font:normal clamp(45px,5.1vw,78px)/1.08 Georgia,serif;letter-spacing:-2px;margin-bottom:35px}.intro{color:var(--muted);margin:0 0 32px}.button{display:inline-block;padding:17px 30px;border:1px solid var(--purple);font-size:14px;background:var(--purple);color:#151216;transition:background .2s}.button:hover{background:#d0bbdf}.hero-photo{margin:0;align-self:start;width:100%;max-width:520px;justify-self:end}.hero-photo img{width:100%;height:auto;display:block}.hero-photo figcaption{font-size:11px;letter-spacing:2px;padding-top:12px;color:var(--muted)}.hero-bottom{display:flex;flex-direction:column;gap:22px;margin-top:55px;font-size:12px;letter-spacing:1px}.hero-bottom span{color:var(--muted)}.hero-word{position:absolute;bottom:-52px;left:3.5%;font:normal 20vw/.95 Georgia,serif;color:#202020;letter-spacing:-12px;pointer-events:none;z-index:-1}.hero-copy{z-index:1}.section{padding:105px 5%;border-top:1px solid var(--line)}.section-heading{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:35px;align-items:start}.section-heading>p:last-child{color:var(--muted);padding-top:16px}.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:35px}.work-slot{aspect-ratio:3/4;background:#181718;border:1px solid #302b33;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;position:relative}.work-slot:nth-child(2){margin-top:60px}.work-slot>span{position:absolute;top:22px;left:26px;font:italic 30px Georgia;color:#6d606f}.work-slot p{font-size:14px;margin-bottom:7px;color:#bcb3c1}.work-slot small{font-size:12px;color:#847b87}.about{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.about figure{margin:0}.about img{display:block;width:100%;height:auto}.about figcaption{font-size:11px;letter-spacing:2px;color:var(--muted);margin-top:15px}.about .large{font-size:22px;line-height:1.5}.about p:not(.eyebrow){color:var(--muted)}.text-link{display:inline-block;border-bottom:1px solid var(--purple);padding:10px 0;margin-top:20px}.booking{background:var(--purple);color:#211c24}.booking .eyebrow{color:#4e4057}.booking-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:10%;align-items:center}.booking h2{font-size:clamp(50px,5.8vw,90px)}.booking .light{background:var(--ink);border-color:var(--ink);margin-top:15px}.booking-meta{border-top:1px solid #8d7c99;display:flex;justify-content:space-between;margin-top:55px;padding-top:22px;font-size:12px;letter-spacing:2px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:65px}.steps article{border-top:1px solid var(--line);padding-top:23px}.steps span{font:italic 29px Georgia;color:var(--purple)}h3{font-size:20px;font-weight:500;margin:23px 0 15px}.steps p{color:var(--muted);font-size:15px}.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:10%}details{border-top:1px solid var(--line)}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:24px 35px 24px 0;list-style:none;position:relative;font-size:18px}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:5px;color:var(--purple);font-size:26px;top:15px}details[open] summary:after{content:'−'}details p{color:var(--muted);padding-right:35px}.footer-top{display:grid;grid-template-columns:1.5fr 1fr;gap:10%;align-items:center}.contact-pending{color:var(--muted);font-size:14px}.footer-logo{font:normal clamp(45px,10.5vw,160px)/1.3 Georgia,serif;letter-spacing:-4px;display:block;padding:50px 0 35px;border-bottom:1px solid var(--line)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:24px;font-size:11px;letter-spacing:1px;color:var(--muted)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--purple);outline-offset:6px}nav a:hover,.text-link:hover{color:var(--purple)}@media(min-width:1600px){header,main{max-width:1700px;margin:auto}}@media(max-width:760px){header{height:80px;padding:0 6%}nav{display:none}.hero{grid-template-columns:1fr;padding:44px 6% 70px;gap:45px;min-height:0}h1{font-size:70px;letter-spacing:-3px}.hero-photo{max-width:none}.hero-bottom{margin-top:30px}.hero-word{display:none}.section{padding:64px 6%}.section-heading,.about,.booking-grid,.faq,.footer-top{grid-template-columns:1fr;gap:26px}.section-heading>p:last-child{padding:0}.gallery{gap:12px;grid-template-columns:1fr}.work-slot{aspect-ratio:4/3}.work-slot:nth-child(2){margin-top:0}.about{gap:45px}.steps{grid-template-columns:1fr 1fr;gap:25px;margin-top:35px}.booking-meta{font-size:10px;letter-spacing:.5px;gap:15px}.footer-logo{letter-spacing:-2px;padding-top:20px}.footer-bottom{flex-wrap:wrap;font-size:10px}h2{letter-spacing:-1px}.eyebrow{margin-bottom:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.work{margin:0}.work img{display:block;width:100%;height:auto}.work figcaption{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);padding:14px 0}.work figcaption span:last-child{font-size:10px;letter-spacing:1px}.gallery{align-items:start;row-gap:36px}.work:nth-child(3n+2){margin-top:50px}.more-work{margin-top:50px}.more-work summary{font-size:15px}.contact-links{display:flex;flex-direction:column;gap:14px;margin-top:30px}.contact-links a{padding:10px 0;border-bottom:1px solid var(--line)}.hero-word{z-index:0}.hero-photo{z-index:1}.hero-copy{position:relative}@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr}.work:nth-child(3n+2){margin-top:0}.work figcaption{flex-direction:column}.hero-word{display:none}}
/* Motion and polished interaction finishes */
.button,.booking .button.light{position:relative;overflow:hidden;background:linear-gradient(135deg,#252525,#111);color:#eee8df;border:1px solid #a99c86;box-shadow:inset 0 1px 0 #ffffff12;letter-spacing:.5px;transition:transform .25s,box-shadow .3s,border-color .3s}
.button::before{content:'';position:absolute;inset:-100% -50%;background:linear-gradient(100deg,transparent 40%,#ffffff18 50%,transparent 60%);transform:translateX(-65%);transition:transform .7s;pointer-events:none}
.button:hover,.button:focus-visible,.booking .button.light:hover{background:linear-gradient(135deg,#30302d,#171717);border-color:#e5d5b8;box-shadow:0 8px 28px #0003;transform:translateY(-3px)}
.button:hover::before,.button:focus-visible::before{transform:translateX(65%)}
a,button,summary{-webkit-tap-highlight-color:transparent}a:active,button:active{transform:translateY(1px) scale(.98)}
nav a,.hero-bottom a,.footer-bottom a,.contact-links a{position:relative;transition:color .25s,transform .25s}
nav a::after,.hero-bottom a::after,.footer-bottom a::after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover::after,nav a:focus-visible::after,.hero-bottom a:hover::after,.footer-bottom a:hover::after{transform:scaleX(1)}
.langs button{transition:color .25s,background .25s;min-width:38px;border-bottom:1px solid transparent}.langs button:hover{color:var(--ink);background:#ffffff0b}.langs button.active{border-bottom-color:var(--purple)}
.contact-links a:hover{color:var(--ink);transform:translateX(6px);border-color:#c1b198}.work a{display:block;position:relative;cursor:zoom-in;outline-offset:5px;transition:box-shadow .35s,transform .35s}.work a:hover,.work a:focus-visible{box-shadow:0 0 0 1px #c5b59c;transform:translateY(-5px)}
.work a::after{content:'+';position:absolute;bottom:16px;right:16px;display:grid;place-items:center;width:40px;height:40px;background:#111d;border:1px solid #d4c7b7;color:#fff;border-radius:50%;opacity:0;transform:scale(.8);transition:opacity .3s,transform .3s}.work a:hover::after,.work a:focus-visible::after{opacity:1;transform:scale(1)}
summary{transition:color .25s,background .25s}summary:hover{color:#ddccb2;background:#ffffff04}summary::after{transition:transform .3s}details[open] summary::after{transform:rotate(180deg)}details[open]>p,details[open]>.gallery{animation:unfold .4s ease both}
@keyframes unfold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.motion .reveal{opacity:0;transform:translateY(35px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.65,.3,1);transition-delay:var(--delay,0ms)}.motion .reveal.shown{opacity:1;transform:none}.motion .hero-copy{animation:unfold 1s ease both}.motion .hero-photo{animation:unfold 1.2s .15s ease both}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:#c8b99f;transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}
.viewer{padding:0;border:1px solid #665e52;background:#121212;color:var(--ink);width:min(960px,94vw);max-width:94vw;max-height:94dvh;box-shadow:0 25px 100px #0009}.viewer::backdrop{background:#000d;backdrop-filter:blur(5px)}.viewer[open]{animation:unfold .25s ease}.viewer-top{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--line)}.viewer button{background:none;border:1px solid #5b5247;color:var(--ink);cursor:pointer;padding:8px 16px;transition:background .2s;min-height:44px}.viewer button:hover{background:#ffffff15}.viewer img{display:block;max-width:100%;width:auto;height:auto;max-height:70dvh;margin:16px auto;object-fit:contain}.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px}.viewer-caption{font-size:14px}.viewer-count{color:var(--muted);font-size:12px}body.viewer-open{overflow:hidden}
@media(hover:none){.work a::after{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.motion .reveal{opacity:1;transform:none}*,*::before,*::after{animation:none!important;transition:none!important}.button:hover,.work a:hover{transform:none}}
.about-toggle{background:none;color:var(--ink);font:inherit;border:0;border-bottom:1px solid var(--purple);cursor:pointer}.about-toggle:hover{color:var(--purple)}#about-story{margin-top:28px;padding-top:25px;border-top:1px solid var(--line);animation:unfold .4s ease}#about-story[hidden]{display:none}.booking-open{cursor:pointer;font:inherit}.booking-dialog{width:min(620px,94vw);max-height:92dvh;padding:0;background:#151515;color:var(--ink);border:1px solid #746653}.booking-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}.booking-dialog[open]{animation:unfold .3s ease}.booking-dialog form{padding:28px}.booking-dialog h2{font-size:40px}.booking-dialog label{display:block;margin:20px 0 8px;font-size:14px}.booking-dialog input{width:100%;padding:13px;background:#202020;border:1px solid #5b5247;color:var(--ink);font:inherit;min-width:0}.booking-dialog input:focus{outline:1px solid #d9c4a5;outline-offset:2px}.booking-dialog input[type=file]{font-size:14px}.form-note{font-size:13px;color:var(--muted);margin:10px 0 20px}.booking-dialog .text-link{margin-left:15px;font-size:14px}.form-status{margin-top:22px;font-size:14px;color:#e0ccad}.booking-close{cursor:pointer}@media(max-width:500px){.booking-dialog form{padding:20px}.booking-dialog h2{font-size:32px}.booking-dialog .text-link{margin-left:0;display:block;width:fit-content}}
/* Booking: dark editorial invitation */
.booking{position:relative;background:radial-gradient(ellipse at 92% 5%,#342a3b66,transparent 55%),linear-gradient(125deg,#1c1b1b,#121212 70%);color:var(--ink);margin:32px 3%;padding:76px 5%;border:1px solid #685c4a;box-shadow:inset 0 0 0 8px #ffffff02;overflow:hidden}
.booking::before{content:'';position:absolute;top:0;left:5%;width:75px;height:2px;background:#cbb794;pointer-events:none}
.booking .eyebrow{color:#c7b598;margin-bottom:42px}
.booking-grid{grid-template-columns:1.4fr 1fr;gap:9%;align-items:center}
.booking h2{font-size:clamp(48px,5.8vw,88px);line-height:1.12;letter-spacing:-2.5px;margin-bottom:12px;max-width:820px}
.booking-grid>div{border-left:1px solid #66594a;padding:12px 0 12px 36px}
.booking-grid>div>p{color:#bdb5ad;line-height:1.8;max-width:410px;margin-bottom:22px}
.booking .button.light{font-size:14px;padding:18px 30px;border-color:#b09a78;background:linear-gradient(125deg,#302a22,#191817);color:#f2ece1}
.booking-meta{border-color:#50483e;margin-top:58px;padding-top:28px;color:#afa295;display:grid;grid-template-columns:repeat(3,1fr);gap:25px;font-size:11px;letter-spacing:1.7px;counter-reset:booking-stage}
.booking-meta span{display:flex;align-items:center;gap:16px;counter-increment:booking-stage}
.booking-meta span::before{content:'0' counter(booking-stage);font:italic 23px Georgia,serif;color:#d0ba98;letter-spacing:0}
.booking-meta span:last-child{justify-content:flex-end}.booking-meta span:nth-child(2){justify-content:center}
@media(max-width:760px){.booking{margin:20px 4%;padding:45px 7%}.booking .eyebrow{font-size:10px;letter-spacing:1.2px;margin-bottom:28px}.booking-grid{grid-template-columns:1fr;gap:26px}.booking h2{font-size:48px;letter-spacing:-1.5px}.booking-grid>div{padding:0;border:0}.booking-meta{grid-template-columns:1fr;gap:18px;margin-top:36px;padding-top:23px}.booking-meta span:nth-child(2),.booking-meta span:last-child{justify-content:flex-start}.booking .button.light{width:100%;text-align:center}}
/* Refined navigation and touch controls */
nav a.current{color:#dcc8a7}nav a.current::after{transform:scaleX(1);background:#dcc8a7}.viewer img.changing{animation:photo-in .35s ease}@keyframes photo-in{from{opacity:.35;transform:translateX(12px)}to{opacity:1;transform:none}}.viewer img{touch-action:pan-y}.sketch-preview{margin:18px 0;border:1px solid #5b5247;padding:14px}.sketch-preview[hidden]{display:none}.sketch-preview img{display:block;max-width:100%;max-height:180px;margin:0 auto 12px;object-fit:contain}.sketch-preview p{font-size:13px;overflow-wrap:anywhere;margin-bottom:10px}.sketch-preview button{background:none;color:var(--ink);border:1px solid #847155;padding:8px 14px;cursor:pointer;margin-right:8px}.mobile-booking{display:none}.booking-dialog button:focus-visible{outline:2px solid #cfba98;outline-offset:3px}@media(max-width:760px){.mobile-booking{display:block;position:fixed;bottom:18px;left:6%;width:88%;z-index:20;opacity:0;transform:translateY(90px);pointer-events:none;transition:opacity .3s,transform .3s;padding:15px 20px;box-shadow:0 8px 35px #0008;cursor:pointer}.mobile-booking.visible{opacity:1;transform:none;pointer-events:auto}body{padding-bottom:85px}body.viewer-open .mobile-booking{opacity:0;pointer-events:none;transform:translateY(90px)}}
@media(prefers-reduced-motion:reduce){.viewer img.changing{animation:none}}
/* Mobile navigation */
.menu-toggle{display:none}.mobile-nav{display:none}
@media(max-width:760px){header{gap:14px}.logo{margin-right:auto}.menu-toggle{display:flex;align-items:center;gap:10px;background:none;border:1px solid #746653;color:var(--ink);font:inherit;font-size:12px;padding:10px 12px;min-height:44px;cursor:pointer}.menu-toggle i{width:16px;height:10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;position:relative;transition:transform .25s}.menu-toggle[aria-expanded=true] i{transform:rotate(45deg);border-bottom:0;height:0}.menu-toggle[aria-expanded=true] i::after{content:'';position:absolute;left:0;top:-1px;width:16px;border-top:1px solid currentColor;transform:rotate(90deg)}.mobile-nav{display:grid;position:absolute;left:0;right:0;top:80px;padding:20px 6% 28px;background:#171616;z-index:40;border-bottom:1px solid #746653;box-shadow:0 20px 40px #0006;gap:0;animation:unfold .3s ease}.mobile-nav[hidden]{display:none}.mobile-nav a{font-size:18px;padding:14px 0;border-bottom:1px solid #34312e}.mobile-nav a:hover,.mobile-nav a:focus-visible{color:#ddc8a6}.menu-toggle:focus-visible{outline:2px solid #cfba98;outline-offset:4px}}
.gallery-filters{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 35px}.gallery-filters button{background:transparent;border:1px solid #5a5147;color:var(--muted);padding:11px 20px;font:inherit;font-size:14px;cursor:pointer;transition:background .25s,color .25s,border-color .25s}.gallery-filters button:hover{border-color:#b9a280;color:var(--ink)}.gallery-filters button[aria-pressed=true]{background:#e8e0d3;color:#171717;border-color:#e8e0d3}.gallery-filters button:active{transform:scale(.97)}.work[hidden]{display:none!important}.work.filter-enter{animation:unfold .45s ease both}.gallery-note{font-size:13px;color:var(--muted);margin-top:-20px}.gallery-filters button:focus-visible{outline:2px solid #cfba98;outline-offset:4px}
.brand-logo{display:block;width:85px;height:85px;line-height:1;flex-shrink:0}.brand-logo img{display:block;width:100%;height:100%;object-fit:contain}.brand-footer{display:flex;justify-content:center;padding:30px 0}.brand-footer img{display:block;width:min(360px,75vw);height:auto}.brand-logo:hover{opacity:.8}.brand-footer:hover{opacity:.85}@media(max-width:760px){.brand-logo{width:70px;height:70px}.brand-footer img{width:260px}}
.field-error{color:#e6aea4;font-size:13px;margin:7px 0 0}.field-error:empty{display:none}.booking-dialog input[aria-invalid=true]{border-color:#d59a90}.booking-dialog input::file-selector-button{background:#302a22;color:#eee8df;border:1px solid #948064;padding:8px 12px;margin-right:12px;cursor:pointer;font:inherit}.booking-dialog input::file-selector-button:hover{background:#453b2e}
.viewer-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 18px 16px;flex-wrap:wrap}.viewer-original{font-size:13px;border-bottom:1px solid #a68e6d;padding:5px 0;transition:color .2s}.viewer-original:hover{color:#dcc49f}.viewer-hint{font-size:12px;color:var(--muted);margin:0}.viewer-touch-hint{display:none}@media(max-width:760px){.viewer-touch-hint{display:inline}.viewer-key-hint{display:none}.viewer-bottom{padding:10px 12px}.viewer-bottom button{font-size:13px;padding:8px 12px}.viewer-caption{font-size:12px}}
.footer-top{grid-template-columns:1fr .8fr 1.15fr;gap:5%;align-items:center;padding-bottom:45px;border-bottom:1px solid var(--line)}.footer-top h2{margin:0;font-size:clamp(42px,4.6vw,70px)}.footer-top .brand-footer{padding:0;border:0;letter-spacing:0;min-width:0}.footer-top .brand-footer img{width:100%;max-width:280px}.footer-top>div>p{margin-bottom:18px}.footer-top .contact-links{margin-top:18px}.footer-top .contact-links a{overflow-wrap:anywhere}.footer-bottom{margin-top:0}@media(max-width:760px){.footer-top{grid-template-columns:1fr;gap:28px}.footer-top .brand-footer{justify-content:flex-start}.footer-top .brand-footer img{width:200px}.footer-top h2{font-size:48px}}
.booking-dialog textarea{width:100%;min-height:110px;resize:vertical;background:#202020;border:1px solid #5b5247;color:var(--ink);font:inherit;padding:13px;line-height:1.6;border-radius:0}.booking-dialog textarea:focus{outline:1px solid #d9c4a5;outline-offset:2px}
