{"id":10454,"date":"2026-06-21T01:17:44","date_gmt":"2026-06-20T19:47:44","guid":{"rendered":"https:\/\/medusabungalow.com\/?page_id=10454"},"modified":"2026-08-07T03:03:46","modified_gmt":"2026-08-06T21:33:46","slug":"home","status":"publish","type":"page","link":"https:\/\/medusabungalow.com\/en\/","title":{"rendered":"Home"},"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\/\" class=\"active\">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 Bungalow<\/a><a href=\"https:\/\/medusabungalow.com\/en\/gallery\/\">Gallery<\/a><a href=\"https:\/\/medusabungalow.com\/en\/getting-here\/\">Getting here<\/a><a href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Contact<\/a><a href=\"https:\/\/medusabungalow.com\/en\/book-direct-availability\/\" class=\"resv\">Reserve<\/a><\/div><\/nav>\n<main><div class=\"page active\" id=\"page-home\">\n  <section class=\"hero\" data-time=\"dawn\"><video class=\"hero-vid\" autoplay muted loop playsinline preload=\"metadata\" poster=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-hero-plunge-pool.webp\"><source src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-hero-loop.mp4\" type=\"video\/mp4\"><\/video>\n    <div class=\"layer l-haze\"><\/div><div class=\"layer l-fore\"><\/div><div class=\"motes\" id=\"motes\"><\/div><div class=\"vignette\"><\/div>\n    <div class=\"hero-in\">\n      <div class=\"eyebrow reveal\">Galle &middot; Southern Ceylon<\/div>\n      <h1 class=\"reveal d1\">A Hidden Colonial<br><em>Sanctuary<\/em>.<\/h1>\n      <p class=\"lede reveal d2\">A 200-year-old villa, quietly restored, in the jungle above Galle.<\/p>\n      <div class=\"hero-rule reveal d2\"><\/div>\n      <div class=\"hero-cta reveal d3\"><a class=\"btn solid\" href=\"https:\/\/medusabungalow.com\/en\/book-direct-availability\/\">Check availability<\/a><a class=\"btn\" href=\"https:\/\/medusabungalow.com\/en\/ayurvedic-retreat\/\">The retreat<\/a><\/div>\n    <\/div>\n    <div class=\"scrollcue\">Let the day begin<span><\/span><\/div>\n  <\/section>\n\n  <div class=\"trust\"><div class=\"trust-row\">\n    <div class=\"ti\"><b>9.2<\/b>Guest rating<\/div><div class=\"ti\"><b>55<\/b>Reviews<\/div>\n    <div class=\"ti\"><b>\u2605<\/b>Airbnb Superhost<\/div><div class=\"ti\"><b>Direct<\/b>With the house<\/div>\n  <\/div>\n  <div class=\"trust-note\"><span class=\"tn-label\">Direct with the house<\/span>No platform fee. Free cancellation to 14 days. The same people who answer your email meet you at the gate.<\/div>\n  <\/div>\n<style id=\"mz-trustnote-css\">\n#page-home .trust-note{max-width:1080px;margin:0 auto;padding:14px clamp(16px,4vw,40px) 4px;text-align:center;font-size:clamp(.82rem,1.15vw,.95rem);line-height:1.7;color:var(--soft)}\n#page-home .trust-note .tn-label{display:block;font-family:\"Cinzel\",serif;text-transform:uppercase;letter-spacing:.34em;font-size:.56rem;color:var(--gold);margin-bottom:7px}\n<\/style>\n\n  <section data-time=\"day\"><div class=\"card reveal\">\n    <div class=\"eyebrow\">Morning &middot; The Bungalow<\/div><h2 class=\"title\">A colonial bungalow<br>from a slower century.<\/h2>\n    <p class=\"first\">Medusa was built when the island still answered to another name. Teak darkened by generations, lime walls that hold the cool, verandas opening onto a garden the jungle keeps trying to take back.<\/p>\n    <p>They say her beauty once stopped men where they stood. The bungalow keeps a little of that \u2014 you arrive in a hurry, and the hurry simply leaves you.<\/p>\n  <\/div><\/section>\n\n  <div class=\"pulse\" data-time=\"day\"><div class=\"line\"><\/div><div class=\"node\"><\/div><div class=\"line r\"><\/div><\/div>\n\n  <section data-time=\"day\"><div class=\"wrap\">\n    <div class=\"card dark reveal\" style=\"margin-bottom:38px\"><div class=\"eyebrow\">Two ways to stay<\/div><h2 class=\"title\">One bungalow. <em>Two doors.<\/em><\/h2><\/div>\n    <div class=\"doors\">\n      <a class=\"door reveal d1\" href=\"https:\/\/medusabungalow.com\/en\/ayurvedic-retreat\/\"><div class=\"db retreat\"><\/div><div class=\"ds\"><\/div><div class=\"dc\">\n        <h3>The Retreat<\/h3><div class=\"price\">Private Ayurveda &middot; 7 nights<\/div>\n        <p>A resident doctor, daily treatment, the whole bungalow for one guest or couple.<\/p>\n        <div class=\"price\" style=\"color:var(--cream);opacity:.8;margin-top:12px\">from $<span data-medusa-retreat>2,800<\/span><\/div><span class=\"enter\">Enter the retreat<\/span><\/div><\/a>\n      <a class=\"door reveal d2\" href=\"https:\/\/medusabungalow.com\/en\/ceylon-colonial-bungalow-experience\/\"><div class=\"db villa\"><\/div><div class=\"ds\"><\/div><div class=\"dc\">\n        <h3>The Villa<\/h3><div class=\"price\">The whole bungalow, yours<\/div>\n        <p>Three bedrooms, a private pool, a garden, and a staff who remember your name.<\/p>\n        <div class=\"price\" style=\"color:var(--cream);opacity:.8;margin-top:12px\">direct from $<span data-medusa-from>115<\/span> \/ night<script>fetch(\"\/wp-json\/medusa\/v1\/availability\").then(r=>r.json()).then(d=>{var p=d&&d.prices?Object.values(d.prices):null;if(p&&p.length){var m=Math.min.apply(null,p);document.querySelectorAll(\"[data-medusa-from]\").forEach(function(e){e.textContent=m;});}if(d&&d.retreatEur){document.querySelectorAll(\"[data-medusa-retreat]\").forEach(function(e){e.textContent=Number(d.retreatEur).toLocaleString();});}}).catch(function(){});<\/script><\/div><span class=\"enter\">Enter the villa<\/span><\/div><\/a>\n    <\/div>\n  <\/div><\/section>\n\n<section data-time=\"day\" id=\"mz-heritage\"><div class=\"wrap\">\n  <div class=\"her-grid reveal\">\n    <div class=\"her-copy\">\n      <div class=\"eyebrow\">The lineage<\/div>\n      <h2 class=\"her-h\">A doctor&#8217;s house, before it was yours.<\/h2>\n      <p class=\"her-body\">The first owner of this bungalow was a physician of the old school \u2014 an Ayurvedic doctor, our great-grandfather, who received his patients here. The verandahs where you take your morning tea were once his consulting rooms; the garden grew his herbs. When we restored the bungalow, we restored the practice with it. The retreat is not a spa we added \u2014 it is the house remembering what it was built for.<\/p>\n      <p class=\"her-close\"><em>Four generations on, the door is still open.<\/em><\/p>\n    <\/div>\n    <div class=\"her-media\">\n      <img loading=\"lazy\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-villa-facade-1024x576.webp\" alt=\"The restored colonial bungalow at Medusa, once an Ayurvedic doctor's family home near Galle\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\">\n    <\/div>\n  <\/div>\n<\/div><\/section>\n\n  <div class=\"pulse\" data-time=\"day\"><div class=\"line\"><\/div><div class=\"node\"><\/div><div class=\"line r\"><\/div><\/div>\n\n<style id=\"mz-heritage-css\">\n#page-home #mz-heritage .wrap{max-width:1080px;margin:0 auto}\n#page-home #mz-heritage .her-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(44px,7vw,90px) 0}\n#page-home #mz-heritage .eyebrow{font-family:\"Cinzel\",serif;text-transform:uppercase;letter-spacing:.34em;font-size:.58rem;color:var(--gold)}\n#page-home #mz-heritage .her-h{font-weight:300;font-size:clamp(1.7rem,4.4vw,2.7rem);line-height:1.1;color:var(--cream);margin:.4em 0 .55em}\n#page-home #mz-heritage .her-body{font-size:clamp(1.02rem,1.5vw,1.2rem);line-height:1.78;color:var(--soft);max-width:34em}\n#page-home #mz-heritage .her-close{margin-top:1.25em;font-size:clamp(1.06rem,1.7vw,1.32rem);color:var(--gilt);font-style:italic}\n#page-home #mz-heritage .her-media{position:relative}\n#page-home #mz-heritage .her-media img{display:block;width:100%;height:100%;max-height:520px;object-fit:cover;border-radius:3px;box-shadow:0 24px 60px rgba(0,0,0,.5);border:1px solid rgba(201,164,92,.25)}\n#page-home #mz-heritage .her-media::after{content:\"\";position:absolute;inset:0;border-radius:3px;box-shadow:inset 0 0 70px rgba(0,0,0,.45);pointer-events:none}\n@media(max-width:820px){\n  #page-home #mz-heritage .her-grid{grid-template-columns:1fr;gap:24px}\n  #page-home #mz-heritage .her-media{order:-1}\n  #page-home #mz-heritage .her-media img{max-height:280px}\n  #page-home #mz-heritage .her-body{max-width:none}\n}\n<\/style>\n\n\n<section data-time=\"day\" id=\"mz-legend\"><div class=\"wrap\">\n  <div class=\"leg-grid reveal\">\n    <div class=\"leg-media\">\n      <img loading=\"lazy\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/nature-a7400096.jpg\" alt=\"The garden planted by Master Sekaradaris at Medusa Bungalow, still full of birds and forest life\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1800\">\n    <\/div>\n    <div class=\"leg-copy\">\n      <div class=\"eyebrow\">The legend of Medusa<\/div>\n      <h2 class=\"leg-h\">A healer who spoke to the forest.<\/h2>\n      <p class=\"leg-body\">Two hundred years ago this was the home of Master Sekaradaris \u2014 the village chief, and a doctor of the old Hela Ayurveda. They say he could speak with the animals, and that they came to him; birds and creatures still fill the garden he planted, as though keeping his company.<\/p>\n      <p class=\"leg-body\">His cures were drawn wholly from the jungle \u2014 roots, flowers and bark, gathered and prepared by his own hand, to recipes he never let leave the house. Four generations on, they are still ours, still made the same way.<\/p>\n      <p class=\"leg-close\"><em>The house carries his name \u2014 Medusa \u2014 for a man who held even the serpents of the forest without fear.<\/em><\/p>\n    <\/div>\n  <\/div>\n<\/div><\/section>\n\n  <div class=\"pulse\" data-time=\"day\"><div class=\"line\"><\/div><div class=\"node\"><\/div><div class=\"line r\"><\/div><\/div>\n\n<style id=\"mz-legend-css\">\n#page-home #mz-legend .wrap{max-width:1080px;margin:0 auto}\n#page-home #mz-legend .leg-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(44px,7vw,90px) 0}\n#page-home #mz-legend .eyebrow{font-family:\"Cinzel\",serif;text-transform:uppercase;letter-spacing:.34em;font-size:.58rem;color:var(--gold)}\n#page-home #mz-legend .leg-h{font-weight:300;font-size:clamp(1.7rem,4.4vw,2.7rem);line-height:1.1;color:var(--cream);margin:.4em 0 .55em}\n#page-home #mz-legend .leg-body{font-size:clamp(1.02rem,1.5vw,1.2rem);line-height:1.78;color:var(--soft);max-width:34em;margin:0 0 1em}\n#page-home #mz-legend .leg-close{margin-top:1.25em;font-size:clamp(1.06rem,1.7vw,1.32rem);color:var(--gilt);font-style:italic}\n#page-home #mz-legend .leg-media{position:relative}\n#page-home #mz-legend .leg-media img{display:block;width:100%;height:100%;max-height:560px;object-fit:cover;border-radius:3px;box-shadow:0 24px 60px rgba(0,0,0,.5);border:1px solid rgba(201,164,92,.25)}\n#page-home #mz-legend .leg-media::after{content:\"\";position:absolute;inset:0;border-radius:3px;box-shadow:inset 0 0 70px rgba(0,0,0,.45);pointer-events:none}\n@media(max-width:820px){\n  #page-home #mz-legend .leg-grid{grid-template-columns:1fr;gap:24px}\n  #page-home #mz-legend .leg-media img{max-height:280px}\n  #page-home #mz-legend .leg-body{max-width:none}\n}\n<\/style>\n\n  <section class=\"stage\" data-time=\"gold\"><div class=\"plate plate-treatment\"><\/div><div class=\"scrim\"><\/div>\n    <div class=\"st-in reveal\"><div class=\"eyebrow\">Midday &middot; Hela Ayurveda<\/div><h2>Medicine,<br><em>the old way.<\/em><\/h2>\n    <p>A consultation, a reading of your constitution, a course prepared for your body and the season. Oils warmed over a flame, herbs from the garden, a daily rhythm of stillness.<\/p><\/div>\n    <div class=\"cap\">Hela Ayurveda<\/div>\n  <\/section>\n\n  <section class=\"stage\" data-time=\"gold\"><div class=\"plate plate-garden\"><\/div><div class=\"scrim\"><\/div>\n    <div class=\"st-in reveal\"><h2 style=\"font-style:italic\">The day ends early here.<br>The light goes gold, the garden<br>exhales, and there is nowhere<br>you have to be.<\/h2><\/div>\n    <div class=\"cap\">The garden, golden hour<\/div>\n  <\/section>\n\n  <section data-time=\"dusk\"><div class=\"wrap\">\n    <div class=\"strip-head reveal\"><div class=\"eyebrow\">Evening &middot; Moments<\/div><h2 class=\"title\" style=\"color:var(--cream)\">From around <em style=\"color:var(--gold)\">the bungalow.<\/em><\/h2><\/div>\n    <div class=\"strip reveal\" id=\"strip\">\n      <div class=\"frame f1\"><img loading=\"lazy\" class=\"mz-eager\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1800\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/villa-a7400117.jpg\" alt=\"The Veranda \u2014 Medusa Bungalow\"><span class=\"fc\">The Veranda<\/span><\/div><div class=\"frame f2\"><img loading=\"lazy\" class=\"mz-eager\" loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"1500\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-hero-plunge-pool.webp\" alt=\"The Plunge Pool \u2014 Medusa Bungalow\"><span class=\"fc\">The Plunge Pool<\/span><\/div>\n      <div class=\"frame f3\"><img loading=\"lazy\" class=\"mz-eager\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1800\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/nature-a7400007.jpg\" alt=\"First Light \u2014 Medusa Bungalow\"><span class=\"fc\">First Light<\/span><\/div><div class=\"frame f4\"><img loading=\"lazy\" class=\"mz-eager\" loading=\"lazy\" decoding=\"async\" width=\"1133\" height=\"1700\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-floating-breakfast.webp\" alt=\"The Table \u2014 Medusa Bungalow\"><span class=\"fc\">The Table<\/span><\/div>\n      <div class=\"frame f5\"><img loading=\"lazy\" class=\"mz-eager\" loading=\"lazy\" decoding=\"async\" width=\"843\" height=\"1500\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-ayurveda-massage-garden.webp\" alt=\"The Treatment \u2014 Medusa Bungalow\"><span class=\"fc\">The Treatment<\/span><\/div><div class=\"frame f6\"><img loading=\"lazy\" class=\"mz-eager\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1800\" src=\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/nature-a7400096.jpg\" alt=\"The Garden \u2014 Medusa Bungalow\"><span class=\"fc\">The Garden<\/span><\/div>\n    <\/div>\n  <\/div><\/section>\n\n  <section data-time=\"dusk\"><div class=\"wrap quote reveal\"><div class=\"mark\">&ldquo;<\/div>\n    <blockquote>We arrived tired, and left lighter than we came.<\/blockquote><cite>\u2014 A recent guest<\/cite><\/div><\/section>\n\n  <!-- ISLAND TIME (blended, on-theme) -->\n  <section data-time=\"night\" id=\"yg\"><div class=\"wrap\">\n  <div class=\"yg-in reveal\">\n    <div class=\"eyebrow\">The bungalow, right now<\/div>\n    <h2 class=\"yg-h\">You&#8217;re on <em>island time<\/em> now.<\/h2>\n\n    <div class=\"pair\">\n      <div class=\"clock you\">\n        <div class=\"face\" id=\"faceYou\">\n          <div class=\"ticks\" id=\"tkYou\"><\/div>\n          <div class=\"nums\" id=\"nmYou\"><\/div>\n          <div class=\"tod\">\n            <svg class=\"ic ic-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#e6cd93\" stroke-width=\"1.6\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"4\"><\/circle><path d=\"M12 2v2M12 20v2M2 12h2M20 12h2M5 5l1.5 1.5M17.5 17.5L19 19M19 5l-1.5 1.5M6.5 17.5L5 19\" stroke-linecap=\"round\"><\/path><\/svg>\n            <svg class=\"ic ic-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a9b6d6\" stroke-width=\"1.6\" aria-hidden=\"true\"><path d=\"M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z\" stroke-linejoin=\"round\"><\/path><\/svg>\n          <\/div>\n          <img loading=\"lazy\" class=\"flagin\" id=\"flagYou\" alt=\"\" width=\"22\" height=\"16\" loading=\"lazy\" hidden>\n          <div class=\"hand hour\" id=\"yh\"><\/div><div class=\"hand min\" id=\"ym\"><\/div><div class=\"hand sec\" id=\"ys\"><\/div><div class=\"cap\"><\/div>\n        <\/div>\n        <div class=\"lbl\" id=\"lblYou\">Where you are<\/div>\n        <div class=\"dg\" id=\"dgYou\">&#8211;:&#8211;<\/div>\n      <\/div>\n\n      <div class=\"between\"><div class=\"ln\"><\/div><div class=\"ap\" id=\"apart\">&nbsp;<\/div><div class=\"ln\"><\/div><\/div>\n\n      <div class=\"clock galle\">\n        <div class=\"face\" id=\"faceLK\">\n          <div class=\"ticks\" id=\"tkLK\"><\/div>\n          <div class=\"nums\" id=\"nmLK\"><\/div>\n          <div class=\"tod\">\n            <svg class=\"ic ic-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#e6cd93\" stroke-width=\"1.6\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"4\"><\/circle><path d=\"M12 2v2M12 20v2M2 12h2M20 12h2M5 5l1.5 1.5M17.5 17.5L19 19M19 5l-1.5 1.5M6.5 17.5L5 19\" stroke-linecap=\"round\"><\/path><\/svg>\n            <svg class=\"ic ic-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a9b6d6\" stroke-width=\"1.6\" aria-hidden=\"true\"><path d=\"M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z\" stroke-linejoin=\"round\"><\/path><\/svg>\n          <\/div>\n          <img loading=\"lazy\" decoding=\"async\" class=\"flagin\" src=\"https:\/\/flagcdn.com\/lk.svg\" alt=\"Sri Lanka\" width=\"22\" height=\"16\" loading=\"lazy\">\n          <div class=\"hand hour\" id=\"lh\"><\/div><div class=\"hand min\" id=\"lm\"><\/div><div class=\"hand sec\" id=\"ls\"><\/div><div class=\"cap\"><\/div>\n        <\/div>\n        <div class=\"lbl gl\">Galle &middot; Sri Lanka<\/div>\n        <div class=\"dg\" id=\"dgLK\">&#8211;:&#8211;<\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"contrast\" id=\"contrast\">&nbsp;<\/p>\n\n    <div class=\"facts\">\n      <div class=\"fact\"><div class=\"fl\">In the garden<\/div><div class=\"fv\"><span class=\"deg\" id=\"wdeg\">&middot;<\/span><span id=\"wdesc\"><\/span><\/div><\/div>\n      <div class=\"fact\"><div class=\"fl\">The sun<\/div><div class=\"fv\" id=\"sun\">&middot;<\/div><div class=\"sub\" id=\"sunsub\">&nbsp;<\/div><\/div>\n      <div class=\"fact\"><div class=\"fl\">Tonight&#8217;s moon<\/div><div class=\"fv\" id=\"moon\">&middot;<\/div><div class=\"sub\" id=\"moonsub\">&nbsp;<\/div><\/div>\n    <\/div>\n\n    <div><button class=\"sbtn\" id=\"sbtn\" type=\"button\"><span class=\"sdot\"><\/span><span id=\"slabel\">Wind the clock<\/span><\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n  <div class=\"pulse\" data-time=\"night\"><div class=\"line\"><\/div><div class=\"node\"><\/div><div class=\"line r\"><\/div><\/div>\n\n  <section data-time=\"night\"><div class=\"card dark reveal\"><div class=\"eyebrow\">Through the night<\/div>\n    <h2 class=\"title\"><em style=\"color:var(--gold)\">Alfred<\/em> is awake<br>whenever you are.<\/h2>\n    <p style=\"font-weight:300\">Our concierge answers in moments, at any hour \u2014 treatments, transfers, a table, a question about the bungalow.<\/p>\n    <div style=\"margin-top:26px\"><button class=\"btn\" onclick=\"openAlfred()\">Speak to Alfred<\/button><\/div>\n  <\/div><\/section>\n\n  <section class=\"invite\" data-time=\"night\"><div class=\"wrap reveal\"><div class=\"eyebrow\">An invitation<\/div>\n    <h2>One bungalow.<br>One booking <em>at a time.<\/em><\/h2>\n    <p>When you stay, the bungalow is entirely yours. See your dates and book direct in a moment.<\/p>\n    <a class=\"btn solid\" href=\"https:\/\/medusabungalow.com\/en\/book-direct-availability\/\">Check availability<\/a><\/div><\/section>\n<\/div><\/main>\n<section class=\"mz-reserve\" id=\"mz-reserve\"><div class=\"wrap\" style=\"max-width:760px;margin:0 auto;text-align:center;padding:56px 18px 62px\">\n  <div class=\"eyebrow\">Your dates at Medusa<\/div>\n  <h2 class=\"mz-reserve-h\">Reserve Your Stay<\/h2>\n  <p class=\"mz-reserve-p\">The whole villa, yours alone \u2014 see your dates and our best direct price, and book in a moment.<\/p>\n  <a class=\"btn solid mz-reserve-btn\" href=\"https:\/\/medusabungalow.com\/en\/contact\/\">Reserve Your Stay<\/a>\n  <div id=\"mz-opendates\" class=\"od\" hidden><\/div>\n<\/div><\/section>\n<style id=\"mz-reserve-css\">\n#mz-reserve .eyebrow{font-family:\"Cinzel\",serif;text-transform:uppercase;letter-spacing:.34em;font-size:.58rem;color:var(--gold)}\n#mz-reserve .mz-reserve-h{font-weight:300;font-size:clamp(1.7rem,5.4vw,2.5rem);line-height:1.08;margin:.3em 0 .2em;color:var(--cream)}\n#mz-reserve .mz-reserve-p{color:var(--soft);max-width:30em;margin:0 auto 1.5em;font-size:clamp(1rem,2.6vw,1.15rem);line-height:1.5}\n#mz-reserve .mz-reserve-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 30px}\n<\/style>\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 Bungalow<\/a><a href=\"https:\/\/medusabungalow.com\/en\/gallery\/\">Gallery<\/a><a href=\"https:\/\/medusabungalow.com\/en\/getting-here\/\">Getting here<\/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 bungalow?<\/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=\"dawn\";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 bungalow 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 bungalow, a resident doctor, and twice-daily treatment shaped to you, over seven nights. I\u2019ll get you the current retreat pricing right away. 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 bungalow takes care of it. Could you share your dates, and I'll see to the rest?\"};\n  function respond(t){var typing=document.createElement('div');typing.className='bub a';typing.textContent='\u2026';am.appendChild(typing);am.scrollTop=am.scrollHeight;if(!window.__medCID){try{window.__medCID=localStorage.getItem('medAlfredCID')}catch(e){}if(!window.__medCID){window.__medCID='web'+Date.now().toString(36)+Math.random().toString(36).slice(2,8);try{localStorage.setItem('medAlfredCID',window.__medCID)}catch(e){}}}fetch('https:\/\/medusa-ceo-staging-7u7x.onrender.com\/api\/alfred\/web',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({conversationId:window.__medCID,message:t})}).then(function(r){return r.json()}).then(function(d){if(typing.parentNode)typing.parentNode.removeChild(typing);bub((d&&d.reply)||\"Let me check with the team and come right back to you.\",'a')}).catch(function(){if(typing.parentNode)typing.parentNode.removeChild(typing);bub(\"I'm just reconnecting \u2014 please share your dates and the best way to reach you, and the team will follow up right away.\",'a')})}\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(n<10?'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>\n<style id=\"home-real\">#page-home .hero{background:#0d0b07}#page-home .hero .hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:brightness(.6) saturate(1.05)}.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-home .plate-treatment{background-image:url('https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-ayurveda-massage-garden.webp')!important;background-size:cover;background-position:center}#page-home .plate-garden{background-image:url('https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/nature-a7400096.jpg')!important;background-size:cover;background-position:center}#page-home .db.retreat{background-image:url('https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-ayurveda-massage-table.webp')!important;background-size:cover;background-position:center}#page-home .db.villa{background-image:url('https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-villa-facade-1024x576.webp')!important;background-size:cover;background-position:center}.flag-svg{width:1.85rem;height:auto;border-radius:2px;box-shadow:0 1px 5px rgba(0,0,0,.55);display:inline-block;vertical-align:middle}#page-home .dialmark .flag{font-size:0;line-height:0}<\/style>\n<script data-no-optimize=\"1\" data-no-defer=\"1\">(function(){function go(){try{var r=\"\";try{r=(new Intl.Locale(navigator.language||\"en\").maximize().region)||\"\";}catch(e){}if(!r)r=\"US\";var gf=document.getElementById(\"gFlag\");if(gf)gf.innerHTML='<img decoding=\"async\" class=\"flag-svg\" src=\"https:\/\/flagcdn.com\/'+r.toLowerCase()+'.svg\" alt=\"\">';}catch(e){}}if(document.readyState!==\"loading\")setTimeout(go,60);else document.addEventListener(\"DOMContentLoaded\",go);})();<\/script>\n\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-moments\">#page-home .frame::before{display:none!important}#page-home .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}#page-home .frame::after{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(transparent 55%,rgba(8,6,3,.72));pointer-events:none}#page-home .frame .fc{z-index:2;color:var(--cream);text-shadow:0 1px 6px rgba(0,0,0,.8)}<\/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}<br \/>\n.alfred-btn:hover{transform:translateY(-3px) scale(1.04)}<br \/>\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}<br \/>\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}<br \/>\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}<br \/>\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}<br \/>\n.alfred-btn:hover ~ .a-label{opacity:1}<br \/>\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}<br \/>\n.a-hello.show{opacity:1;transform:none;pointer-events:auto}<br \/>\n.a-hello .nm2{font-style:italic;color:var(--gold);font-size:1.18em}<br \/>\n.a-hello .x{position:absolute;top:6px;right:10px;color:var(--soft);cursor:pointer;font-size:1rem;line-height:1}<br \/>\n@keyframes mzring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.8);opacity:0}}<br \/>\n@keyframes mzpulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.8);opacity:.6}}<br \/>\n@keyframes mzbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}<br \/>\n@media(prefers-reduced-motion:reduce){.alfred-btn,.alfred-btn::before,.alfred-btn .a-dot{animation:none!important}}<\/style>\n<p><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><\/p>\n\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"LodgingBusiness\",\"name\":\"Medusa Bungalow\",\"description\":\"A restored colonial villa and private Ayurveda retreat above the Galle coast in southern Sri Lanka.\",\"url\":\"https:\/\/medusabungalow.com\/\",\"telephone\":\"+94777705398\",\"email\":\"hello@medusabungalow.com\",\"image\":\"https:\/\/medusabungalow.com\/wp-content\/uploads\/2026\/06\/medusa-villa-facade.webp\",\"priceRange\":\"$$$\",\"numberOfRooms\":3,\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Akmeemana, Galle\",\"addressRegion\":\"Southern Province\",\"addressCountry\":\"LK\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":6.0535,\"longitude\":80.221},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":\"9.2\",\"reviewCount\":\"55\",\"bestRating\":\"10\",\"worstRating\":\"1\"}}<\/script>\n\n\n<style id=\"mz-rightnow\">\n#page-home #yg .yg-in{max-width:760px;margin:0 auto;text-align:center}<br \/>\n#page-home #yg .yg-h{font-weight:300;font-size:clamp(1.9rem,7vw,3rem);line-height:1.06;margin:.32em 0 0}<br \/>\n#page-home #yg .yg-h em{font-style:italic;color:var(--gilt)}<br \/>\n#page-home #yg .pair{display:flex;align-items:flex-start;justify-content:center;gap:clamp(14px,5vw,42px);margin:34px 0 4px}<br \/>\n#page-home #yg .clock{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}<br \/>\n#page-home #yg .face{position:relative;border-radius:50%;width:clamp(120px,33vw,168px);height:clamp(120px,33vw,168px);border:1.5px solid rgba(201,164,92,.5);box-shadow:inset 0 4px 22px rgba(0,0,0,.6),0 18px 44px rgba(0,0,0,.5);transition:background 1.5s}<br \/>\n#page-home #yg .clock.galle .face{border:2px solid var(--gold);box-shadow:0 0 0 5px rgba(201,164,92,.13),0 0 0 6px rgba(201,164,92,.5),inset 0 4px 24px rgba(0,0,0,.6),0 22px 52px rgba(0,0,0,.55),0 0 48px rgba(201,164,92,.2)}<br \/>\n#page-home #yg .face.night{background:radial-gradient(circle at 50% 34%,#1b2640,#0a0e1a 80%)}<br \/>\n#page-home #yg .face.dawn{background:radial-gradient(circle at 50% 60%,#5a3f2a,#1a130c 80%)}<br \/>\n#page-home #yg .face.day{background:radial-gradient(circle at 50% 38%,#2a2416,#120f08 80%)}<br \/>\n#page-home #yg .face.dusk{background:radial-gradient(circle at 50% 70%,#5a3320,#1a0f0a 80%)}<br \/>\n#page-home #yg .nums,#page-home #yg .ticks{position:absolute;inset:0;pointer-events:none}<br \/>\n#page-home #yg .nums .num{position:absolute;top:50%;left:50%;width:0;height:0}<br \/>\n#page-home #yg .nums .num span{position:absolute;font-family:\"Cinzel\",serif;font-weight:500;font-size:.6rem;color:var(--gilt);transform:translate(-50%,-50%);white-space:nowrap}<br \/>\n#page-home #yg .tickmark{position:absolute;top:50%;left:50%;width:1px;height:4px;background:rgba(201,164,92,.38);transform-origin:50% 0}<br \/>\n#page-home #yg .hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:4px;transform:translateX(-50%) rotate(0deg)}<br \/>\n#page-home #yg .hand.hour{background:linear-gradient(var(--gilt),var(--gold));z-index:3;width:3px;height:27%}<br \/>\n#page-home #yg .hand.min{background:linear-gradient(var(--gilt),var(--gold));z-index:3;width:2px;height:36%}<br \/>\n#page-home #yg .hand.sec{background:#d9534f;z-index:4;width:1.4px;height:39%;transition:transform .12s cubic-bezier(.4,2.3,.6,1)}<br \/>\n#page-home #yg .cap{position:absolute;top:50%;left:50%;width:9px;height:9px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%);z-index:5;box-shadow:0 0 7px rgba(201,164,92,.7)}<br \/>\n#page-home #yg .tod{position:absolute;left:50%;top:19%;transform:translateX(-50%);z-index:2;width:14px;height:14px}<br \/>\n#page-home #yg .tod .ic{position:absolute;inset:0;width:100%;height:100%;opacity:.85}<br \/>\n#page-home #yg .tod .ic-moon{display:none}<br \/>\n#page-home #yg .face.night .tod .ic-sun{display:none}<br \/>\n#page-home #yg .face.night .tod .ic-moon{display:block}<br \/>\n#page-home #yg .flagin{position:absolute;left:50%;top:60%;transform:translateX(-50%);z-index:2;width:22px;height:auto;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.5)}<br \/>\n#page-home #yg .lbl{font-family:\"Cinzel\",serif;letter-spacing:.18em;text-transform:uppercase;font-size:.5rem;color:var(--soft);margin-top:13px}<br \/>\n#page-home #yg .clock.galle .lbl{color:var(--gilt)}<br \/>\n#page-home #yg .dg{font-size:clamp(1.05rem,3.4vw,1.35rem);color:var(--gold);margin-top:4px}<br \/>\n#page-home #yg .between{align-self:center;display:flex;flex-direction:column;align-items:center;gap:5px;padding-top:34px;min-width:54px}<br \/>\n#page-home #yg .between .ln{width:1px;height:26px;background:linear-gradient(rgba(201,164,92,0),var(--gold),rgba(201,164,92,0))}<br \/>\n#page-home #yg .between .ap{font-family:\"Cinzel\",serif;font-size:.46rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);line-height:1.5;max-width:80px}<br \/>\n#page-home #yg .contrast{font-style:italic;font-weight:300;font-size:clamp(1.2rem,4.6vw,1.7rem);line-height:1.4;color:var(--cream);max-width:18em;margin:30px auto 0}<br \/>\n#page-home #yg .contrast b{font-style:normal;color:var(--gilt)}<br \/>\n#page-home #yg .facts{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(18px,7vw,48px);margin:30px 0 0}<br \/>\n#page-home #yg .fact{text-align:center;min-width:92px}<br \/>\n#page-home #yg .fact .fl{font-family:\"Cinzel\",serif;font-size:.48rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}<br \/>\n#page-home #yg .fact .fv{font-size:clamp(1.05rem,3.6vw,1.4rem);font-weight:300;margin-top:5px}<br \/>\n#page-home #yg .fact .fv .deg{color:var(--gilt)}<br \/>\n#page-home #yg .fact .sub{font-size:.86rem;color:var(--soft);font-style:italic;margin-top:1px}<br \/>\n#page-home #yg .sbtn{margin-top:30px;font-family:\"Cinzel\",serif;font-size:.5rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);background:none;border:1px solid var(--gold);padding:13px 22px;min-height:44px;cursor:pointer;transition:.4s;display:inline-flex;align-items:center;gap:9px}<br \/>\n#page-home #yg .sbtn:hover,#page-home #yg .sbtn.on{background:var(--gold);color:var(--ink)}<br \/>\n#page-home #yg .sdot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4}<br \/>\n#page-home #yg .sbtn.on .sdot{animation:ygbeat 1s steps(1) infinite;opacity:1}<br \/>\n@keyframes ygbeat{50%{opacity:.25}}<br \/>\n@media(max-width:380px){#page-home #yg .between{min-width:42px;padding-top:30px}#page-home #yg .between .ap{font-size:.42rem}#page-home #yg .face{width:clamp(112px,40vw,150px);height:clamp(112px,40vw,150px)}}<br \/>\n@media(prefers-reduced-motion:reduce){#page-home #yg .hand.sec{transition:none}#page-home #yg .sbtn.on .sdot{animation:none}}<br \/>\n<\/style>\n<p><script id=\"mz-rightnow-js\" data-no-optimize=\"1\" data-no-defer=\"1\">(function(){<br \/>\n  var sec=document.getElementById('yg'); if(!sec) return;<br \/>\n  var ROMAN=['','I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII'];<br \/>\n  var TZC={<br \/>\n   'Europe\/London':'GB','Europe\/Dublin':'IE','Europe\/Berlin':'DE','Europe\/Paris':'FR','Europe\/Zurich':'CH',<br \/>\n   'Europe\/Amsterdam':'NL','Europe\/Madrid':'ES','Europe\/Rome':'IT','Europe\/Brussels':'BE','Europe\/Vienna':'AT',<br \/>\n   'Europe\/Stockholm':'SE','Europe\/Oslo':'NO','Europe\/Copenhagen':'DK','Europe\/Helsinki':'FI','Europe\/Lisbon':'PT',<br \/>\n   'Europe\/Warsaw':'PL','Europe\/Prague':'CZ','Europe\/Athens':'GR','Europe\/Moscow':'RU','Europe\/Istanbul':'TR',<br \/>\n   'Asia\/Dubai':'AE','Asia\/Qatar':'QA','Asia\/Riyadh':'SA','Asia\/Kuwait':'KW','Asia\/Tehran':'IR',<br \/>\n   'Asia\/Kolkata':'IN','Asia\/Karachi':'PK','Asia\/Dhaka':'BD','Asia\/Kathmandu':'NP','Asia\/Colombo':'LK',<br \/>\n   'Asia\/Singapore':'SG','Asia\/Kuala_Lumpur':'MY','Asia\/Bangkok':'TH','Asia\/Jakarta':'ID','Asia\/Manila':'PH',<br \/>\n   'Asia\/Hong_Kong':'HK','Asia\/Shanghai':'CN','Asia\/Taipei':'TW','Asia\/Tokyo':'JP','Asia\/Seoul':'KR',<br \/>\n   'Australia\/Sydney':'AU','Australia\/Melbourne':'AU','Australia\/Perth':'AU','Australia\/Brisbane':'AU','Australia\/Adelaide':'AU',<br \/>\n   'Pacific\/Auckland':'NZ',<br \/>\n   'America\/New_York':'US','America\/Chicago':'US','America\/Denver':'US','America\/Los_Angeles':'US','America\/Phoenix':'US',<br \/>\n   'America\/Toronto':'CA','America\/Vancouver':'CA','America\/Mexico_City':'MX','America\/Sao_Paulo':'BR','America\/Argentina\/Buenos_Aires':'AR',<br \/>\n   'Africa\/Johannesburg':'ZA','Africa\/Cairo':'EG','Africa\/Nairobi':'KE','Africa\/Lagos':'NG','Africa\/Casablanca':'MA'<br \/>\n  };<br \/>\n  function pad(n){return (10>n?'0':'')+n}<br \/>\n  function tzParts(tz){var f=new Intl.DateTimeFormat('en-GB',{timeZone:tz,hour12:false,hour:'2-digit',minute:'2-digit',second:'2-digit'});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}}<br \/>\n  function digital(t){var ap=(12>t.h)?'am':'pm',h=t.h%12||12;return h+':'+pad(t.m)+' '+ap}<br \/>\n  function todClass(h){ if(h>=19||6>h) return 'night'; if(9>h) return 'dawn'; if(17>h) return 'day'; return 'dusk' }<br \/>\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)}<br \/>\n  function scene(h){<br \/>\n    if(h>=5&&6>h) return 'the first light is touching the garden.';<br \/>\n    if(h>=6&&9>h) return 'the garden is waking and the air is still cool.';<br \/>\n    if(h>=9&&12>h) return 'the sun is high and the verandahs hold the shade.';<br \/>\n    if(h>=12&&15>h) return 'the heat sits heavy; the pool is the place to be.';<br \/>\n    if(h>=15&&17>h) return 'the afternoon is softening.';<br \/>\n    if(h>=17&&19>h) return 'the light is going gold and the garden exhales.';<br \/>\n    if(h>=19&&22>h) return 'the lamps are lit and the night is warm and quiet.';<br \/>\n    return 'the bungalow is asleep under the stars.';<br \/>\n  }<br \/>\n  var faceLK=document.getElementById('faceLK'),faceYou=document.getElementById('faceYou');<br \/>\n  var pLK={h:document.getElementById('lh'),m:document.getElementById('lm'),s:document.getElementById('ls')};<br \/>\n  var pYou={h:document.getElementById('yh'),m:document.getElementById('ym'),s:document.getElementById('ys')};<\/p>\n<p>  \/\/ visitor identity FROM TIME ZONE (never navigator.language)<br \/>\n  var guestTz='UTC'; try{guestTz=Intl.DateTimeFormat().resolvedOptions().timeZone||'UTC'}catch(e){}<br \/>\n  var guestCity=guestTz.split('\/').pop().replace(\/_\/g,' ');<br \/>\n  var cc=TZC[guestTz]||'';<br \/>\n  var guestCountry=''; if(cc){ try{guestCountry=new Intl.DisplayNames(['en'],{type:'region'}).of(cc)}catch(e){guestCountry=cc;} }<br \/>\n  var sameZone=(guestTz==='Asia\/Colombo');<\/p>\n<p>  function makeGlobe(parent){<br \/>\n    var NS='http:\/\/www.w3.org\/2000\/svg';<br \/>\n    var svg=document.createElementNS(NS,'svg');<br \/>\n    svg.setAttribute('viewBox','0 0 24 24'); svg.setAttribute('fill','none');<br \/>\n    svg.setAttribute('stroke','#c9a45c'); svg.setAttribute('stroke-width','1.4');<br \/>\n    svg.setAttribute('class','flagin globe'); svg.setAttribute('aria-hidden','true');<br \/>\n    svg.style.boxShadow='none'; svg.style.borderRadius='0'; svg.style.width='18px'; svg.style.height='18px';<br \/>\n    function add(tag,attrs){var el=document.createElementNS(NS,tag);for(var k in attrs)el.setAttribute(k,attrs[k]);svg.appendChild(el);return el;}<br \/>\n    add('circle',{cx:'12',cy:'12',r:'9'});<br \/>\n    add('ellipse',{cx:'12',cy:'12',rx:'4',ry:'9'});<br \/>\n    add('path',{d:'M3.2 12h17.6'});<br \/>\n    parent.appendChild(svg);<br \/>\n    return svg;<br \/>\n  }<\/p>\n<p>  var lblYou=document.getElementById('lblYou');<br \/>\n  var flagYou=document.getElementById('flagYou');<br \/>\n  if(!sameZone){<br \/>\n    if(lblYou) lblYou.textContent = cc ? (guestCountry||cc) : (guestCity||'Where you are');<br \/>\n    if(cc){<br \/>\n      if(flagYou){ flagYou.src='https:\/\/flagcdn.com\/'+cc.toLowerCase()+'.svg'; flagYou.alt=guestCountry||cc; flagYou.hidden=false; }<br \/>\n    } else {<br \/>\n      if(flagYou) flagYou.hidden=true;<br \/>\n      if(faceYou) makeGlobe(faceYou);<br \/>\n    }<br \/>\n  } else {<br \/>\n    \/\/ same time as Galle: show ONLY the Galle clock<br \/>\n    var youClock=document.querySelector('#yg .clock.you');<br \/>\n    var between=document.querySelector('#yg .between');<br \/>\n    if(youClock) youClock.style.display='none';<br \/>\n    if(between) between.style.display='none';<br \/>\n  }<\/p>\n<p>  function buildFace(face,nums,ticks,withNums){<br \/>\n    var r=face.clientWidth\/2; if(!r) r=84;<br \/>\n    if(nums){ nums.textContent=''; if(withNums){ for(var i=1;12>=i;i++){ var ang=i*30, w=document.createElement('div'); w.className='num'; var sp=document.createElement('span'); sp.textContent=ROMAN[i]; var rad=ang*Math.PI\/180, dist=r-16; sp.style.left=(Math.sin(rad)*dist)+'px'; sp.style.top=(-Math.cos(rad)*dist)+'px'; w.appendChild(sp); nums.appendChild(w);} } }<br \/>\n    if(ticks){ ticks.textContent=''; 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)'; ticks.appendChild(tm);} }<br \/>\n  }<br \/>\n  function buildAll(){<br \/>\n    buildFace(faceLK,document.getElementById('nmLK'),document.getElementById('tkLK'),true);<br \/>\n    if(!sameZone) buildFace(faceYou,document.getElementById('nmYou'),document.getElementById('tkYou'),false);<br \/>\n  }<br \/>\n  buildAll();<br \/>\n  var rz; window.addEventListener('resize',function(){clearTimeout(rz);rz=setTimeout(buildAll,200)});<\/p>\n<p>  (function(){<br \/>\n    var el=document.getElementById('apart'); if(!el) return;<br \/>\n    if(sameZone){ el.textContent='Your hour, exactly'; return; }<br \/>\n    var diff=tzOffsetMin('Asia\/Colombo')-tzOffsetMin(guestTz), ahead=diff>0, mins=Math.abs(diff), h=Math.floor(mins\/60), mm=mins%60;<br \/>\n    var hs=h+(mm===30?'\u00bd':'')+'h'; if(h===0) hs=mm+'m';<br \/>\n    el.textContent='';<br \/>\n    el.appendChild(document.createTextNode('Galle is'));<br \/>\n    el.appendChild(document.createElement('br'));<br \/>\n    el.appendChild(document.createTextNode(hs));<br \/>\n    el.appendChild(document.createElement('br'));<br \/>\n    el.appendChild(document.createTextNode(ahead?'ahead':'behind'));<br \/>\n  })();<\/p>\n<p>  function setHands(p,t){var s=t.s*6,m=t.m*6+t.s*.1,h=(t.h%12)*30+t.m*.5; p.s.style.transform='translateX(-50%) rotate('+s+'deg)'; p.m.style.transform='translateX(-50%) rotate('+m+'deg)'; p.h.style.transform='translateX(-50%) rotate('+h+'deg)'}<br \/>\n  function setFaceClass(face,h){face.className='face '+todClass(h)}<br \/>\n  function bEl(x){var e=document.createElement('b');e.textContent=x;return e}<br \/>\n  function setContrast(g,lk){<br \/>\n    var el=document.getElementById('contrast'); if(!el) return;<br \/>\n    el.textContent='';<br \/>\n    if(sameZone){<br \/>\n      el.appendChild(document.createTextNode('Right now it\u2019s '));<br \/>\n      el.appendChild(bEl(digital(lk)));<br \/>\n      el.appendChild(document.createTextNode(' in Galle \u2014 '+scene(lk.h)));<br \/>\n    } else {<br \/>\n      el.appendChild(document.createTextNode('It\u2019s '));<br \/>\n      el.appendChild(bEl(digital(g)));<br \/>\n      el.appendChild(document.createTextNode(' where you are. In Galle it\u2019s '));<br \/>\n      el.appendChild(bEl(digital(lk)));<br \/>\n      el.appendChild(document.createTextNode(' \u2014 '+scene(lk.h)));<br \/>\n    }<br \/>\n  }<\/p>\n<p>  var soundOn=false,ac=null;<br \/>\n  function playTick(s){ if(!ac) return; var freq=(s%2===0)?1850:1200,o=ac.createOscillator(),g=ac.createGain(); o.type='square'; o.frequency.value=freq; g.gain.setValueAtTime(.0001,ac.currentTime); g.gain.exponentialRampToValueAtTime(.12,ac.currentTime+.001); g.gain.exponentialRampToValueAtTime(.0001,ac.currentTime+.045); o.connect(g).connect(ac.destination); o.start(); o.stop(ac.currentTime+.06) }<br \/>\n  var sbtn=document.getElementById('sbtn');<br \/>\n  if(sbtn){ sbtn.addEventListener('click',function(){ soundOn=!soundOn; if(soundOn){ try{ac=ac||new(window.AudioContext||window.webkitAudioContext)(); if(ac.state==='suspended')ac.resume();}catch(e){} sbtn.classList.add('on'); var l=document.getElementById('slabel'); if(l)l.textContent='Ticking \u2014 silence'; } else { sbtn.classList.remove('on'); var l2=document.getElementById('slabel'); if(l2)l2.textContent='Wind the clock'; } }); }<\/p>\n<p>  var dgLK=document.getElementById('dgLK'),dgYou=document.getElementById('dgYou');<br \/>\n  function tick(){<br \/>\n    var lk=tzParts('Asia\/Colombo'); setHands(pLK,lk); setFaceClass(faceLK,lk.h); if(dgLK)dgLK.textContent=digital(lk);<br \/>\n    if(!sameZone){ var g=tzParts(guestTz); setHands(pYou,g); setFaceClass(faceYou,g.h); if(dgYou)dgYou.textContent=digital(g); setContrast(g,lk); }<br \/>\n    else { setContrast(lk,lk); }<br \/>\n    if(soundOn) playTick(lk.s);<br \/>\n  }<br \/>\n  tick(); setInterval(tick,1000);<\/p>\n<p>  (function(){<br \/>\n    var names=['New moon','Waxing crescent','First quarter','Waxing gibbous','Full moon','Waning gibbous','Last quarter','Waning crescent'];<br \/>\n    var lp=2551442.8,nm=947182440,now=Date.now()\/1000; var ph=((now-nm)%lp)\/lp; if(0>ph) ph+=1; var idx=Math.floor(ph*8+.5)%8;<br \/>\n    var mEl=document.getElementById('moon'),mSub=document.getElementById('moonsub');<br \/>\n    if(mEl) mEl.textContent=String.fromCodePoint(127761+idx);<br \/>\n    if(mSub) mSub.textContent=names[idx];<br \/>\n  })();<\/p>\n<p>  function wText(c){ if(c===0) return 'Clear skies'; if(2>=c) return 'Soft sun'; if(c===3) return 'Overcast'; if(48>=c) return 'Morning mist'; if(67>=c) return 'Tropical rain'; if(82>=c) return 'Passing showers'; if(99>=c) return 'Distant thunder'; return 'Tropical air' }<br \/>\n  function hm(iso){var t=(iso.split('T')[1]||'').split(':'),h=+t[0],m=+t[1],ap=(12>h)?'am':'pm',hh=h%12||12;return hh+':'+pad(m)+' '+ap}<br \/>\n  var wdeg=document.getElementById('wdeg'),wdesc=document.getElementById('wdesc'),sunEl=document.getElementById('sun'),sunsub=document.getElementById('sunsub');<br \/>\n  if(wdeg)wdeg.textContent='28\u00b0'; if(wdesc)wdesc.textContent=' \u00b7 Tropical air';<br \/>\n  if(sunEl)sunEl.textContent='6:01 \u2014 18:23'; if(sunsub)sunsub.textContent='sunrise to sunset';<br \/>\n  fetch('https:\/\/api.open-meteo.com\/v1\/forecast?latitude=6.0535'+'&'+'longitude=80.221'+'&'+'current=temperature_2m,weather_code'+'&'+'daily=sunrise,sunset'+'&'+'timezone=Asia%2FColombo')<br \/>\n   .then(function(r){return r.json()}).then(function(d){<br \/>\n      if(wdeg)wdeg.textContent=Math.round(d.current.temperature_2m)+'\u00b0';<br \/>\n      if(wdesc)wdesc.textContent=' \u00b7 '+wText(d.current.weather_code);<br \/>\n      var sr=d.daily.sunrise[0],ss=d.daily.sunset[0]; if(sunEl)sunEl.textContent=hm(sr)+' \u2014 '+hm(ss);<br \/>\n      var lk=tzParts('Asia\/Colombo'),nowMin=lk.h*60+lk.m,ssP=ss.split('T')[1].split(':'),ssMin=(+ssP[0])*60+(+ssP[1]),diff=ssMin-nowMin;<br \/>\n      if(sunsub)sunsub.textContent=(diff>0)?('sets in '+Math.floor(diff\/60)+'h '+(diff%60)+'m'):'now after dark in Galle';<br \/>\n   }).catch(function(){});<br \/>\n})();<\/script><br \/>\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><\/p>\n<style id=\"mz-mobile\">\n@media (max-width:600px){<br \/>\n  \/* --- tap targets >= 44px --- *\/<br \/>\n  #nav #burger{width:44px;height:44px;min-width:44px;padding:10px}<br \/>\n  #nav .links a{min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 16px}<br \/>\n  #nav .resv{min-height:44px;display:inline-flex;align-items:center}<br \/>\n  .enter{min-height:44px;display:inline-flex;align-items:center;padding:8px 2px}<br \/>\n  footer .flinks{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 6px}<br \/>\n  footer .flinks a{min-height:44px;display:inline-flex;align-items:center;padding:8px 12px}<br \/>\n  \/* --- gallery reflows to 2 columns on phones --- *\/<br \/>\n  #page-gallery .gal{display:grid;grid-template-columns:1fr 1fr;gap:10px}<br \/>\n  #page-gallery .gal .g{width:auto;margin:0}<br \/>\n  \/* --- Alfred panel never swallows the whole screen --- *\/<br \/>\n  #alfred.open{max-width:calc(100vw - 20px);max-height:72vh}<br \/>\n  #alfred .am{-webkit-overflow-scrolling:touch}<br \/>\n}<br \/>\n@media (max-width:380px){<br \/>\n  #page-gallery .gal{gap:7px}<br \/>\n}<br \/>\n<\/style>\n<p><script id=\"mz-mobile-js\" data-no-optimize=\"1\" data-no-defer=\"1\">(function(){<br \/>\n  try{<br \/>\n    if(!('IntersectionObserver' in window)) return;<br \/>\n    var vids=document.querySelectorAll('video'); if(!vids.length) return;<br \/>\n    var io=new IntersectionObserver(function(entries){<br \/>\n      entries.forEach(function(en){<br \/>\n        var v=en.target;<br \/>\n        if(en.isIntersecting){ if(v.dataset.mzAuto==='1'){ var p=v.play(); if(p&&p.catch) p.catch(function(){}); } }<br \/>\n        else { if(v.dataset.mzAuto==='1') v.pause(); }<br \/>\n      });<br \/>\n    },{threshold:0.01});<br \/>\n    vids.forEach(function(v){ if(v.autoplay){ v.dataset.mzAuto='1'; io.observe(v); } });<br \/>\n  }catch(e){}<br \/>\n})();<\/script><br \/>\n<script id=\"mz-wa\" data-no-optimize=\"1\" data-no-defer=\"1\">(function(){<br \/>\n  var WA='https:\/\/wa.me\/94777705398';<br \/>\n  var MAP={<br \/>\n    'Check availability':'Hi Alfred \u2014 I\u2019d like to check availability at Medusa Bungalow.',<br \/>\n    'Tell me about the retreat':'Hi Alfred \u2014 I\u2019d like to know about the Ayurveda retreat.',<br \/>\n    'Arrange a transfer':'Hi Alfred \u2014 I\u2019d like to arrange an airport transfer.'<br \/>\n  };<br \/>\n  function openWA(msg){ var u=WA+'?text='+encodeURIComponent(msg); try{window.open(u,'_blank','noopener')}catch(e){location.href=u} }<br \/>\n  window.ask=function(t){ try{var m=document.getElementById('am');if(m){var b=document.createElement('div');b.className='bub u';b.textContent=t;m.appendChild(b);m.scrollTop=m.scrollHeight;}}catch(e){} if(typeof respond==='function')respond(t); };<br \/>\n  window.send=function(){ var i=document.getElementById('ainput'); var v=(i&&i.value)?i.value.trim():''; if(!v)return; if(i)i.value=''; try{var m=document.getElementById('am');if(m){var b=document.createElement('div');b.className='bub u';b.textContent=v;m.appendChild(b);m.scrollTop=m.scrollHeight;}}catch(e){} if(typeof respond==='function')respond(v); };<br \/>\n})();<\/script><\/p>\n<style id=\"mz-od-css\">#mz-reserve .od{margin:18px auto 0;font-style:italic;color:var(--soft);font-size:clamp(.98rem,1.4vw,1.1rem);letter-spacing:.02em;max-width:34em}#mz-reserve .od a{color:var(--gilt);text-decoration:none;border-bottom:1px solid rgba(201,164,92,.45);white-space:nowrap}#mz-reserve .od a:hover{color:var(--gold)}<\/style>\n<p><script id=\"mz-od-js\" data-no-optimize=\"1\" data-no-defer=\"1\">(function(){var host=document.getElementById('mz-opendates');if(!host)return;fetch('\/wp-json\/mz\/v1\/open-dates').then(function(r){return r.json()}).then(function(d){if(!d||!d.ok||!d.ranges||1>d.ranges.length)return;host.textContent='';host.appendChild(document.createTextNode('The bungalow is open '));d.ranges.forEach(function(rg,i){if(i>0){host.appendChild(document.createTextNode(' \\u00b7 '))}var a=document.createElement('a');a.target='_blank';a.rel='noopener';a.href='https:\/\/wa.me\/94777705398?text='+encodeURIComponent('Hi Alfred \\u2014 I\\u2019d like to reserve '+rg.label+'.');a.textContent=rg.label;host.appendChild(a)});host.hidden=false}).catch(function(){})})();<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>A day kept &middot; Galle, Ceylon HomeThe RetreatThe VillaThe BungalowGalleryGetting hereContactReserve Galle &middot; Southern Ceylon A Hidden ColonialSanctuary. A 200-year-old villa, quietly restored, in the jungle above Galle. Check availabilityThe retreat Let the day begin 9.2Guest rating 55Reviews \u2605Airbnb Superhost DirectWith the house Direct with the houseNo platform fee. Free cancellation to 14 days. The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10475,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-10454","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages\/10454","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=10454"}],"version-history":[{"count":49,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages\/10454\/revisions"}],"predecessor-version":[{"id":10657,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/pages\/10454\/revisions\/10657"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/media\/10475"}],"wp:attachment":[{"href":"https:\/\/medusabungalow.com\/en\/wp-json\/wp\/v2\/media?parent=10454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}