{"id":10461,"date":"2026-06-21T01:17:52","date_gmt":"2026-06-20T19:47:52","guid":{"rendered":"https:\/\/medusabungalow.com\/en\/?page_id=10461"},"modified":"2026-06-22T23:31:07","modified_gmt":"2026-06-22T18:01:07","slug":"ceylon-colonial-bungalow-experience","status":"publish","type":"page","link":"https:\/\/medusabungalow.com\/en\/ceylon-colonial-bungalow-experience\/","title":{"rendered":"The Villa"},"content":{"rendered":"\n<style>@import url('https:\/\/fonts.googleapis.com\/css2?family=Cinzel:wght@400;500;600&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500&display=swap');\n\n  :root{--gold:#c9a45c;--gilt:#e6cd93;--cream:#f3ecdd;--ink:#16130d;--soft:rgba(243,236,221,.66)}\n  *{box-sizing:border-box;margin:0;padding:0}\n  html{scroll-behavior:smooth}\n  body{font-family:\"Cormorant Garamond\",Georgia,serif;font-weight:400;font-size:clamp(17px,1.15vw,20px);line-height:1.7;color:var(--cream);background:#0d0b07;-webkit-font-smoothing:antialiased;overflow-x:hidden}\n  .sky{position:fixed;inset:0;z-index:-2;transition:background 1.8s ease}\n  body[data-time=\"dawn\"] .sky{background:radial-gradient(110% 80% at 50% 112%,rgba(201,164,92,.4),transparent 60%),linear-gradient(180deg,#0b1014,#15161a 40%,#241d14)}\n  body[data-time=\"day\"] .sky{background:radial-gradient(120% 90% at 50% 0%,rgba(230,205,147,.22),transparent 55%),linear-gradient(180deg,#1c2024,#2a2419 60%,#352a18)}\n  body[data-time=\"gold\"] .sky{background:radial-gradient(120% 100% at 50% 60%,rgba(230,205,147,.5),transparent 60%),linear-gradient(180deg,#3a2f1a,#5a401d 55%,#7a531f)}\n  body[data-time=\"dusk\"] .sky{background:radial-gradient(120% 90% at 50% 80%,rgba(201,124,72,.42),transparent 60%),linear-gradient(180deg,#241726,#3a2320 60%,#5a3320)}\n  body[data-time=\"night\"] .sky{background:radial-gradient(120% 80% at 50% 110%,rgba(201,164,92,.18),transparent 55%),linear-gradient(180deg,#070608,#0d0b07 60%,#13100a)}\n  .grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.055;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'\/%3E%3C\/svg%3E\")}\n  .glow{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:5;background:radial-gradient(circle,rgba(230,205,147,.08),transparent 60%);transform:translate(-50%,-50%);left:-999px;mix-blend-mode:screen}\n  @media(max-width:760px){.glow{display:none}}\n  .eyebrow{font-family:\"Cinzel\",serif;font-weight:500;text-transform:uppercase;letter-spacing:.42em;font-size:.64rem;color:var(--gold)}\n  .btn{display:inline-block;font-family:\"Cinzel\",serif;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;padding:15px 32px;border:1px solid var(--gold);color:var(--cream);background:transparent;text-decoration:none;cursor:pointer;transition:.5s}\n  .btn:hover{background:var(--gold);color:var(--ink)}\n  .btn.solid{background:var(--gold);color:var(--ink)}.btn.solid:hover{background:var(--gilt);border-color:var(--gilt)}\n\n  .overture{position:fixed;inset:0;z-index:1000;background:#0d0b07;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;transition:opacity 1.4s ease,visibility 1.4s}\n  .overture.lift{opacity:0;visibility:hidden}\n  .overture .om{font-family:\"Cinzel\",serif;font-weight:600;letter-spacing:.34em;font-size:clamp(1.5rem,4.6vw,2.4rem);text-indent:.34em;text-align:center;opacity:0;animation:fadein 1.6s ease .3s forwards}\n  .overture .obar{height:1px;width:0;background:var(--gold);animation:obar 1.4s ease 1.2s forwards}\n  .overture .ol{font-family:\"Cormorant Garamond\",serif;font-style:italic;font-weight:300;color:var(--gold);font-size:1.05rem;opacity:0;animation:fadein 1.6s ease 1s forwards}\n\n  nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,5vw,56px);transition:.6s;opacity:0}\n  nav.show{opacity:1}\n  nav.scrolled{background:rgba(13,11,7,.72);backdrop-filter:blur(9px);padding:12px clamp(20px,5vw,56px)}\n  .wordmark{font-family:\"Cinzel\",serif;font-weight:600;letter-spacing:.22em;font-size:.88rem;text-indent:.22em;cursor:pointer;color:var(--cream);white-space:nowrap}\n  .links{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}\n  .links a{font-family:\"Cinzel\",serif;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--soft);text-decoration:none;cursor:pointer;padding-bottom:4px;border-bottom:1px solid transparent;transition:.4s}\n  .links a:hover,.links a.active{color:var(--cream);border-color:var(--gold)}\n  .links a.resv{color:var(--ink);background:var(--gold);border:none;padding:9px 18px}.links a.resv:hover{background:var(--gilt)}\n  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px}\n  .burger span{width:24px;height:1.5px;background:var(--cream);transition:.3s}\n  @media(max-width:880px){.links{position:fixed;inset:0;background:rgba(8,6,3,.97);flex-direction:column;justify-content:center;gap:26px;transform:translateY(-100%);transition:transform .5s;z-index:199}.links.open{transform:none}.links a{font-size:.8rem}.burger{display:flex;z-index:201}}\n\n  main .page{display:none}main .page.active{display:block;animation:fadein .8s ease}\n  section{padding:clamp(78px,12vw,150px) clamp(22px,6vw,40px);position:relative}\n  .wrap{max-width:1080px;margin:0 auto}\n  .card{max-width:46em;margin:0 auto;padding:clamp(34px,5vw,60px);text-align:center;background:rgba(243,236,221,.94);color:var(--ink);box-shadow:0 40px 120px rgba(0,0,0,.45)}\n  .card.dark{background:rgba(18,15,9,.82);color:var(--cream);backdrop-filter:blur(6px);border:1px solid rgba(201,164,92,.2)}\n  .card .eyebrow{color:#8a6d2e}.card.dark .eyebrow{color:var(--gold)}\n  h2.title{font-family:\"Cormorant Garamond\",serif;font-weight:300;font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.04;letter-spacing:-.01em;margin:.26em 0 .12em}\n  h2.title em{font-style:italic;color:#9a7a33}.card.dark h2.title em{color:var(--gold)}\n  .card p{margin-top:1.05em;font-weight:300}.card p.first{font-size:1.14em}\n\n  .hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}\n  .hero.short{min-height:74svh}\n  .layer{position:absolute;inset:-10% -10% 0 -10%;will-change:transform}\n  .l-haze{background:radial-gradient(42% 38% at 50% 80%,rgba(230,205,147,.4),transparent 70%);animation:breathe 13s ease-in-out infinite}\n  .l-fore{bottom:-2%;height:42%;top:auto;background:radial-gradient(120% 100% at 20% 120%,rgba(8,7,4,.95),transparent 60%),radial-gradient(120% 100% at 85% 120%,rgba(8,7,4,.92),transparent 60%)}\n  .vignette{position:absolute;inset:0;box-shadow:inset 0 0 240px 70px rgba(8,6,3,.9);z-index:2}\n  .motes{position:absolute;inset:0;z-index:2;pointer-events:none}\n  .mote{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--gilt);opacity:0;filter:blur(.5px);box-shadow:0 0 8px 1px rgba(230,205,147,.7);animation:float 16s linear infinite}\n  .hero-in{position:relative;z-index:3;padding:0 24px;max-width:900px}\n  .hero h1{font-family:\"Cormorant Garamond\",serif;font-weight:300;font-size:clamp(2.7rem,8vw,6.4rem);line-height:.98;letter-spacing:-.015em;margin:.3em 0 .42em}\n  .hero h1 em{font-style:italic;color:var(--gilt)}\n  .hero .lede{font-size:clamp(1.05rem,1.7vw,1.32rem);font-weight:300;font-style:italic;color:var(--soft);max-width:30em;margin:0 auto}\n  .hero-rule{height:1px;width:min(40vw,320px);background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:30px auto 26px}\n  .hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}\n  .scrollcue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:3;font-family:\"Cinzel\",serif;font-size:.54rem;letter-spacing:.3em;color:var(--soft)}\n  .scrollcue span{display:block;width:1px;height:34px;background:linear-gradient(var(--gold),transparent);margin:9px auto 0}\n\n  .trust{background:rgba(13,11,7,.5);border-block:1px solid rgba(201,164,92,.18);backdrop-filter:blur(4px)}\n  .trust-row{max-width:1000px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,5vw,60px);padding:24px;text-align:center}\n  .ti{font-family:\"Cinzel\",serif;font-size:.58rem;letter-spacing:.26em;text-transform:uppercase;color:var(--soft)}\n  .ti b{display:block;font-family:\"Cormorant Garamond\",serif;font-weight:500;font-size:1.6rem;letter-spacing:0;color:var(--gold);text-transform:none;margin-bottom:3px}\n\n  .pulse{display:flex;align-items:center;justify-content:center;padding:28px 0}\n  .pulse .line{height:1px;width:min(34vw,280px);background:linear-gradient(90deg,transparent,rgba(201,164,92,.6))}\n  .pulse .line.r{background:linear-gradient(90deg,rgba(201,164,92,.6),transparent)}\n  .pulse .node{width:7px;height:7px;border-radius:50%;background:var(--gold);margin:0 13px;box-shadow:0 0 12px 2px rgba(201,164,92,.65);animation:heartbeat 3.4s ease-in-out infinite}\n\n  .doors{display:grid;grid-template-columns:1fr 1fr;gap:14px}\n  .door{position:relative;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(28px,4vw,44px);text-align:left;overflow:hidden;border:1px solid rgba(201,164,92,.25);text-decoration:none;color:var(--cream);cursor:pointer}\n  .door .db{position:absolute;inset:0;z-index:0;transition:transform 1.4s ease,filter .8s;filter:brightness(.7)}\n  .door:hover .db{transform:scale(1.06);filter:brightness(.92)}\n  .door .ds{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 30%,rgba(8,6,3,.85))}\n  .door .dc{position:relative;z-index:2}\n  .db.retreat{background:radial-gradient(120% 90% at 30% 20%,rgba(94,107,87,.7),transparent),linear-gradient(160deg,#2c3326,#10130c)}\n  .db.villa{background:radial-gradient(120% 90% at 70% 75%,rgba(201,164,92,.55),transparent),linear-gradient(160deg,#2e2615,#10130c)}\n  .door h3{font-family:\"Cormorant Garamond\",serif;font-weight:400;font-size:2.1rem;margin-bottom:.08em}\n  .door .price{font-family:\"Cinzel\",serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:6px 0}\n  .door p{font-weight:300;color:var(--soft);font-size:1rem;margin:8px 0 0;max-width:24em}\n  .door .enter{display:inline-block;margin-top:18px;font-family:\"Cinzel\",serif;font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:5px}\n  @media(max-width:760px){.doors{grid-template-columns:1fr}.door{min-height:340px}}\n\n  .stage{position:relative;min-height:82svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:0}\n  .stage .plate{position:absolute;inset:0;z-index:0;animation:kenburns 26s ease-in-out infinite alternate}\n  .stage .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,6,3,.5),rgba(8,6,3,.22) 40%,rgba(8,6,3,.7))}\n  .stage .st-in{position:relative;z-index:2;max-width:32em;padding:0 24px}\n  .stage .cap{position:absolute;bottom:16px;right:20px;z-index:2;font-family:\"Cinzel\",serif;font-size:.48rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(243,236,221,.4)}\n  .stage h2{font-family:\"Cormorant Garamond\",serif;font-weight:300;font-size:clamp(2rem,5.2vw,3.8rem);line-height:1.06;color:var(--cream)}\n  .stage h2 em{font-style:italic;color:var(--gilt)}\n  .stage p{margin-top:1em;font-weight:300;color:var(--soft)}\n  .plate-garden{background:radial-gradient(100% 90% at 40% 30%,rgba(94,107,87,.6),transparent),linear-gradient(160deg,#39432f,#1d2417)}\n  .plate-treatment{background:radial-gradient(100% 100% at 60% 40%,rgba(201,164,92,.45),transparent),linear-gradient(160deg,#5a431f,#241a0e)}\n  .plate-pool{background:radial-gradient(100% 100% at 50% 70%,rgba(70,120,130,.5),transparent),linear-gradient(160deg,#22424a,#0f1d20)}\n  .plate-room{background:radial-gradient(100% 100% at 40% 40%,rgba(201,164,92,.35),transparent),linear-gradient(160deg,#3a2e1c,#15110a)}\n\n  .strip-head{text-align:center;margin-bottom:32px}\n  .strip{display:flex;gap:14px;overflow-x:auto;padding:6px 6px 20px;scroll-snap-type:x mandatory;cursor:grab;scrollbar-width:none}\n  .strip::-webkit-scrollbar{display:none}.strip.drag{cursor:grabbing}\n  .frame{flex:0 0 clamp(210px,28vw,320px);aspect-ratio:3\/4;scroll-snap-align:center;border:1px solid rgba(201,164,92,.3);position:relative;display:flex;align-items:flex-end;padding:16px;overflow:hidden}\n  .frame .fc{position:relative;z-index:1;font-family:\"Cinzel\",serif;font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(243,236,221,.7)}\n  .frame::before{content:\"\";position:absolute;inset:0;z-index:0}\n  .f1::before{background:linear-gradient(160deg,#3a432f,#171c12)}.f2::before{background:linear-gradient(160deg,#5a431f,#1d150a)}\n  .f3::before{background:linear-gradient(160deg,#33414a,#121820)}.f4::before{background:linear-gradient(160deg,#4a3a44,#1a1218)}\n  .f5::before{background:linear-gradient(160deg,#534a2c,#1c180e)}.f6::before{background:linear-gradient(160deg,#2c3a30,#101712)}\n\n  .quote{text-align:center;max-width:24em;margin:0 auto}\n  .quote .mark{font-family:\"Cormorant Garamond\",serif;font-size:5rem;line-height:.4;color:var(--gold);opacity:.5}\n  .quote blockquote{font-family:\"Cormorant Garamond\",serif;font-style:italic;font-weight:300;font-size:clamp(1.6rem,4vw,2.6rem);line-height:1.25;margin:.2em 0 .7em;color:var(--cream)}\n  .quote cite{font-family:\"Cinzel\",serif;font-style:normal;font-size:.58rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}\n\n  .invite{text-align:center}\n  .invite h2{font-family:\"Cormorant Garamond\",serif;font-weight:300;font-size:clamp(2.3rem,6vw,4.6rem);line-height:1.02;letter-spacing:-.01em;margin-bottom:.4em;color:var(--cream)}\n  .invite h2 em{font-style:italic;color:var(--gold)}\n  .invite p{max-width:30em;margin:0 auto 32px;color:var(--soft);font-weight:300}\n\n  \/* timeline *\/\n  .timeline{max-width:680px;margin:0 auto;border-left:1px solid rgba(201,164,92,.3)}\n  .tl{position:relative;padding:0 0 40px 40px}\n  .tl::before{content:\"\";position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px rgba(201,164,92,.6)}\n  .tl .tm{font-family:\"Cinzel\",serif;font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}\n  .tl h4{font-family:\"Cormorant Garamond\",serif;font-weight:500;font-size:1.5rem;margin:.1em 0 .15em;color:var(--cream)}\n  .tl p{font-weight:300;color:var(--soft);font-size:1rem}\n\n  .feat{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(201,164,92,.22);border:1px solid rgba(201,164,92,.22);margin-top:10px}\n  .feat .fi{background:rgba(18,15,9,.72);padding:clamp(24px,3vw,38px);text-align:center}\n  .feat .fi .fn{font-family:\"Cinzel\",serif;font-size:.52rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}\n  .feat .fi h4{font-family:\"Cormorant Garamond\",serif;font-weight:500;font-size:1.45rem;margin:.3em 0 .25em;color:var(--cream)}\n  .feat .fi p{font-weight:300;color:var(--soft);font-size:.98rem}\n  @media(max-width:760px){.feat{grid-template-columns:1fr}}\n\n  .pricebox{max-width:420px;margin:36px auto 0;border:1px solid var(--gold);padding:40px 32px;text-align:center;background:rgba(18,15,9,.6);backdrop-filter:blur(4px)}\n  .pricebox .pn{font-family:\"Cinzel\",serif;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}\n  .pricebox .pv{font-family:\"Cormorant Garamond\",serif;font-weight:300;font-size:3rem;color:var(--cream);margin:.1em 0}\n  .pricebox .pu{font-weight:300;color:var(--soft);font-size:1rem;margin-bottom:22px}\n\n  .gal{columns:3;column-gap:14px}\n  .gal .g{break-inside:avoid;margin-bottom:14px;border:1px solid rgba(201,164,92,.25);position:relative;display:flex;align-items:flex-end;padding:16px;overflow:hidden}\n  .gal .g span{position:relative;z-index:1;font-family:\"Cinzel\",serif;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,236,221,.7)}\n  .gal .g::before{content:\"\";position:absolute;inset:0;z-index:0}\n  .gal .ga{height:280px}.gal .gb{height:200px}.gal .gc{height:340px}.gal .gd{height:240px}\n  .gal .g1::before{background:linear-gradient(160deg,#3a432f,#171c12)}.gal .g2::before{background:linear-gradient(160deg,#5a431f,#1d150a)}\n  .gal .g3::before{background:linear-gradient(160deg,#33414a,#121820)}.gal .g4::before{background:linear-gradient(160deg,#4a3a44,#1a1218)}\n  .gal .g5::before{background:linear-gradient(160deg,#534a2c,#1c180e)}.gal .g6::before{background:linear-gradient(160deg,#2c3a30,#101712)}\n  @media(max-width:880px){.gal{columns:2}}@media(max-width:560px){.gal{columns:1}}\n\n  .form{max-width:560px;margin:0 auto;text-align:left}\n  .form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n  .form label{display:block;font-family:\"Cinzel\",serif;font-size:.52rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:18px 0 7px}\n  .form input,.form textarea{width:100%;background:rgba(243,236,221,.06);border:1px solid rgba(201,164,92,.3);color:var(--cream);font-family:\"Cormorant Garamond\",serif;font-size:1.05rem;padding:13px 14px}\n  .form input:focus,.form textarea:focus{outline:none;border-color:var(--gold);background:rgba(243,236,221,.1)}\n  .form textarea{resize:vertical;min-height:120px}\n  .contact-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(20px,5vw,50px);margin-top:40px;text-align:center}\n  .contact-meta div{font-family:\"Cinzel\",serif;font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}\n  .contact-meta a{color:var(--gold);text-decoration:none}\n  @media(max-width:560px){.form .row{grid-template-columns:1fr}}\n\n  \/* ===== island time clocks ===== *\/\n  .ahead{font-family:\"Cinzel\",serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:18px 0 40px;min-height:1em}\n  .clocks{display:flex;justify-content:center;gap:clamp(26px,7vw,70px);flex-wrap:wrap}\n  .clock{display:flex;flex-direction:column;align-items:center}\n  .face{position:relative;width:clamp(168px,40vw,224px);height:clamp(168px,40vw,224px);border-radius:50%;\n    background:radial-gradient(circle at 50% 38%,#1d1810,#0d0a06 78%);border:2px solid var(--gold);\n    box-shadow:0 0 0 6px rgba(201,164,92,.12),0 0 0 7px rgba(201,164,92,.4),inset 0 4px 28px rgba(0,0,0,.7),0 26px 60px rgba(0,0,0,.5)}\n  .num{position:absolute;top:50%;left:50%;width:0;height:0}\n  .num span{position:absolute;font-family:\"Cinzel\",serif;font-weight:500;font-size:.74rem;color:var(--gilt);transform:translate(-50%,-50%);white-space:nowrap}\n  .tickmark{position:absolute;top:50%;left:50%;width:1px;height:5px;background:rgba(201,164,92,.45);transform-origin:50% 0}\n  .dialmark{position:absolute;top:64%;left:50%;transform:translateX(-50%);text-align:center;z-index:2;pointer-events:none}\n  .dialmark .flag{font-size:1.15rem;line-height:1}\n  .dialmark .cn{font-family:\"Cinzel\",serif;font-size:.44rem;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin-top:3px;max-width:80px}\n  .hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:4px;transform:translateX(-50%) rotate(0deg)}\n  .hand.hour{width:5px;height:25%;background:linear-gradient(var(--gilt),var(--gold));z-index:3}\n  .hand.min{width:3px;height:35%;background:linear-gradient(var(--gilt),var(--gold));z-index:3}\n  .hand.sec{width:1.5px;height:39%;background:#d9534f;z-index:4;transition:transform .12s cubic-bezier(.4,2.3,.6,1)}\n  .cap{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%);z-index:5;box-shadow:0 0 8px rgba(201,164,92,.7)}\n  .cklabel{font-family:\"Cinzel\",serif;font-size:.58rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cream);margin-top:20px}\n  .digital{font-family:\"Cormorant Garamond\",serif;font-size:1.35rem;color:var(--gold);margin-top:7px;letter-spacing:.03em}\n  .weather .wl{font-family:\"Cinzel\",serif;font-size:.54rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}\n  .weather .wv{font-size:clamp(1.5rem,4vw,2.1rem);font-weight:300;margin-top:6px;color:var(--cream)}\n  .weather .wv .deg{color:var(--gilt)}\n  .sbtn{font-family:\"Cinzel\",serif;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cream);background:none;border:1px solid var(--gold);padding:13px 26px;cursor:pointer;transition:.4s;display:inline-flex;align-items:center;gap:10px}\n  .sbtn:hover{background:var(--gold);color:var(--ink)}.sbtn.on{background:var(--gold);color:var(--ink)}\n  .sdot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.4}\n  .sbtn.on .sdot{opacity:1;animation:beat 1s steps(1) infinite}\n  @keyframes beat{50%{opacity:.25}}\n\n  footer{padding:clamp(50px,8vw,84px) 24px 44px;text-align:center;border-top:1px solid rgba(201,164,92,.18)}\n  footer .fm{font-family:\"Cinzel\",serif;font-weight:600;letter-spacing:.4em;font-size:1.1rem;text-indent:.4em}\n  footer .foot-live{font-family:\"Cinzel\",serif;font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-top:14px}\n  footer .flinks{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin:18px 0}\n  footer .flinks a{font-family:\"Cinzel\",serif;font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);text-decoration:none;cursor:pointer;transition:.3s}\n  footer .flinks a:hover{color:var(--gold)}\n  footer .contact{color:var(--soft);font-weight:300}footer .contact a{color:var(--gold);text-decoration:none}\n\n  .alfred-btn{position:fixed;bottom:24px;right:24px;z-index:300;width:58px;height:58px;border-radius:50%;background:var(--gold);color:var(--ink);border:none;cursor:pointer;font-family:\"Cinzel\",serif;font-size:1.4rem;box-shadow:0 12px 36px rgba(0,0,0,.5);transition:.4s;display:flex;align-items:center;justify-content:center}\n  .alfred-btn:hover{background:var(--gilt);transform:translateY(-2px)}\n  .alfred{position:fixed;bottom:92px;right:24px;z-index:300;width:min(360px,calc(100vw - 48px));background:rgba(15,12,8,.97);border:1px solid rgba(201,164,92,.35);box-shadow:0 30px 80px rgba(0,0,0,.6);display:none;flex-direction:column;overflow:hidden;backdrop-filter:blur(10px)}\n  .alfred.open{display:flex;animation:fadein .4s}\n  .alfred .ah{padding:18px 20px;border-bottom:1px solid rgba(201,164,92,.25)}\n  .alfred .ah .an{font-family:\"Cormorant Garamond\",serif;font-style:italic;font-size:1.4rem;color:var(--gold)}\n  .alfred .ah .ar{font-family:\"Cinzel\",serif;font-size:.5rem;letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}\n  .alfred .am{padding:18px 20px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}\n  .bub{max-width:84%;padding:11px 15px;font-weight:300;font-size:1rem;line-height:1.5}\n  .bub.a{align-self:flex-start;background:rgba(243,236,221,.08);border:1px solid rgba(201,164,92,.2);color:var(--cream)}\n  .bub.u{align-self:flex-end;background:var(--gold);color:var(--ink)}\n  .chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 14px}\n  .chip{font-family:\"Cinzel\",serif;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);border:1px solid rgba(201,164,92,.4);background:none;padding:8px 12px;cursor:pointer;transition:.3s}\n  .chip:hover{background:var(--gold);color:var(--ink)}\n  .ainput{display:flex;border-top:1px solid rgba(201,164,92,.25)}\n  .ainput input{flex:1;background:none;border:none;color:var(--cream);font-family:\"Cormorant Garamond\",serif;font-size:1rem;padding:14px 16px}\n  .ainput input:focus{outline:none}\n  .ainput button{background:none;border:none;color:var(--gold);font-family:\"Cinzel\",serif;font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;padding:0 18px;cursor:pointer}\n\n  .reveal{opacity:0;transform:translateY(30px);transition:opacity 1.2s cubic-bezier(.16,.7,.3,1),transform 1.2s cubic-bezier(.16,.7,.3,1)}\n  .reveal.in{opacity:1;transform:none}.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}\n\n  @keyframes fadein{to{opacity:1}}@keyframes obar{to{width:120px}}\n  @keyframes breathe{0%,100%{transform:translate(-2%,0) scale(1.04);opacity:.74}50%{transform:translate(2%,-2%) scale(1.15);opacity:1}}\n  @keyframes heartbeat{0%,28%,100%{transform:scale(1);opacity:.55}8%{transform:scale(2);opacity:1}14%{transform:scale(1);opacity:.6}20%{transform:scale(1.6);opacity:.9}}\n  @keyframes kenburns{from{transform:scale(1) translate(0,0)}to{transform:scale(1.12) translate(-2%,-2%)}}\n  @keyframes float{0%{transform:translateY(20px);opacity:0}15%{opacity:.9}85%{opacity:.9}100%{transform:translateY(-120px);opacity:0}}\n  @media(prefers-reduced-motion:reduce){*{animation:none!important}.overture{display:none}.sky{transition:none}.reveal{opacity:1;transform:none}.glow{display:none}nav{opacity:1}.hand.sec{transition:none}}\n#medusa-alfred{display:none!important}.hero .hero-in{position:relative}.hero .hero-in::before{content:\"\";position:absolute;inset:-32% -44%;z-index:0;background:radial-gradient(74% 80% at 50% 41%,rgba(8,6,3,.84),rgba(8,6,3,.46) 56%,transparent 85%);pointer-events:none}.hero .hero-in>*{position:relative;z-index:1}.hero h1,.hero .lede,.hero .eyebrow{text-shadow:0 0 2px rgba(8,6,3,.95),0 1px 3px rgba(8,6,3,.95),0 3px 14px rgba(8,6,3,.92),0 6px 44px rgba(8,6,3,.72)}<\/style>\n<div class=\"sky\"><\/div><div class=\"grain\"><\/div><div class=\"glow\" id=\"glow\"><\/div>\n\n<div class=\"overture\" id=\"overture\"><div class=\"om\"><img decoding=\"async\" class=\"brandlogo-om\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2024\/03\/Medusa-Logo-Horizontal_@2x.png\" alt=\"Medusa Bungalow\"><\/div><div class=\"obar\"><\/div><div class=\"ol\">A day kept &middot; Galle, Ceylon<\/div><\/div>\n<nav id=\"nav\"><a class=\"wordmark\" href=\"https:\/\/medusabungalow.com\/en\/\"><img decoding=\"async\" class=\"brandlogo\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2024\/03\/Medusa-Logo-Horizontal_@2x.png\" alt=\"Medusa Bungalow\"><\/a><button class=\"burger\" id=\"burger\" aria-label=\"Menu\"><span><\/span><span><\/span><span><\/span><\/button><div class=\"links\" id=\"links\"><a href=\"https:\/\/medusabungalow.com\/en\/\">Home<\/a><a href=\"https:\/\/medusabungalow.com\/en\/ayurvedic-retreat\/\">The Retreat<\/a><a href=\"https:\/\/medusabungalow.com\/en\/ceylon-colonial-bungalow-experience\/\" class=\"active\">The Villa<\/a><a href=\"https:\/\/medusabungalow.com\/en\/amenities\/\">The House<\/a><a href=\"https:\/\/medusabungalow.com\/en\/gallery\/\">Gallery<\/a><a href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Contact<\/a><a href=\"https:\/\/medusabungalow.com\/en\/contact\/\" class=\"resv\">Reserve<\/a><\/div><\/nav>\n<main><div class=\"page active\" id=\"page-villa\">\n  <section class=\"hero short\" data-time=\"day\"><div class=\"layer l-haze\"><\/div><div class=\"vignette\"><\/div>\n    <div class=\"hero-in\"><div class=\"eyebrow reveal\">The Villa &middot; Whole house<\/div>\n      <h1 class=\"reveal d1\">The whole house,<br><em>yours<\/em>.<\/h1>\n      <p class=\"lede reveal d2\">Three bedrooms, a private pool, a garden, and a staff who remember your name \u2014 Ceylon, kept for your family and friends.<\/p>\n      <div class=\"hero-rule reveal d2\"><\/div><div class=\"hero-cta reveal d3\"><a class=\"btn solid\" href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Check availability<\/a><\/div>\n    <\/div>\n  <\/section>\n  <section data-time=\"day\"><div class=\"card reveal\"><div class=\"eyebrow\">The stay<\/div><h2 class=\"title\">A private house,<br>not a hotel.<\/h2>\n    <p class=\"first\">When you book the villa, you book all of it \u2014 no other guests, no front desk, no schedule but your own. A restored colonial home with a pool in the garden and a team who quietly make the days easy.<\/p>\n  <\/div><\/section>\n  <div class=\"pulse\" data-time=\"day\"><div class=\"line\"><\/div><div class=\"node\"><\/div><div class=\"line r\"><\/div><\/div>\n  <section class=\"stage\" data-time=\"gold\"><div class=\"plate plate-pool\"><\/div><div class=\"scrim\"><\/div>\n    <div class=\"st-in reveal\"><h2 style=\"font-style:italic\">Mornings in the pool,<br>afternoons in the shade,<br>the whole place to yourselves.<\/h2><\/div>\n    <div class=\"cap\">The Plunge Pool<\/div>\n  <\/section>\n  <section data-time=\"day\"><div class=\"wrap\">\n    <div class=\"reveal\" style=\"text-align:center;margin-bottom:34px\"><div class=\"eyebrow\">The spaces<\/div><h2 class=\"title\" style=\"color:var(--cream)\">Room to breathe.<\/h2><\/div>\n    <div class=\"feat reveal\">\n      <div class=\"fi\"><div class=\"fn\">Sleep<\/div><h4>Three bedrooms<\/h4><p>En-suite, fan and air-conditioned, antique beds.<\/p><\/div>\n      <div class=\"fi\"><div class=\"fn\">Water<\/div><h4>Private pool<\/h4><p>In the garden, shaded, yours all day.<\/p><\/div>\n      <div class=\"fi\"><div class=\"fn\">Green<\/div><h4>The garden<\/h4><p>Mature, fragrant, alive with birds at dusk.<\/p><\/div>\n      <div class=\"fi\"><div class=\"fn\">Table<\/div><h4>Cook &amp; chef<\/h4><p>Sri Lankan home cooking, on request.<\/p><\/div>\n      <div class=\"fi\"><div class=\"fn\">Shade<\/div><h4>The verandas<\/h4><p>Long colonial porches for the slow hours.<\/p><\/div>\n      <div class=\"fi\"><div class=\"fn\">Care<\/div><h4>The staff<\/h4><p>Housekeeping and a host who handle everything.<\/p><\/div>\n    <\/div>\n    <div class=\"pricebox reveal\"><div class=\"pn\">Direct from<\/div><div class=\"pv\">$350<\/div><div class=\"pu\">per night &middot; whole villa &middot; up to 6 guests<\/div><a class=\"btn solid\" href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Check availability<\/a><\/div>\n  <\/div><\/section>\n  <section data-time=\"dusk\"><div class=\"wrap quote reveal\"><div class=\"mark\">&ldquo;<\/div>\n    <blockquote>The staff were a fabulous team \u2014 the whole house felt like ours.<\/blockquote><cite>\u2014 A recent guest<\/cite><\/div><\/section>\n  <section class=\"invite\" data-time=\"night\"><div class=\"wrap reveal\"><div class=\"eyebrow\">An invitation<\/div>\n    <h2>Bring your people.<br>We&#8217;ll bring <em>the rest<\/em>.<\/h2><p>Best rates are always here, direct. Tell us your dates and we&#8217;ll hold the house.<\/p>\n    <a class=\"btn solid\" href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Check availability<\/a><\/div><\/section>\n<\/div><\/main>\n<footer><div class=\"fm\"><img decoding=\"async\" class=\"brandlogo-fm\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2024\/03\/Medusa-Logo-Horizontal_@2x.png\" alt=\"Medusa Bungalow\"><\/div><div class=\"foot-live\" id=\"footLive\">Galle, Ceylon &middot; <span id=\"footTime\">&mdash;<\/span><\/div><div class=\"flinks\"><a href=\"https:\/\/medusabungalow.com\/en\/\">Home<\/a><a href=\"https:\/\/medusabungalow.com\/en\/ayurvedic-retreat\/\">The Retreat<\/a><a href=\"https:\/\/medusabungalow.com\/en\/ceylon-colonial-bungalow-experience\/\">The Villa<\/a><a href=\"https:\/\/medusabungalow.com\/en\/amenities\/\">The House<\/a><a href=\"https:\/\/medusabungalow.com\/en\/gallery\/\">Gallery<\/a><a href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Contact<\/a><\/div><div class=\"contact\">Reservations &middot; <a href=\"mailto:hello@medusabungalow.com\">hello@medusabungalow.com<\/a> &middot; <a href=\"tel:+94777705398\">+94 77 770 5398<\/a><\/div><\/footer>\n<button class=\"alfred-btn\" id=\"alfredBtn\" onclick=\"openAlfred()\" aria-label=\"Speak to Alfred, concierge\"><span class=\"a-dot\"><\/span><\/button>\n<span class=\"a-label\">Speak to Alfred<\/span>\n<div class=\"a-hello\" id=\"aHello\"><span class=\"x\" onclick=\"hideHello()\">&times;<\/span><span class=\"nm2\">Good evening.<\/span> I&#8217;m Alfred, the concierge &mdash; may I help with anything?<\/div>\n<div class=\"alfred\" id=\"alfred\">\n  <div class=\"ah\"><div class=\"an\">Alfred<\/div><div class=\"ar\">Concierge &middot; always awake<\/div><\/div>\n  <div class=\"am\" id=\"am\"><div class=\"bub a\">Good evening. I&#8217;m Alfred, the concierge at Medusa Bungalow. How may I help \u2014 a stay, a treatment, or a question about the house?<\/div><\/div>\n  <div class=\"chips\">\n    <button class=\"chip\" onclick=\"ask('Check availability')\">Check availability<\/button>\n    <button class=\"chip\" onclick=\"ask('Tell me about the retreat')\">The retreat<\/button>\n    <button class=\"chip\" onclick=\"ask('Arrange a transfer')\">Airport transfer<\/button>\n  <\/div>\n  <div class=\"ainput\"><input id=\"ainput\" placeholder=\"Write to Alfred...\" onkeydown=\"if(event.key==='Enter')send()\"><button onclick=\"send()\">Send<\/button><\/div>\n<\/div>\n<script data-no-optimize=\"1\" data-no-defer=\"1\">window.MED_DT=\"day\";document.body.setAttribute(\"data-time\",window.MED_DT);\n\n  var reduce=matchMedia('(prefers-reduced-motion:reduce)').matches;\n  window.addEventListener('load',function(){setTimeout(function(){var o=document.getElementById('overture');if(o)o.classList.add('lift');document.getElementById('nav').classList.add('show')},reduce?0:2400)});\n  var nav=document.getElementById('nav');\n  addEventListener('scroll',function(){nav.classList.toggle('scrolled',scrollY>40)},{passive:true});\n\n  var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting)e.target.classList.add('in')})},{threshold:.14});\n  function observeReveals(scope){(scope||document).querySelectorAll('.reveal').forEach(function(el){io.observe(el)})}\n  observeReveals();\n  var tio=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting&&e.intersectionRatio>0){var t=e.target.getAttribute('data-time');if(t)document.body.setAttribute('data-time',t)}})},{threshold:.5});\n  function observeTimes(){document.querySelectorAll('.page.active [data-time]').forEach(function(s){tio.observe(s)})}\n  var defaultTime={home:'dawn',retreat:'gold',villa:'day',house:'day',gallery:'dusk',contact:'night'};\n  function showPage(id){\n    document.querySelectorAll('.page').forEach(function(p){p.classList.remove('active')});\n    var pg=document.getElementById('page-'+id);if(!pg)return;\n    tio.disconnect();pg.classList.add('active');\n    document.body.setAttribute('data-time',defaultTime[id]||'day');\n    document.querySelectorAll('.links a').forEach(function(a){a.classList.toggle('active',a.getAttribute('data-go')===id&&!a.classList.contains('resv'))});\n    window.scrollTo(0,0);observeReveals(pg);observeTimes();document.getElementById('links').classList.remove('open');\n  }\n  document.addEventListener('click',function(e){var t=e.target.closest('[data-go]');if(t){e.preventDefault();showPage(t.getAttribute('data-go'))}});\n  observeTimes();\n  document.getElementById('burger').addEventListener('click',function(){document.getElementById('links').classList.toggle('open')});\n\n  if(!reduce){\n    var m=document.getElementById('motes');\n    if(m){for(var i=0;10>i;i++){var d=document.createElement('div');d.className='mote';d.style.left=(8+Math.random()*84)+'%';d.style.bottom=(Math.random()*40)+'%';d.style.animationDuration=(13+Math.random()*10)+'s';d.style.animationDelay=(Math.random()*12)+'s';d.style.width=d.style.height=(3+Math.random()*3)+'px';m.appendChild(d)}}\n    var haze=document.querySelector('#page-home .l-haze'),fore=document.querySelector('#page-home .l-fore');\n    addEventListener('scroll',function(){var y=scrollY;if(haze&&innerHeight>y){haze.style.transform='translateY('+(y*.18)+'px)';if(fore)fore.style.transform='translateY('+(y*-.08)+'px)'}},{passive:true});\n    var g=document.getElementById('glow');addEventListener('mousemove',function(e){g.style.left=e.clientX+'px';g.style.top=e.clientY+'px'});\n    var s=document.getElementById('strip'),down=false,sx,sl;\n    if(s){s.addEventListener('pointerdown',function(e){down=true;s.classList.add('drag');sx=e.pageX;sl=s.scrollLeft});addEventListener('pointerup',function(){down=false;s.classList.remove('drag')});s.addEventListener('pointermove',function(e){if(!down)return;e.preventDefault();s.scrollLeft=sl-(e.pageX-sx)*1.5})}\n  }\n\n  \/\/ alfred\n  function toggleAlfred(){document.getElementById('alfred').classList.toggle('open')}\n  function openAlfred(){document.getElementById('alfred').classList.add('open')}\n  var am=document.getElementById('am');\n  function bub(t,who){var b=document.createElement('div');b.className='bub '+who;b.textContent=t;am.appendChild(b);am.scrollTop=am.scrollHeight}\n  var replies={'check availability':\"Delighted to help. May I ask your dates and how many guests? I'll check the house and reply with the best direct rate \u2014 always lower than the booking sites.\",'tell me about the retreat':\"The Retreat is our private Ayurveda programme: the whole house, a resident doctor, and twice-daily treatment shaped to you, over seven nights. From \u20ac2,800 for one or two guests, full board. Shall I hold some dates?\",'arrange a transfer':\"Of course. We can meet you at Colombo airport or anywhere in the south, in a private car. Tell me your arrival time and I'll arrange it.\",'default':\"A lovely question. I'll make sure the house takes care of it. Could you share your dates, and I'll see to the rest?\"};\n  function respond(t){var k=t.toLowerCase();setTimeout(function(){bub(replies[k]||replies['default'],'a')},500)}\n  function ask(t){bub(t,'u');respond(t)}\n  function send(){var i=document.getElementById('ainput');if(!i.value.trim())return;var v=i.value.trim();i.value='';bub(v,'u');respond(v)}\n\n  \/\/ ===== island time clocks =====\n  var ROMAN=['','I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII'];\n  function buildFace(id){var face=document.getElementById(id);if(!face)return;var r=face.clientWidth\/2||100;\n    for(var i=1;12>=i;i++){var ang=i*30,wrap=document.createElement('div');wrap.className='num';var sp=document.createElement('span');sp.textContent=ROMAN[i];var rad=ang*Math.PI\/180,dist=r-24;sp.style.left=(Math.sin(rad)*dist)+'px';sp.style.top=(-Math.cos(rad)*dist)+'px';wrap.appendChild(sp);face.appendChild(wrap);}\n    for(var t=0;60>t;t++){if(t%5===0)continue;var tm=document.createElement('div');tm.className='tickmark';tm.style.transform='rotate('+(t*6)+'deg) translateY(-'+(r-3)+'px)';face.appendChild(tm);}}\n  buildFace('faceGuest');buildFace('faceCeylon');\n\n  function flagEmoji(cc){try{return cc.toUpperCase().replace(\/.\/g,function(c){return String.fromCodePoint(127397+c.charCodeAt(0))})}catch(e){return''}}\n  var guestTz=Intl.DateTimeFormat().resolvedOptions().timeZone||'UTC';\n  var guestCity=guestTz.split('\/').pop().replace(\/_\/g,' ');\n  var region='';try{region=(new Intl.Locale(navigator.language||'en').maximize().region)||''}catch(e){}\n  var guestCountry='';if(region){try{guestCountry=new Intl.DisplayNames(['en'],{type:'region'}).of(region)}catch(e){}}\n  if(document.getElementById('gFlag'))document.getElementById('gFlag').textContent=region?flagEmoji(region):'';\n  if(document.getElementById('gName'))document.getElementById('gName').textContent=guestCountry||guestCity;\n\n  function tzParts(tz){var f=new Intl.DateTimeFormat('en-GB',{timeZone:tz,hour12:false,hour:'2-digit',minute:'2-digit',second:'2-digit',weekday:'short',day:'2-digit',month:'short'});var p={};f.formatToParts(new Date()).forEach(function(x){p[x.type]=x.value});return{h:(+p.hour)%24,m:+p.minute,s:+p.second,wd:p.weekday,day:p.day,mon:p.month}}\n  function setHands(pre,t){var el=document.getElementById(pre+'s');if(!el)return;var sec=t.s*6,min=t.m*6+t.s*.1,hr=(t.h%12)*30+t.m*.5;el.style.transform='translateX(-50%) rotate('+sec+'deg)';document.getElementById(pre+'m').style.transform='translateX(-50%) rotate('+min+'deg)';document.getElementById(pre+'h').style.transform='translateX(-50%) rotate('+hr+'deg)'}\n  function pad(n){return(10>n?'0':'')+n}\n  function digital(t){var ap=12>t.h?'am':'pm',h=t.h%12||12;return h+':'+pad(t.m)+' '+ap}\n  function tzOffsetMin(tz){var d=new Date(),u=new Date(d.toLocaleString('en-US',{timeZone:'UTC'})),l=new Date(d.toLocaleString('en-US',{timeZone:tz}));return Math.round((l-u)\/60000)}\n  (function(){var el=document.getElementById('ahead');if(!el)return;var diff=tzOffsetMin('Asia\/Colombo')-tzOffsetMin(guestTz);if(diff===0){el.textContent='Right now, Medusa keeps the very same hour as you.';return}var ahead=diff>0,mins=Math.abs(diff),h=Math.floor(mins\/60),mm=mins%60,hs=h+(mm===30?'\u00bd':'')+' hour'+(h!==1||mm===30?'s':'');if(h===0)hs=mm+' minutes';el.textContent='Medusa runs '+hs+(ahead?' ahead of you.':' behind you.')})();\n\n  var wxStr='';\n  function tick(){var c=tzParts('Asia\/Colombo'),g=tzParts(guestTz);setHands('c',c);setHands('g',g);\n    var cd=document.getElementById('ceylonDigital');if(cd)cd.textContent=digital(c)+'  \u00b7  '+c.wd+' '+c.day+' '+c.mon;\n    var gd=document.getElementById('guestDigital');if(gd)gd.textContent=digital(g)+'  \u00b7  '+g.wd+' '+g.day+' '+g.mon;\n    var ft=document.getElementById('footTime');if(ft)ft.textContent=digital(c)+(wxStr?(' \u00b7 '+wxStr):'');\n    if(soundOn)playTick(c.s);}\n  tick();setInterval(tick,1000);\n\n  function wText(code){if(code===0)return'Clear skies';if(2>=code)return'Soft sun';if(code===3)return'Overcast';if(48>=code)return'Morning mist';if(67>=code)return'Tropical rain';if(82>=code)return'Passing showers';if(99>=code)return'Distant thunder';return'Tropical air'}\n  var wEl=document.getElementById('weather');if(wEl)wEl.innerHTML='<span class=\"deg\">28&deg;<\/span> &middot; Tropical air';wxStr='28\u00b0';\n  fetch('https:\/\/api.open-meteo.com\/v1\/forecast?latitude=6.0535&longitude=80.221&current=temperature_2m,weather_code&timezone=Asia%2FColombo').then(function(r){return r.json()}).then(function(d){var t=Math.round(d.current.temperature_2m),c=wText(d.current.weather_code);if(wEl)wEl.innerHTML='<span class=\"deg\">'+t+'&deg;<\/span> &middot; '+c;wxStr=t+'\u00b0 \u00b7 '+c}).catch(function(){});\n\n  var soundOn=false,ac=null;\n  function playTick(sec){if(!ac)return;var freq=(sec%2===0)?1850:1200,o=ac.createOscillator(),gn=ac.createGain();o.type='square';o.frequency.value=freq;gn.gain.setValueAtTime(.0001,ac.currentTime);gn.gain.exponentialRampToValueAtTime(.15,ac.currentTime+.001);gn.gain.exponentialRampToValueAtTime(.0001,ac.currentTime+.045);o.connect(gn).connect(ac.destination);o.start();o.stop(ac.currentTime+.06)}\n  function toggleSound(){soundOn=!soundOn;var b=document.getElementById('sbtn');if(soundOn){ac=ac||new(window.AudioContext||window.webkitAudioContext)();if(ac.state==='suspended')ac.resume();b.classList.add('on');document.getElementById('slabel').textContent='Ticking \u2014 silence'}else{b.classList.remove('on');document.getElementById('slabel').textContent='Wind the clock'}}\n<\/script><style>.brandlogo{height:26px;width:auto;display:block}@media(max-width:760px){.brandlogo{height:21px}}.brandlogo-om{height:clamp(44px,8vw,80px);width:auto;display:block}.brandlogo-fm{height:40px;width:auto;margin:0 auto;display:block}#page-villa .hero{background:linear-gradient(rgba(8,6,3,.68),rgba(8,6,3,.4) 48%,rgba(8,6,3,.56)),url('https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-villa-facade.webp') center\/cover!important}#page-villa .plate-pool{background-image:url('https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-hero-plunge-pool.webp')!important;background-size:cover;background-position:center}<\/style>\n\n<style id=\"mz-safetynet\">body main .page{color:var(--cream)}body main .page .card:not(.dark){color:var(--ink)}body main .page .stage h2,body main .page .stage p{color:var(--cream)}<\/style>\n<style id=\"mz-textfix\">body main .page h1,body main .page h2,body main .page h3,body main .page h4,body main .page h5{color:var(--cream)!important}body main .page h1 em,body main .page h2 em,body main .page h3 em{color:var(--gilt)!important}body main .page .btn{color:var(--cream)!important}body main .page .btn.solid,body main .page .btn.solid:hover{color:var(--ink)!important}body main .page .door h3,body main .page .door .enter{color:var(--cream)!important}body main .page .card:not(.dark),body main .page .card:not(.dark) h1,body main .page .card:not(.dark) h2,body main .page .card:not(.dark) h3,body main .page .card:not(.dark) h4,body main .page .card:not(.dark) p{color:var(--ink)!important}body main .page .card:not(.dark) h2 em{color:#9a7a33!important}body main .page .eyebrow{color:var(--gold)!important}body main .page .card:not(.dark) .eyebrow{color:#8a6d2e!important}<\/style>\n<style id=\"mz-textfix2\">body main .page .card.dark,body main .page .card.dark p,body main .page .card.dark h2,body main .page .card.dark h3{color:var(--cream)!important}body main .page .card.dark h2 em,body main .page .card.dark em{color:var(--gold)!important}body main .page .stage h2,body main .page .stage p,body main .page .invite h2,body main .page .invite p,body main .page .quote blockquote{color:var(--cream)!important}body main .page .stage p,body main .page .invite p{color:var(--soft)!important}<\/style>\n<style id=\"mz-alfred\">.alfred-btn{position:fixed;bottom:26px;right:26px;z-index:300;width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--gilt),var(--gold));color:var(--ink);border:none;cursor:pointer;box-shadow:0 14px 38px rgba(0,0,0,.5);transition:transform .4s;font-size:0;animation:mzbob 5s ease-in-out infinite}\n.alfred-btn:hover{transform:translateY(-3px) scale(1.04)}\n.alfred-btn::after{content:\"\";position:absolute;inset:0;background:url(data:image\/svg+xml,%3Csvg%20xmlns=%27http:\/\/www.w3.org\/2000\/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%20stroke=%27%2316130d%27%20stroke-width=%271.7%27%20stroke-linecap=%27round%27%20stroke-linejoin=%27round%27%3E%3Cpath%20d=%27M12%203a6%206%200%200%200-6%206c0%203-1%205-2%206h16c-1-1-2-3-2-6a6%206%200%200%200-6-6Z%27\/%3E%3Cpath%20d=%27M10.5%2020a1.5%201.5%200%200%200%203%200%27\/%3E%3C\/svg%3E) center\/27px no-repeat;pointer-events:none}\n.alfred-btn::before{content:\"\";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--gold);animation:mzring 3.2s ease-out infinite;pointer-events:none}\n.alfred-btn .a-dot{position:absolute;top:4px;right:4px;width:13px;height:13px;border-radius:50%;background:#7bbf6a;border:2px solid #0d0b07;box-shadow:0 0 8px rgba(123,191,106,.8);animation:mzpulse 2.2s ease-in-out infinite}\n.a-label{position:fixed;bottom:44px;right:100px;z-index:300;font-family:\"Cinzel\",serif;font-size:.52rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream);background:rgba(15,12,8,.92);border:1px solid rgba(201,164,92,.4);padding:8px 13px;opacity:0;pointer-events:none;transition:.3s;white-space:nowrap}\n.alfred-btn:hover ~ .a-label{opacity:1}\n.a-hello{position:fixed;bottom:102px;right:26px;z-index:300;max-width:250px;background:rgba(15,12,8,.97);border:1px solid rgba(201,164,92,.4);box-shadow:0 18px 44px rgba(0,0,0,.55);padding:15px 18px;font-family:\"Cormorant Garamond\",serif;font-weight:300;font-size:.98rem;line-height:1.5;color:var(--cream);opacity:0;transform:translateY(10px);transition:.5s;pointer-events:none}\n.a-hello.show{opacity:1;transform:none;pointer-events:auto}\n.a-hello .nm2{font-style:italic;color:var(--gold);font-size:1.18em}\n.a-hello .x{position:absolute;top:6px;right:10px;color:var(--soft);cursor:pointer;font-size:1rem;line-height:1}\n@keyframes mzring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.8);opacity:0}}\n@keyframes mzpulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.8);opacity:.6}}\n@keyframes mzbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}\n@media(prefers-reduced-motion:reduce){.alfred-btn,.alfred-btn::before,.alfred-btn .a-dot{animation:none!important}}<\/style>\n<script id=\"mz-alfred-js\" data-no-optimize=\"1\" data-no-defer=\"1\">function openAlfred(){var a=document.getElementById('alfred');if(a)a.classList.add('open');hideHello()}function hideHello(){var h=document.getElementById('aHello');if(h)h.classList.remove('show')}(function(){var rm=false;try{rm=matchMedia('(prefers-reduced-motion:reduce)').matches}catch(e){}if(rm)return;try{if(sessionStorage.getItem('medAlfredHello'))return}catch(e){}setTimeout(function(){var h=document.getElementById('aHello'),a=document.getElementById('alfred');if(h&&a&&!a.classList.contains('open')){h.classList.add('show');try{sessionStorage.setItem('medAlfredHello','1')}catch(e){}setTimeout(hideHello,9000)}},4500)})();<\/script>\n<script id=\"mz-living\" data-no-optimize=\"1\" data-no-defer=\"1\">(function(){function run(){var nm2=document.querySelector(\".a-hello .nm2\");var bub=document.querySelector(\"#alfred .am .bub.a\");var hero=document.querySelector(\".page.active .hero[data-time], .hero[data-time]\");if(!nm2&&!bub&&!hero)return;var vh=new Date().getHours();var greet=(12>vh)?\"Good morning\":(17>vh)?\"Good afternoon\":\"Good evening\";if(nm2)nm2.textContent=greet+\".\";if(bub)bub.textContent=bub.textContent.replace(\/^Good (morning|afternoon|evening)\/,greet);if(hero){try{var f=new Intl.DateTimeFormat(\"en-GB\",{timeZone:\"Asia\/Colombo\",hour:\"2-digit\",hour12:false});var gh=parseInt(f.format(new Date()),10)%24;var tod=(gh>=5&&8>gh)?\"dawn\":(gh>=8&&16>gh)?\"day\":(gh>=16&&18>gh)?\"gold\":(gh>=18&&20>gh)?\"dusk\":\"night\";hero.setAttribute(\"data-time\",tod);document.body.setAttribute(\"data-time\",tod);}catch(e){}}}if(document.readyState!==\"loading\")run();else document.addEventListener(\"DOMContentLoaded\",run);})();<\/script>","protected":false},"excerpt":{"rendered":"<p>A day kept &middot; Galle, Ceylon HomeThe RetreatThe VillaThe HouseGalleryContactReserve The Villa &middot; Whole house The whole house,yours. Three bedrooms, a private pool, a garden, and a staff who remember your name \u2014 Ceylon, kept for your family and friends. Check availability The stay A private house,not a hotel. When you book the villa, you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10476,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-10461","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages\/10461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/comments?post=10461"}],"version-history":[{"count":13,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages\/10461\/revisions"}],"predecessor-version":[{"id":10572,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages\/10461\/revisions\/10572"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/media\/10476"}],"wp:attachment":[{"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/media?parent=10461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}